こんにちは。
この記事を読んでいるあなたは、
・今後、最短でエンジニアとして転職したり、案件を獲得したりするにはどの言語から勉強したらいいんだろう?
そのように迷っているのではないでしょうか?
確かに、いろいろなサイトで「おすすめプログラミング言語」などの記事が乗っていますが、果たして、そこでおすすめされているプログラミング言語があなたにとって最適なものかがわかりません。
この記事を読むことによって分かること
この記事を読むことにより、
今後のいろいろな観点を考慮し、どのプログラミング言語からはじめたらいいかがわかるようになります。
プログラミング言語の選択で迷っているのは、時間がもったいないです。悩んでいるだけではスキルがつかないからです。
この記事を読んで一刻も早くその悩みを払拭し、早くプログラミングの勉強を始めましょう。
結論

まずは結論です。
HTML/CSSからはじめ、JavaScriptを勉強しましょう。
それが、挫折するリスクが少なく、今後の発展性まで考えた上での一番のオススメです。
もちろん他の言語が悪いということではありませんが、「未経験からエンジニアになる場合」に絞って考えると、この順番がよいと考えます。
この言語をおすすめする3つの背景は、このあと詳細にご紹介します。
記事の根拠と信頼性
この記事は、僕自身の経験や周りのエンジニアから聞いた情報をベースに書いているため、参考になると考えています。
元々、僕は新卒でエンジニアとしてメーカーに就職しました。そこではC++言語でプログラミングをやっていました。
そして、Android OSが普及し始めると、Android Javaを書くようになりました。
独学では、JavaScript、Python、Ruby, TypeScriptなどいろいろな言語を触ったりもしています。
今でもいろいろなエンジニアと、フロントエンド/バックエンドの実装方法などに関して話す機会があります。
この記事では、そういったいろいろな言語を触った経験や、自分以外のエンジニアの声も参考にして書いています。
この記事を書いた背景

詳細を説明する前に、この記事を書いた背景をご説明します。
プログラミング言語の紹介をしているサイトを見ていると、様々な言語がおすすめされています。
また、「初心者が覚えるべきプログラミング言語」のランキングも、それぞれのサイトで全く違った順番になっています。
今、仮に僕が未経験のエンジニアで、どの言語からやろうか?と考えている状態だったら、

確実に迷うな・・・
と思いました。
どのサイトも網羅的にいろいろな言語のことを書いているため、プログラミング言語の全体像はわかります。
ただ、その中で果たして自分が一番最初に手をつけるべき言語が何だろうか?というのが見えてきません。
また、書いてあったとしても

さすがにこれは初心者には向かないのでは・・・
という言語がオススメされていたり、みなさんの目標(エンジニアになって転職したり、案件を獲得したりする)に対して、そぐわないと思われる言語が紹介されていたりします。
特に最初の言語は、運悪く習得が難しい言語を選ぶと、

あ、プログラミング難しい・・・無理・・・」
と思いなってしまう可能性があります。
もしそういう「自分の目的にそぐわない言語」を選んでしまうと、あなたを挫折させてしまったり、目標に対して遠回りすることになります。
なので、この記事では、
を説明したいと思います。
ですので、
「ある程度プログラミング経験がある人」や「趣味で楽しくいろんなプログラミング言語を使えるようになればいい」という人は、今回の記事の対象外となります。すみません。
なぜHTML/CSSとJavaScriptがいいのか?

