最近はスマートフォン一つで家電を操作できたり医療や農業がデジタル化したりで”IT化”という言葉が身近になってきました。
その流れもあり、プログラミングについて興味を持った方も多いのではないでしょうか。
また、2030年にはIT人材が最大75万人も不足するという推測が国からも発表されており、これからますますITの知識を持った人材が求められるようになります。
出典元:- 経済産業省の調査(2019年3月)
そこで今回は、プログラミング初心者が学習するための準備から学習方法までのロードマップをご紹介します。
- プログラミングを学んで就ける職業によって使用言語が異なる
- 独学でプログラミングを取得するには1000時間以上必要で、挫折率は90%以上
- 適切なプログラミング学習のロードマップにより、最短距離で目標達成できる
- 効率良い学習のコツを知ることで、学習の生産性を上げることができる
目次
プログラミングを学んで就ける職業とは
まず始めに、プログラミングを活用した仕事にどんなものがあるのかをご紹介します。
パッと思いつくものに「プログラマー」や「エンジニア」といったものがあるかと思いますが、実はその中でも細分されており、それぞれ違う知識が必要になってきます。
◎Web系プログラマー
仕事内容
Web系プログラマーはその名の通り、Webサイトに特化したプログラミングが主な業務となります。Webサイトとは、インターネットショッピングサイトや、今読んでいるこのポテパンスタイルなどのことを指します。
具体的にはWeb系のシステムエンジニアと一緒にWebサイトの見た目や操作性、機能性などを改善していき、利用者の満足度が高いWebサイトを制作します。
必要な言語
HTML/CSSとJavaScriptは最低限必要であり、その他にもPHPやRubyなどのバックエンド言語も把握しておく必要があります。
近年はWordPressを利用してのWebサイトが多くあるため「すぐに副業を始めたい」という方はPHPを習得するとフロントの案件を獲得しやすいです。
◎オープン系プログラマー
仕事内容
UnixやWindowsなど、複数のコンピューターをコントロールするプログラム開発が主な業務になります。
具体的には、病院の患者様情報が入るデータベースや電子カルテ、店舗の顧客情報を管理するデータベースなどを制作します。
必要な言語
有名なものとしてはJavaやC言語など、現在でも人気の高い言語があげられます。
パソコンベースの開発であるため、近年ではRubyやPythonなど様々な言語がオープン系で用いられるようになっています。
◎ゲーム系プログラマー
仕事内容
オンラインゲームやソーシャルゲーム、家庭用ゲーム、スマホゲームなど、様々なゲームのプログラミングが主な業務となります。
ゲームの企画段階から完成まで立ち会え、完成したゲームがいろんなユーザーにプレイしてもらえることで、やりがいや達成感を感じることができます。
必要な言語
家庭用ゲームはC言語やC++がよく使用されていますが、ソーシャルゲームやオンラインゲームなどではJavaやPHP、スマホゲームではiOSだとSwift、AndroidではKotlinなどが主に利用されます。
◎組み込み系プログラマー
仕事内容
私たちの生活に身近な家電製品やカーナビなどのプログラミングが主な業務となります。
例えば、炊飯器などの家電製品にはマイコン(マイクロコンピューター)が組み込まれており、火力や温度、タイマーなどを制御してくれています。そのようなプログラムを組むのが組み込み系プログラマーです。
必要な言語
CやC++、C#などのC系言語が主に使用されています。
近年ではIoT(モノのインターネット)が活用される機会が増えてきて新技術への対応も重要になってくるため、新しい言語知識も取得していく必要があります。
◎その他
仕事内容
上記でお伝えしたもの以外にも、アプリケーション系プログラマーや汎用系システムプログラマー、通信系プログラマーなどもありますが、それぞれ業務内容や使用言語が異なっています。
また、プログラマーとよく一緒にされるシステムエンジニアなどもありますが、業務内容に大きな違いがあります。
初心者が独学でプログラミングは習得可能?
現場レベルに至るまで1000時間は必要
迷っている時間もったいないから、その分何かやったほうがいいと言われそうですね。プログラミング初心者になるまでに1000〜2000時間(1日4時間×1年間)ほどの学習時間が必要とのこと。35歳までに転職しようと考えると、今がラストチャンスかもしれませんね…。
— 高校の先生 (@s_nobutan_1018) June 4, 2022
学ぶ言語や基礎知識によっても異なりますが、一般的にプログラマーやエンジニアとして現場で通用するレベルの知識を習得するには、最低でも1000時間はかかると言われています。
仕事をしながらプログラミング学習をするとなると、週10時間の学習時間を取ったとしても約2年、週20時間の学習時間を取ったとしても約1年かかることになります。
つまり、独学で学習するには1年以上もプログラミング学習を継続するモチベーションを保ち続けなければならないということです。
また、独学の場合は学習のロードマップを描くのが難しく、途中で諦めてしまう可能性が高いです。
独学者の挫折率は90%以上
人の力を借りる。プログラミングは挫折率9割っていいますが、挫折する原因のほとんどは単に聞ける人がいないからだと思う。コードみながら質問できる人を確保しておきましょう。ハマって袋小路に入ったら、5分くらいコメントもらえば、簡単に抜けられるものですよ。一人で頑張るのはつらすぎる。
— いっかく丨営業しない男 (@ikkaku0121) May 19, 2022
プログラミングの学習をすると、必ずぶつかるのがエラーです。このエラーが一人で解決することが出来ずに学習を辞めてしまうというのが、挫折の主な原因です。
また、分からない部分をすぐに相談できる人が身近に居ない場合はモヤモヤを抱えたまま学習することになるので、だんだんと学習意欲が低下していくことも挫折に繋がります。
上記の2つの理由から、明確な目標がない場合は独学でのプログラミング習得はかなり難しいと言えます。
プログラミング学習のロードマップ【完全版】
では、初心者はプログラミング学習を何から始めれば良いのでしょうか?
これから紹介するのは、独学で学習する方でも、プログラミングスクールに所属して学習する方でも活用できるロードマップです。
これに沿ってプログラミング学習をすることで、最短期間で効率良くプログラミングを習得することができます。
1. 学習の目的を明確にする
まずは「なぜプログラミングを学習するのか?」という目的を明確にしましょう。
もしエンジニアやプログラマー転職を考えているのであれば、最低でも1000時間以上の学習時間が必要となるので、モチベーションを維持するためにも目的意識が必要です。
学習する上で行き詰まった時などに「そもそもなぜ学習を始めたのか?」を振り返る瞬間が多くあるので、この”学習の目的”は明確に設定しておくことをおすすめします。
2. 学習する言語を決める
プログラミングを学んで就ける職業とはの項目でお伝えしたように、なりたい職種や実現したい目標によって学ぶべきプログラミング言語が変わってきます。
そのため、ゲーム系のプログラマーになりたいのにひたすらHTML/CSSの学習をするといったことをしてしまうと、目標までの道のりがかなり遠回りになってしまいます。
一つ前で述べた”学習の目的”を決めた後に、その目的を達成するにはどういったプログラミング言語を学習する必要があるのかを調べ、言語を決定しましょう。
3. 学習/開発の環境を整える
プログラミングを学習するにあたって、学習環境を整える必要があります。
PCのスペック
- CPU: i5以上
- メモリ: 8GB以上
- ストレージ: 256GB以上
があれば、基本的にはどの言語も対応可能です。
しかし、言語によっても負荷が異なるため、学習を始める前に一度どれぐらいのスペックを搭載したPCが必要なのかは調べておくと良いでしょう。
また、スマートフォンアプリの開発をしたいのであればOSによってMacやWindowsなど使うPCが異なるので注意が必要です。
インターネット環境
学習に必要なテキストエディタをインストールしたり、アプリケーション作成の段階に入ると安定したインターネット回線が必須となります。
自宅でWi-Fi環境を整えることは必須ではありませんが、カフェやフリーWi-Fiが利用できるスポットで学習する方はセキュリティ面に注意する必要があります。
また、ポケットWi-Fiやスマートフォンのテザリングを利用して学習しようとする方は、気づかないうちに通信量が想定以上になっている可能性もあるので要注意です。
統合開発環境
プログラムを書くための環境も整える必要があります。
初心者におすすめなのがAWS Cloud9です。AWS Cloud9は簡単なアプリケーション作成程度までは無料で利用できます。また、あらかじめ基本的な言語が準備されており、更にクラウド環境でコードが書けるため、ご自身のPC環境を誤って破壊する恐れもありません。
その他、ローカル環境での学習をする場合はVisual Studio Codeがおすすめです。
詳しくは以下も併せてご確認ください。
学習教材
何を元に学習をするのか、先に決めておきましょう。
選択肢としては参考書、Webのプログラミング学習サイト、プログラミングスクールに通うなどがあります。
まずはProgateなどの無料プログラミング学習サイトで学習してみて、独学でやっていくのか、スクールで学習していくのかを決める方も多いです。
4. 学習仲間を見つける
プログラミングを習得するには確固たる意志と学習時間が必要となります。独学かつ一人きりで学習していくのはかなり難しいため、学習仲間と共に学習していくことが挫折率を下げるコツです。
TwitterなどのSNSで学習仲間を募集したり、ココナラなどのスキルシェアサイトでメンターを見つけるなどで、目標達成までの期間を短縮することができます。
効率良くプログラミング学習をするコツ
コツ①学習サイクルを身につける
人間の集中力は長くて90分程度しか続きません。
『3,4時間ガッと勉強してその後は休む』『1時間勉強して10分休むセットを数回繰り返す』など人によって合う学習方法が違いますが、おすすめはポモドーロ・テクニックを取り入れて学習をすることです。
ポモドーロ・テクニックは、エンジニアやデザイナーなどクリエイティブで高い集中力が必要な人を中心に取り入れられている時間管理術で、具体的には「25分の作業+5分の休憩」を1ポモドーロとし、4ポモドーロ(2時間)ごとに30分間の休憩を取ります。これを繰り返します。
このように高い集中力とこまめな休憩を繰り返す学習をすることで、結果的に生産性の向上につながります。
ポモドーロテクニック、25分とかいう短すぎる時間で何ができんねん!と敬遠していたが、逆に25分でできるクオリティに留めて、別の25分でブラッシュアップするっていう方略がハマりそう
— Getpa; AI Bot (PR) (@getpa_gt) June 3, 2022
コツ②丸暗記する必要はない
学生時代の英語の学習を思い出してみてください。英単語帳を片手に必死で暗記して小テストに挑んだり、例文を丸暗記したりしませんでしたか?
プログラミングも言語学習に似ているので、このように丸暗記をして学習をする方が少なくありません。
しかし、プログラミング学習で出てくるものすべてを丸暗記するのは非効率的です。
プログラミングは”覚える力”よりも”調べる力”が重要となってきますので「こういうものがあるんだなぁ」と概念だけ理解して学習を進める方法が一番効率良く技術習得するための近道です。
プログラミングスキルを上げたいのであればコードの丸暗記に走るのは絶対にダメです😅
大切なのはそれぞれのコードの使い方を理解することであり、覚えることではありません!(ググればいくらでも情報出てくるので)
丸暗記に走ると応用を求められた時に必ずフリーズを起こすので絶対にやめましょう😊
— かみざと|沖縄経済を改善 (@kamizato_ceo) March 21, 2018
コツ③とにかく手を動かして何か作る
参考書やプログラミングに関する動画を見て学習する場合は、その後に自分の手を動かして何か作ってみる必要があります。
実際に自分でプログラムを組んでみると、予期せぬエラーが出たり詰まったりと、思い通りに行かないことがたくさんあります。
また、知識を定着させるためには”見る”だけではなく”手を動かす”という動作も加えるとより効率的に学習することができます。
コツ④エラーは原因が理解できるまで調べる
どんな方法でプログラミング学習をしても、必ずと言っていいほどエラーが発生します。このエラーを解決していくことがプログラミング習得にとってとても大切になってきます。
プログラミング言語学習におけるエラーは大抵の場合、原因がエラー文に記載されています。エラー文は英語で書かれているので、英語に苦手意識のある方は翻訳ツールを活用しながら読み解いていくと必ず解決までたどり着くことができるので、積極的にエラー文を読み取る努力をしてみましょう。
コツ⑤15分悩んで解決できなければ質問する
メソッドの使い方がわからなかったり、エラーがなかなか消えない場合はすぐにGoogleなどを使って調べてみましょう。自分の頭で考えることも必要ですが、先ほども述べたように、プログラミングにおいて丸暗記は必要ないので、積極的に検索するのがおすすめです。
また、メンターが身近にいたりプログラミングスクールに通っている場合は積極的に質問してみましょう。特にプログラミングスクールのメンターはその質問を解決するための予備知識や付属知識を付け加えて返答してくれることも多いため、プラスαの知識を身につけることができます。
コツ⑥ショートカットキーを覚える
プログラミング学習をするためにMacBookを購入される方や、PCの操作に自信がない方は、まずショートカットキーを覚えましょう。
プログラミング学習においてコピー&ペーストやリロードなどは多用するので、今までマウスやトラックパッドで作業することが多かった方は、キーボードで操作する癖をつけることで学習効率がかなり上がります。
コツ⑦リフレッシュ方法を見つける
プログラミング学習は集中力が必要となるため、リフレッシュしながら学習を続けていくのがおすすめです。
休憩時間にお気に入りの音楽を聞いたり、運動してみたり、お風呂にゆっくり入ったり、動画を見たりなど、自分に合ったリフレッシュ方法を見つけておきましょう。
「今日はここまで学習したら、リフレッシュするぞ!」といったように、自分にご褒美をあげながら学習を進めていく方法も人気です。
コツ⑧学習状況を積極的に発信する
人間はどうしてもサボりたくなる生き物です。特に独学だと、学習しようがサボろうが、誰からも何も言われることはありません。
そこで「学習頑張って続けられるかな?」「サボってしまうかも…」と心配な方は、SNSで自身の学習状況を発信しながら学習をすることをおすすめします。
学習状況を毎日発信することで、振り返った時に自信が持てたり、学習を応援してくれる仲間ができたり、同じく目標に向かって頑張っている仲間を見て刺激を受けたり、最新のプログラミング学習に役立つIT情報を入手できたりとメリットがたくさんあります。
IT業界は目まぐるしい速さでいろいろと変化していく業界なので、常に最新情報をキャッチアップする姿勢を保ちましょう。
ポテパン59日目
おそらく私の場合、Rails脳とCSS脳は両立しえない感じがする。Rails脳⇄CSS脳の切り替えがホント難しい。早く両方に慣れないと・・・!もうかれこれ1週間くらいCSSに苦戦してる。ひーん!!!!!#エンジニアと繋がりたい #駆け出しエンジニアと繋がりたい— プログラミングインストール中おじ (@potepan_ojisan) December 7, 2022
おすすめの転職サポート付きプログラミングスクール
ポテパンキャンプでは未経験からエンジニア転職をしたい方向けに作られた分かりやすいカリキュラムや動画解説、現役エンジニアからのレビュー、手厚い転職サポートなどがあります。
無料プログラミング学習サイトでは学べない現場で通用するコードの書き方やポートフォリオの添削など、エンジニアとしてすぐに活躍できるようになる学習環境が整っているため、未経験エンジニアとしての転職を考えている方におすすめです。
無料カウンセリングでキャリア相談も可能なので、ぜひお気軽にお申し込みください。
また、初心者の方でも分かりやすく楽しく学習できる『はじめてのプログラミングチャンネルbyポテパン』というYouTube動画もあります。
こちらのチャンネルでは、HTMLとCSS、JavaScript、Rubyなどを、完全プログラミング未経験のプログラミング初心者玉井夢さんに現役CTOの村上先生が優しく厳しく解説していく内容です。
このチャンネルではその他にも、ポテパンキャンプ卒業生で年収1,000万を超えるエンジニアへのインタビューや、転職活動に有利なポートフォリオの作り方なども解説しているので、気になる動画があるかチェックしてみてください。
まとめ
以上、プログラミング初心者が学習するための準備から学習方法までのロードマップをご紹介しました。
プログラミング学習に限らず、何かの学習を始める前には目標や目的といったゴール設定が必ず必要になってきます。今回お伝えしたロードマップは、プログラミング以外での学習でも活用できる部分が多いので、是非取り入れて見てください。
「独学だと学習が難しそう」と感じた方は、ポテパンキャンプにて無料カウンセリングも行っておりますので、お気軽にお問い合わせください。