DX(デジタルトランスフォーメーション)の流行、慢性的なTIエンジニア不足の昨今、コロナ禍で多くの方が職を失ったり収入減となった現実を踏まえ、手に職を付ける意味でプログラミング技術を学ぶ人が増えています。
実際に、新しいプログラミングスクールが数多く設立されている現実からも、いかに需要が増えているかが分かります。
この記事を読んでいるあなたは、プログラミングを習得したいと思ってはいるものの、プログラミングスクールに通うことは敷居が高いので、独学でマスターする方法を探しているのではないでしょうか?
結論から言うと独学は可能ですが、そこには押さえておくべきポイントがいくつかあります。
この記事では、独学に失敗する原因と、それを解決するための方法について解説したいと思います。
プログラミング独学の挫折率は90%
一般的に、プログラミングの独学は90%が挫折すると言われています。
プレスリリース配信サイト「PRTIMES」の記事で、侍エンジニア塾 によるアンケート結果が公開されていました。
この結果からも、多くの人が途中で挫折していることが分かります。
挫折する一番の理由は、聞ける環境が無いから
挫折する理由についてのアンケートでは、以下の様になっています。
参考までに、複数のサイトに原因が掲載されていたので、表にまとめておきました。
複数サイトで共通していた原因 | 各サイトに記載されていた個別の原因 |
---|---|
✔環境設定で行き詰まった ✔エラーへの対処がわからなかった ✔質問できる人が存在しなかった ✔学習方法(教材、言語、手順)がわからなかった ✔モチベーション維持が難しかった |
・どこまで進めたら良いのか判断ができなかった ・学習時間を作ることができかなった ・自分の現在地がわからず不安になった ・何度もつまずくので自信がなくなった ・入門書でも専門用語が多く難しかった ・覚える内容が膨大だった ・基礎学習からステップアップできなかった ・学習の時間配分がわからなかった ・難しい言語に取り組んでしまった |
個人的に思うのは、「質問できる環境が無い」ことが一番かな。
モチベーション以外は、これだけで全て解決する気がする。
ですよね。一人で考えていても、何が正しいのか良く分からないし。
そもそも初学者の場合、入門書を見ても良く分からないことも多いですよね。
そもそも、プログラミングは言語の種類も多いし、何を作るかによってコードの
書き方や考え方も変わってくるので、その辺の交通整理が無いと難しいよね。
確かに。自分がやりたいことを実現するためには、どの言語でどう勉強したら良いかを
最初に教えてもらえるだけでも、結果が全然違ってきますからね。
それがないと遠回りしてしまって、結局イヤになっちゃうパターンに陥ります。
あと、エラーが発生した時の対処方法もコツとか定番の方法があるけど、なかなか入門書には書かれてないよね。
そうなんですよ!
エラーが出ると焦る一方で、ソースコードを睨めっこして時間だけが過ぎていく・・・・
簡単なミスでも、そういう時ってなかなか自分では見つけられないんですよね。
あと、モチベーションの維持は仲間がいれば励ましあえるけど、そうでない場合は自分が使って便利になるようなプログラムを目標にすれば良いかもね。
そうですね。プログラムでこんなことがしたいとか、こんなものがあればいいのに、みたいなものを目標にすれば、維持できる気がします。
そもそもプログラムってそういうもんですもんね!
独学に失敗しないために
では、ここからは独学で失敗しない為の対策について考えていきましょう。
ポイントは以下の3つです。
- プログラムで何を実現したいか(何を作りたいか)を決める
- 言語を決めて、必要な教材を調達する
- 質問したい時はフリーの質問サイトを活用する
では、順番に説明しますね。
プログラミングで何を実現したいかを決める
プログラミングは手段であり、必ず目的があります。
目的によってプログラミング言語やコードの書き方(ルール)が違ってきますし、当然覚えることも異なります。
1つのプログラミング言語を覚えておけば、他の言語にも応用できることは確かですが、それはあくまでも処理手順をどう組み立てれば良いかが分かるだけであって、それ以外は新たに覚える必要があります。
例えて言うなら、知らないスーパーで買い物をするようなものです。
1つの言語を覚えるという事は、商品をかごに入れて、レジで精算するという部分を習得したに過ぎません。
全く違うスーパー(別の言語)に行ったら、商品の置いてある場所やレジの精算方法が異なっていてスムーズに買えなくなるのと同じで、成れるまでに時間が掛かります。
なので、遠回りしない為に、最初にプログラミングで何をしたいのかを決めておく必要があるのです。
必要な教材を調達する
何をしたいかが決まると、勉強すべき言語と、それに必要は知識がだいぶ絞りやすくなります。
例えば、Webアプリを開発したい場合、Java、PHP、Ruby が一般的ですが、画面側(フロントサイド)のプログラムが作りたいなら JavaScriptとかVue.js 等が選択肢に入ります。
サーバ側の処理(サーバサイド、又はバックエンド)だと、Java、Ruby、PHP、C#あたりが候補になります。
パーソナルテクノロジースタッフのサイトに、2022年度版のプログラミング言語おすすめランキング(言語語の需要・将来性と年収目安)が掲載されていたので、紹介しておきます。
「転職支援サイトDoda」が2022年3月に行った調査結果なのですが、人気順、言語、年収目安はこのサイトからの引用ですが、参考情報は私のコメントです。
人気順 | 言語 | 年収目安 | 参考情報 |
---|---|---|---|
1 | Python | 584万円 | AI開発、機械学習、データ分析などによく用いられる |
2 | Java | 561万円 | 企業の業務システムをWebアプリとして開発する場合によく用いられる |
3 | C# | 588万円 | 企業の業務システムをWebアプリとして開発するケースが多いが、 PCにインストールして使うWindowsアプリの開発、 UNITYを使ったゲーム開発にも用いられる |
4 | JavaScript | 590万円 | Webページで複雑又はデザイン性が高い操作を実現するため、 Java、C#など他の言語と一緒に用いられる |
5 | PHP | 585万円 | Webアプリの開発でよく用いられる。WordPressはPHPで 作られているため、これに関する案件を受注するには必須の知識。 |
6 | Go | 704万円 | Googleが開発したオープンソース言語で、注目はされているが 世間ではあまり使われていない。 Webアプリやスマホアプリの開発が可能。 |
7 | C++ | 584万円 | C言語をオブジェクト指向に拡張したもの。機械語に近い記述が可能なため、 ハードウェアの制御部分に用いられることが多い |
8 | Swift | 644万円 | Apple製品向けアプリケーションを開発するためにAppleが作った言語。 iPhoneのシェアが高い日本では需要が見込めそう。 |
9 | Ruby | 556万円 | 一般消費者向けのWebアプリ開発によく用いられる。日本人開発の言語 であるため情報が多く、世界的にも安定した需要がある。 |
10 | C | 504万円 | 工学系の大学では必須科目にもなっており学習教材も豊富。機械語に近い 記述が可能なため、家電の制御などによく用いられる。 |
言語が決まれば、その言語を学ぶための教材を探すことになりますが、例えば、panza なんかは最初の取っ掛かりには良いかと思います。
無料登録が必要ですが、主要なプログラミング言語の基礎的なことは勉強できます。
あとは、YouTubeとかブログですね。
ついでに、私のブログも是非参考にして頂ければと思います。
ところで、このブログって初心者向けと言いながら、結構難しい事を書いてますよね。
すみません。(汗)確かにそういう部分はあるかと思います。
ある程度簡単なプログラムが書けるようになってからご活用下さい・・・
あと、C#とPythonとSQLばっかりですよね。
は、はい。
私の今の仕事と関係している内容をテーマにしていたりするので・・・・
今後の状況を見て、他の言語も載せるようにしたいと思います。
質問したい時はフリーの質問サイトを活用
質問できる人を探すのが一番良いのですが、なかなかそういう恵まれた人は稀です。
そんな時は、無料の質問サイトがあるので、これらを利用してみましょう。
TERATAIL | https://teratail.com/ |
Qiita | https://qiita.com/ |
StackOverflow | https://ja.stackoverflow.com/ |
ヤフー知恵袋 | https://chiebuuro.yahoo.co.jp/ |
ペイング | https://peing.net/ja/ |
適切な回答を得るために、質問には以下の内容を記載しておきましょう。
記載項目 | 内容 |
---|---|
実現したいこと | 何がしたいのか、何が分からないのかを具体的に記述する。 |
問題点 | ある程度動作するプログラムにおいて、改善したい部分が有る場合、 その内容を具体的に記述する。 |
試したこと | 実現したいこと、又は問題点を解決するために何か試したのであれば、 それを記述する。 |
ソースコード | 問題となる実際のソースコードにおいて、該当する場所を抜粋して 記述する。 |
エラー内容 | エラーが発生しているのであれば、そのエラーメッセージを 詳しく記述する。 |
注意点としては、質問する前にGoogleで自分なりに調べておくことです。
直ぐに質問して回答を得るのではなく、自分で調べて悩まないと身に付きません。
目安として15分、長くても30分調べて分からない場合に質問を投げるようにします。
ただ、回答が得られるか、得られても適切な回答であるかは、質問してみないと分かりません。
時には厳しいコメントが付くこともありますが、めげずに頑張りましょう。
独学でどこまでスキルアップできるのか
趣味としてプログラミングを習得したり、クラウドソーシングで簡単な開発を受注する程度であれば、独学でも大丈夫だと思います。
ただ、時間は掛かると思います。
言語にもよりますが、一般的には200時間~250時間の学習時間が必要だとされています。
1日3時間勉強すると仮定した場合でも、半年は必要になります。
しかし、転職や就職を目指すのであれば話は変わってきます。
もし、新卒でIT関連に就職先できるのであれば、入社後の研修を受けるのが手っ取り早いですが、そうでないなら面接官にアピールできる成果物、いわゆるポートフォリオが必要になってきます。
とりわけ求人が多いWebアプリの技術者ともなると、サーバ側の処理やデータベースに関する知識まで習得しなければならず、学習する範囲は更に広がります。
無論、今の時代はパソコンが1つあれば環境は構築できますし、YouTubeなんかに勉強用動画がたくさん溢れているため、これらを使って学習することは可能です。
あとは根気とモチベーションが維持できるかです。
厳しい道のりになるかもしれませんが、あなたの頑張り次第で独学は可能です。
管理人は独学でした?
私の場合は、もともと高校生の時からパソコンに興味があったからね。
友達が持っていたパソコンで簡単なゲームを遊ばせてもらったのが、きっかけです。
じゃあ、高校生の時からバリバリプログラム組んでたんですか?
いや、本格的に始め出したのは大学に入ってからかな。
理系だったので当時Fortranという言語を勉強してたけど、後にC言語に進んだって感じです。
じゃあ、モチベーション維持とか、あんまり関係無かったんですか?
確かに、プログラミングすること自身が面白かったので、モチベーションが下がることは
なかったかな。そういう意味では特殊かもね。
なるほど、世の中にはそういう人もいるんですね。
私には無理ですけど・・・・
まとめ
今回はプログラミングの独学は難しいのかというテーマで、挫折する原因と対処方法について解説しました。
独学の90%が挫折し、その理由は以下の通りです。
✔環境設定で行き詰まった
✔エラーへの対処がわからなかった
✔質問できる人が存在しなかった
✔学習方法(教材、言語、手順)がわからなかった
✔モチベーション維持が難しかった
まず最初にプログラミングで作りたいもの(ゴール)を決めると、プログラミング言とそれに付随する必要な知識が絞り込めます。
次に、無料サービスを利用して、勉強していきます。
疑問や質問があれば、無料の質問サイトを活用します。
目安として200~250時間(1日3時間で半年)頑張れば、1つの言語は習得できるでしょう。
あとはあなたの頑張り次第です。
この記事がプログラミング独学の参考になれば幸いです。