まずは、この言語を僕がオススメする5つの背景を説明します。
- 挫折しないこと
- やっていて楽しいと思えること
- 余計な知識が必要としないこと
- 今後の案件の取得のしやすさや、自分のカバー範囲が広がること
- エンジニアであれば使えて当然の言語だから (特にHTML/CSS)
このような背景があるので、1つずつ説明していきたいと思います。
1: 挫折しないこと
未経験からプログラミングを勉強するときの、一番重要なのは、
です。他の条件はさておき、初心者のうちはこの「挫折しにくいこと」が非常に重要です。
プログラミングを始めた頃は、それまでに見てきたものとは全く違う環境に直面します。
大量のエラーとか、突然画面が真っ白になって何も表示されなくなったりしたら、初心者は戸惑うことでしょう。
HTMLであればそれほど複雑なエラーが起こることがないことと、フロントエンドで広く使われているマークアップ言語なので、ググれば大量に情報が見つかります。
HTMLを勉強するうちに、
という、全ての言語で共通&プログラミングで最優先事項となるスキルが身についてきます。
(比較的エラーがシンプルな)HTMLでそういった経験を積めるのは、HTMLから始める大きな理由となります。
2: やっていて楽しいと思えること
HTMLやCSSであれば、その成果をわかりやすく確認することができます。
HTMLを書いてブラウザをリロードしたときに、自分の想定したものが表示されたときの嬉しさは、プログラミングならでは、でしょう。
一方で、JavaScriptとかRubyとかの言語の場合 (UIを表示することはもちろんできますが) コンソール上でログが出力されるだけとなり、これまた初心者には辛い試練になることがあります。
一生懸命頑張ったのに、最終的なアウトプットはコンソールに表示されるログが1行だけ・・・だと、心が折れる可能性があります。
また、初心者のうちはとくにその1行を出すまでに途方も無い時間がかかる・・・なんてこともあります。
また、CSSのBootstrapは、あまりCSSを書かなくてもそれっぽいデザインにすることができます。CSSを使うことにより一気に「それっぽい」デザインになる経験は、HTMLやCSSの勉強を進める上で、大きなモチベーションになります。
3: 余計な知識を必要としないこと
やりたいことによっては、プログラミング言語を覚えるより難しい知識が必要とされるのが事実です。
今は「AI」とか「機械学習」ができるからPythonがいい、というコメントや記事をよく見ますが、機械学習をするには、
・機械学習に使うPythonのライブラリ (Pandasとか)の知識
・数学の知識 (確率とか統計とか)
などの知識が必要です。
機械学習に関して言えば、このPythonのプログラミングスキルを身につけるよりは、よほど数学の知識を身につける方がハードルが高いです (もちろん数学が完璧であれば別ですが)
なので、特にプログラミング初心者のうちは機械学習には絶対、手を出してはいけません。ソースコードを見て理解しようとしてもそれが、
・Pythonのライブラリの使い方を理解していないのか
・数学の知識がないのか
というあたりの切り分けができず、やろうとした瞬間に詰みます。
4: 今後の案件の取得のしやすさや、自分のカバー範囲が広がること

現在、JavaScriptをベースにしたUIフレームワークや言語はたくさんあり、例えば有名なものではReactやTypeScriptがあります。
そして、モダンなフロントエンド開発ができるようになれば、市場価値が上がりますし、獲得できる案件の範囲も広くなります。
JavaScriptをやっておけばそういった案件にも比較的手を出しやすいため、今後の進路という観点でもおすすめです。
5: エンジニアであれば使えて当たり前の言語だから (特にHTML/CSS)
特にフロントエンドエンジニアであれば・・・ですが、HTML/CSSができない人はいません。
HTML/CSSは、プログラミングにおける母国語、というくらい、「書けて当たり前」の言語になります。
エンジニア転職するときでもフリーランスで何か案件をとるときでも、「HTML/CSSはできて当たり前」です。
他の言語をやるときでも、フロントエンドであればHTMLに組み込む形になるので、どの言語をやるとしても必ずHTML/CSSは書けるようになっておくべきです
(ここでいう「書けるべき」で満たすべきレベルは後で記載します)
HTML/CSS→JavaScriptの詳細な進め方

