「プログラミンに興味があるけど、言語がたくさんありすぎてどの言語を選べばよいかよくわからない。スクールとかもあるみたいだけど・・・
おススメの独学方法、言語が知りたいなぁ・・・」
そのような疑問にITエンジニア歴20年の筆者がお答えします。
この記事で分かること
- プログラミングは独学が可能です。おすすめの言語3選をご紹介
- プログラミング独学方法
- 独学する学習時間の目安。独学する際の注意点
プログラミングは独学が可能。おすすめの言語3選をご紹介します
プログラミングの独学は可能
筆者はエンジニア歴20年(現在は退職)で、いくつかの開発案件に参加しました。
なかでも、本記事を書く際のベースとなっているのは、筆者が5年ほどインフラ担当として参加した、保険代理店向けのオンラインWEBシステムの開発、構築、運用案件の体験です。
当時を思い出しても、周りのエンジニアの方たちの中には、独学でプログラムを学んだ人はたくさんいました。
開発現場に入るパターン
- 異業種 → 独学 → 転職 → 開発現場
- 同業種(別な言語) → 独学 → 開発現場
- 異業種 → 職業訓練校/スクール → 開発現場
- (大学、高専、専門学校) → 新卒 → 社内研修 → 開発現場
- etc・・・
といった感じで、思いつくままに開発現場に入るパターンを挙げましたが、もっと無数にあると思います。
ですので、結論、プログラミングの独学は可能です。
理由:筆者が開発現場で多くの独学でエンジニアになった方と一緒に仕事をした実体験から断言します。
どのプログラム言語を学習するか決める際のセオリー
プログラミング言語は数多くありますので、初学者が最初にどの言語を選ぶのは、大変ですよね。
基本的には、ご自身の入りたい会社がどの言語で開発しているのか、または、ご自身が作りたいアプリがどの言語を使っているのかを調べて決めればOKです。
また、「特に決まっていないが、せっかく学習するのなら、手早く学習出来て、需要が高い、案件の単価が高い言語を選びたい」そんな気持ちかもしれません。もしそうであれば、ずばり、以下のWEB系言語を検討してはどうでしょうか。
理由は就職、転職時の需要が高く、将来的にはフリーランスも目指せるためです。フリーランスになれば、場所と時間にしばられることなく、収入を得られますので、控えめに言って最高ですね。
HTML、CSS、JabaScript
特徴 |
・WEBページの制作には不可欠な言語 ・HTML:WEBページの骨組みを作る言語 ・CSS:WEBページの装飾をする言語 ・JavaScript:WEBページに動きをつける言語 |
メリット |
・初学者が取り組みやすい ・HTML,CSSはマークアップ言語とよばれ、ページの骨組みと装飾を担当するため、処理、条件分岐、繰り返しの構文がなく、構造がシンプル ・学習教材が豊富 |
デメリット |
・初学者が最初に取り組みやすい言語なので、エンジニアが充足している場合があり。差別化する必要があるかも ※JavaScriptまでしっかりと使いこなせるように学習すると他者と少し差別化し易い ※デザイン(PhotoShopが扱える)、ライティング(記事作成)、マーケティング(SEOなどの集客)の力があれば、かなり差別化し易い |
PHP
特徴 |
・Webアプリ、サービス開発に特化した言語 ・初学者に優しい人気言語(構文がシンプルで簡単なため) ・人気言語ためWEB上に情報が多い |
メリット |
・比較的習得難易度が低い ・需要が高いので、案件が豊富 ・ブログサービスで数多く利用されている「WordPress」もPHPをもとにつくられているため、フリーになったときに案件が取りやすい |
デメリット |
・WEBアプリ・サービス以外のものはほぼ作れない ・たとえばアンドロイドアプリは作れない ・また、バックエンドでもめったに利用されていない |
Ruby
特徴 |
・国産プログラム ・多くのWEBサービスで利用されている ・オブジェクト指向である ・インタプリタ方式である ・汎用性が高い ・自由度が高い ・記述量が少ない |
メリット |
・学習が容易 ・需要が高い ・国産のプログラム言語なので、日本語情報が充実している |
デメリット |
・学習するデメリットではないが、処理速度が遅いのがデメリットといわれる (Rubyはインタプリタ方式(コードを1つずつ機械語に訳して実行)と呼ばれ、 Javaなどのコンパイル方式(コードを機械語に訳して実行)言語にくらべ、処理速度が遅いといわれる) |
少し専門用語を使ってしまいましたが、あまり気にしないでOKです。
結論、プログラミング言語を独学するなら、WEB系を選ぶべし。
理由:学習しやすく需要が大きいので就職、転職しやすい。将来的にはフリーランスになりやすいため。
初学者向けのTIPS
ぶっちゃけ、RubyとPHPどちらを学んでもOK。好きな方を学びましょう。理由:しっかりポートフォリオを作って、Web系自社開発企業に入社という関門を突破するのが第一に大事なことだから。
RubyかPHPを入社前に学んでおけば、入社後に別なWeb系言語で業務をすることもそれほど苦にならないはずです。
また、あえてどちらがおススメかといえば、Rubyです。理由:国産プログラミング言語なので、学習資料が日本語でたくさん手に入るため、学習段階で無駄にググったりして、時間を浪費せずに済むため。
プログラミング独学方法5ステップ
HTML、CSS、JavaScriptを例にご説明しますが、PHP、Ruby志望の場合もほぼ同様の手順なので、ご自身の学びたい言語に置き換えて読み進めてくださいませ!
- ステップ(1) 学習後のゴールを決める
- ステップ(2) 無料でOK。基礎を2週間で終わらせる
- ステップ(3) ポートフォリオの制作
- ステップ(4) 就職or転職で現場に入る
- ステップ(5) 現場に猛烈にコミットして、転職またはフリーランスになる
ステップ(1)学習後のゴールを決める
初めに、ご自身が作りたいアプリやシステム、または、ご自身のなりたい状況を仮にでもいいので、先に決めてから作戦をねりましょう。
例えば、以下のような仮の目標を設定したとします。
- WEBページの制作がしたい
- 独学→就職(転職)→力をつけてより高単価な現場に転職(またはフリーランスになる)
次に、やるべきことは以下です。
HTML,CSS,JavaScriptの基礎学習 | 概要:まずはHTML,CSS,JavaScriptの基礎的な概念、文法の基本を学ぶ |
さまざまなサイトを 模写できるようになる |
理由:現場に入ったら、「こんな感じのサイトを作ってくださーい」と言われるので、 世の中に存在するいろいろなサイトのパターンを把握し、 ある程度は作れるようになっておきましょう。もちろ全部じゃなくてOKです |
ポートフォリオを作る |
理由:就職時の面接対策のため (「こんな感じのサイトが作れまーす」って言えるようになっておきましょう) |
ステップ(2)学習は無料でOK。基礎を2週間で終わらせる
さて、やるべきことが分かったので、基礎学習をサクッと終わらせましょう。無料コンテンツでOKです。HTML,CSS,JavaScriptの基礎を学びましょう
おススメの無料コンテンツ3選
プロゲート |
・HTML,CSS,JavaScriptを1周だけ学習 ・ブラウザ上で、無料で網羅的に基礎学習が可能 |
ドットインストール |
・HTML,CSS,JavaScriptを1周だけ学習 ・ブラウザ上で、無料で網羅的に基礎学習が可能 |
Tech Academyの 無料動画 |
>> はじめてのHTML入門講座 24本の動画 >> はじめてのCSS入門講座 34本の動画 >> はじめてのJavaScript入門講座 ※初学者にとって、 上記の動画以外の知識は不要といえるくらいの充実度です |
※ 基礎学習時の注意点
- 全部のサービスをやらなくてOKです。ちょっと見て、自分に合いそうなサービスを選びましょう。理由はプログラミングで実践力をつけるには、基礎をやり続けるのはあまり効果的ではないからです。
- 学習の時は、自分の手を動かしましょう。サンプルのコードは必ず、手で書きましょう。写経でいいです。
- 理解度50%で先にすすみましょう。ここで文法などを完璧に覚える必要はありません
ステップ(3)ポートフォリオの制作
基礎を学び終えたら、早い段階で、ポートフォリオの制作に入りましょう。
ポートフォリオの作り方
その1 模写する |
・さまざまなサイトをコードを見ずに模写する (多分難しいので、最初は写経してもOK) ・まずさまざまなサイトのパターンを把握しつつ、 自分にどの知識が足りないか体感する ・>> 模写のゴール ※どうやって模写するの?と疑問に思った方は 「模写 airbnb」でググってみましょう |
その2 ポートフォリオを制作する |
・「WEB 未経験 ポートフォリオ」でググれば情報にアクセスできます。 ・その時ご自身が持ってる基礎力と、模写で培ったパターンで、 どのようにしてポートフォリオが作れるかを調べる行為そのものが、 プログラミング能力を高めます。 |
ステップ(4)就職or転職で現場に入る
ポートフォリオの制作が完了したら、WEB制作会社に就職(転職)しましょう。面接では独学時に作成したポートフォリオをアピールしましょうね。
※就職、転職時の注意点
SES企業への就職、転職は慎重になったほうがいいかもです。理由はSESのビジネスモデルが、自社でエンジニアを雇用して、取引先のIT企業にエンジニアを派遣するモデルであるため、ご自身のやりたい開発現場にアサインされない可能性があるからです。
※SES:システムエンジニアリングサービス
筆者自身、以前はSES企業に在籍していた時期もありますので、SES自体を悪くいうつもりはありません。正社員としての雇用されつつ、様々な現場でチャレンジしたいとか、マネージメントレイヤを目指しているなどの、独自の目標があれば、選択肢としてアリだと思います。
しかし、テンポよくエンジニアとしてのスキルを上げ、6カ月~3年ほどの期間で、より高単価の案件に参画する、または、フリーランスとして独立することを目標としての就職・転職であれば、就職・転職後の現場では、自分でコードを書きまくって退職後にすぐ案件が取れるくらいまでスキルを上げていく必要があります。
そのため、現場で業務をする中で、SESのビジネスモデルとご自身のやりたいことがミスマッチしてくる可能性があるため、就職、転職の際は、小さくてもいいので、鉄の心で自社開発している会社を選びましょう。
ステップ(5)現場に猛烈にコミットして、転職またはフリーランスになる
現場に入ったら、猛烈に開発の仕事にコミットして、技術を伸ばしまくりましょう。早めに転職サイトに登録して、ご自身の市場価値を客観的にモニタリングしておくといいかもです。
早ければ6カ月、ゆっくりでも3年程度開発にフルコミットすれば、高単価な案件への参画、または、フリーランスへの道筋が見えてきます!
また、ステップ(4)、ステップ(5)については、飛ばすことも可能です。というのも、ステップ(3)の段階で、LP※や簡素なWEBページを作成することが可能で、かつ営業力に自信があるなら、案件をとってしまうのもアリだからです。
※LP ランディングページ インターネット上で商品の広告から決済までを縦長の1ページですませる広告ページのこと。
独学する学習時間の目安は?
HTML、CSS、JabaScriptを例にすると、3カ月でOKです。
進め方としては、1日1時間、土日に5-6時間学習するペースです。このペースだと、週15時間程度学習可能なので、3カ月で、180-200時間の学習時間が確保できます。
筆者は独学にこれ以上時間を割くべきではないと考えます。理由は挫折しやすくなるからです。基礎を学び、ポートフォリオをつくったら、あとは実際の業務(または案件)で実践あるのみですよ!
プログラミングを独学する際の注意点
最後に独学する際の注意点をご紹介しておきます。
独学は挫折しやすい
理由は開発現場でのOJT※やスクール、学校で学んだ場合と比較するとわかりやすいです。
独学とスクール(現場OJT) メリットとデメリットの比較
独学のメリットとデメリット
メリット |
・コストがかからない ・自分の自由な学習スタイルで学習が可能 |
デメリット |
・何を学ぶのか、どのように学ぶのかすべて自分で決める必要がある ・分からないときに、聞く人がいない(様々なエラー、学習方針、業界動向) ・開発環境を自身で準備する必要がある ・進捗管理は自分でやる必要がある |
スクール(現場OJT)のメリットとデメリット
メリット |
・分からないときに聞ける人がいる ・開発環境を用意してくれる(または構築方法をサポートしてくれる) ・進捗管理のサポートがある(スクールの場合はメンター、現場の場合は現場リーダー) ・ある程度、業務に必要な知識を体系的に学べる(特にスクール) |
デメリット |
・コストがかかる (スクールの場合はお金がかかる、現場※OJTの場合は就職の必要がある) ※OJT:オンザジョブトレーニング/業務をしながら知識を学ぶこと |
上記のように、独学は自由に学習できる反面、不明点は自己解決しないとフォローしてくれる人がいないので挫折しやすいのです。
IT業界歴20年の筆者の感覚では、プログラミング学習時は、笑っちゃうぐらいエラーや不明点が出てきます。
なにせ、プログラミングはコンピューターに命令(あれをして、これをして)するための言語なので、一文字でも違うと正しく動きません。エラー部分の特定に、1日つぶれるとか普通にあります。
ですが、それを乗り越えてプログラミングできるようになれば、高単価な案件に参画できたり、フリーランスになって時間と場所から自由になりつつ、働ける環境が手に入ります。
ですので、エラーや不明点などの挫折しやすいポイントをうまく乗り越えられるかが独学を成功するためのカギになりそうです。
結論:プログラミングの独学は可能。ただし注意点として、開発環境、聞く環境、進捗管理を自分で準備する必要があるため、挫折しやすいので注意!!
学習コストと得られる結果を考慮すると、スクールに行くのがコスパが高い件
今までご紹介したように、プログラミングは独学が可能である点と、独学の手順をご紹介しました。また、プログラミング独学時の挫折しやすい点についても、いったんまとめておきます。
プログラミング独学で挫折しやすいポイント
- 1.初学者にとって自分にあうプログラム言語選びは難しい
- 2.独学中に不明点の自己解決に時間がかかる場合がある
- 3.学習中に進捗管理を自分でする必要がある
上記のような点を考慮すると、スクールを検討するのも選択肢としてアリかと思います。理由はエンジニアになれば、スクールにかけた金銭的なコストは早めに回収が可能だからです。
以下の記事に、プログラミングスクールに関する情報をまとめましたのでご覧ください。
>> 無料あり:エンジニア歴20年の筆者がおすすめするプログラミングスクール
以上、本記事がプログラミングの独学を検討されている方のご参考になれば幸いです。