それでは、ここからは具体的にHTML/CSS→JavaScriptの勉強をする際の、詳細な進め方を紹介します。
まずお伝えしておきたいのが、このHTML, CSS, JavaScriptの3つとも、それぞれ相当深い知識が必要なので、
ということです。もちろん、基本的なタグや構文は覚える必要がありますが、やりすぎる必要はありません。
HTMLとCSSについて
未経験からであれば、HTML, CSSもそれぞれ1, 2ヶ月も勉強すれば十分かと思います。
この勉強をしたときのレベルの目安としては、
・自分が知らないタグの調べ方を理解できる
・Bootstrapを使い、必要なコンポーネントをHTML上に表示できる
というくらいのレベルで十分です。
一言でいうと、ドットインストールのHTML編で解説されている内容はだいたい理解できたな・・・くらいで大丈夫です。
あとは必要に応じてググってその都度調べることになるので、完璧に覚える必要はありません。
今後HTML, CSSだけで食っていく!という覚悟があれば完璧に覚えてもいいのかもしれませんが、そもそもその覚悟はおすすめしません。
HTMLとCSSだけだと、それほど言語的な難しさがないので自分の市場価値が上がらなかったり、フリーランスの場合は単価が上がらないためです。
なので、HTML, CSSをある程度書ける様になった後は、さっさと次の言語のJavaScriptに行くべきです。
JavaScriptについて
JavaScriptは、未経験からやろうとするとおそらく時間がかかると思います。
進め方としては、
・それからは、自分の作りたいものを作ってみる
これが一番です。
ドットインストールは敷かれたレールの上を走ることになるので、終わった頃にはある程度分かったつもりになるでしょう。
ただ、実際にゼロベースで自分の作りたいものを作ろうとすると、おそらくほぼ手が動かないと思います。ですので、ドットインストールなどが終わったタイミングで、早く実践的に作る方に移行すべきです。
作りたいものを作ろうとすると、最初はドットインストールの動画を見返したり、いろいろなものをググったりして進めることになるので、非常に時間がかかると思います。
と思うかもしれませんが、そこが一番の辛抱ポイントです。
そこを地道に乗り越えることができれば、プログラミングの挫折ポイントの8割くらいは乗り越えられたと言ってもいいと思います。
その状態から1つ〜2つくらい、自分の作りたいものを作れることを目指しましょう。
おそらく1つ目のものを作るのには、ある程度の規模のものであれば3ヶ月以上かかると思います。
ただ、2つ目のものを作るときには、調べたポイントやハマったポイントなどを理解できているので、本当に1回目の半分くらいの時間で、2倍のクオリティのものを作ることができます。
ここまでいければ、独学でやるべき最初のステップは乗り越えた、といえると思います。
HTML. CSS, JavaScriptを最初の言語としてオススメしない理由

ちなみに僕がHTML, CSS, JavaScript以外を最初の言語としてオススメしない理由を説明します。
KotlinやSwift
これらの言語は、AndroidやiOSエンジニアになるなら必須の言語です。
ただ、これららの言語はそれぞれで覚えることも多く、そこで入るとこの先ずっとAndroid / iOSエンジニアになることが予想されます。(AndroidやiOSエンジニアは、もう10年以上Android / iOS専門でエンジニアやってます・・・という人も多い)
おそらくこれを読んでいる方はどんなエンジニアになるかを決めていないと思うので、いきなりAndroidやiOSにどっぷり浸かるのではなく、横の展開がしやすいフロントエンド系の言語で入るのがよいかと思います。
※もちろん、KotlinやSwiftの方が楽しい、ということであれば止めません。
Raspberry PiなどのIoT系プログラミング言語
この言語をオススメしている記事を見たこともありますが、この記事を読んでいるあなたは、電子工作がやりたいわけではないと思います。
僕自身も過去に電子工作をやっていて、非常に楽しいので趣味としてはオススメです。
ただ、あなたの目的がエンジニアとして転職やフリーランスとして案件を獲得するのが目標であれば、最初の言語としてはオススメしません。
PHPなど
Reactなどのモダンな言語に行った方が市場価値を上げられると考えているためです。
ただ、好みによってはPHPに行ってもいいとは思います。
※僕自身、あまりPHPに詳しくないのでここは何とも言えません。とはいえ、僕はIT企業に努めており、そこにいるチームでPHPでプロダクトを作っているところを知らないので、あまり使われていないんだろうな・・・という印象を持っています。
結論
HTMLから初めて、Bootstrapを組み込むところから始めましょう。
その後、動くページを作るためにJavaScriptを勉強するのがオススメです。
HTML, CSSに関してはあまり深く勉強しすぎず、それぞれ1, 2ヶ月程度の勉強で十分だと思います。
JavaScriptはある程度言語のことを勉強した後は、自分でゼロベースでモノを作ることをオススメします。そうすることによって、より実践的な力を身につけることができます。
以上で今回の記事は終わりです。
この内容が、未経験からエンジニアを目指すみなさんの、最初に言語を選ぶ際の参考になれば幸いです。
ここまで読んでいただき、ありがとうございました!
最後に
この記事では、プログラミング初心者が選ぶべき言語に関して深堀りしました。
ただ、プログラミング初心者はこれ以外にも、
・プログラミング言語の勉強の仕方
・プログラミングスクールに通うべきか?
などの情報を知っておくべきです。
そんな必要な情報を以下の記事にまとめたので、全体像を知りたい方は、合わせてご確認ください。
コメント