プログラミング独学はやばい?何から始める?徹底解説【データあり】
「プログラミングを独学で始めるときに、何をすればよいか知りたい」
「プログラミングを学びたいと思っている、継続のためにアドバイスをもらいたい」
このような人に向けて今回は記事を書いています。
プログラミングを独学で始めようと思っている方で、まずどんなことをした方がよいか?ということは、誰もが考え迷うところだと思います。
この記事では、エンジニア45人に「プログラミングを独学で勉強しようとする人に対してのアドバイス」を募集し、それをランキング形式でまとめました。
これらを参考にすれば、独学でも回り道をせず学習ができるようになると思います。
では、さっそく見てみましょう。
目次(クリックで読みたい部分にジャンプできます)
今回のアンケート内容
今回は、現役のエンジニア45人に「プログラマ未経験」の人に対してどのようなアドバイスをするか?を調査する目的で行いました。
質問内容は以下の3つです。
- 1. 「プログラミングを独学で勉強したい。けど何から始めたらいいかわからない。」という人に対しアドバイスをするとき、あなたはまずは何を始めることを薦めますか?
- 2. 質問1でそのように答えた理由を教えてください。
- 3. 「独学でプログラミングを勉強する」人に対し、質問1の回答以外にどのようなアドバイスをしますか?
アドバイスを質問1、3で設けているので、今回は質問1、3の中から最も多い意見をまとめていきます。
多い意見に添えられた理由は質問2をまとめています。
また、初心者が気になるであろう質問にも回答してますので、最後まで読んでみてください。
アンケート結果
アンケートを集計した結果、3つの多数意見に絞られました。
アンケート結果
【1位】まず何をしたいのかを決めること。
【2位】書籍、ネットを使って勉強すること。
【3位】自分の手を動かしながら学ぶこと。
では、それぞれの意見を例なども通して解説していきましょう。
【1位】まず何をしたいのかを決めること。
プログラミングができるようになったと仮定して、何をしたいのかというのがまず私がするアドバイスです。
(それはなぜですか?)
何をしたいのかを理解せずにただ単にプログラミングを学んだ場合、プログラミングについて興味が薄れることが多いためです。なぜ興味が薄れるかというと、何をしたいのかがはっきりしていない場合、収入という方面でしかプログラミング技術を生かせなくなり、さらに難しいプログラミング言語の取得を求められた場合、お金のために言語を学んでいくという方向になるのでとてもじゃあないですが、楽しさを見出せません。
まずは何を作りたいか?を決めるところが重要だと思います。そして実際に作ってみるのが一番早く成長が出来ます。
(それはなぜですか?)
いくら頭に入れても実際にコードを書き始めると自分に合う合わないがわかるし全体像が把握できどう学習したらよいかわかりやすくなるため。
プログラミングは選択肢が多いので、何を作りたいのか、どのプログラミング言語に興味があるのかをまずは絞ること。
(それはなぜですか?)
仕事で使いたいのか、趣味で使いたいのかによって、学ぶべきものの選択肢が異なるから。
最も多かった意見として、「プログラミングを学習する目的を決めること」がありました。
これは、以下のような理由が関係していると感じています。
- プログラミングにはそれぞれできることが違う言語が多数あること
- プログラミングの技術習得のためには継続力が不可欠
プログラミングにはそれぞれできることが違う言語が多数あること
あなたは、自分のやりたいことにあったプログラミング言語を選ぶ必要があります。
なぜなら、プログラミングには、多数の言語が存在し、それぞれに長所と短所があるからです。
例えば、webサイトを作りたいと言ったら、HTML、CSS、JavaScriptといった言語をまず習得すべきでしょう。
でも、アプリを作りたい、日々の仕事を自動化したい、株価の分析をしたい、などプログラミングをする目的は多種多様にあるでしょう。
それぞれプログラミングを使えば可能なことではあるのですが、全ての言語が可能というわけではありません。
なので、自分のしたいことにあった言語を選ぶということがとても重要になります。
自分の目的にあった言語を選ぶことで、目的達成への近道となり効率的に学習することができます。
プログラミングの技術習得のためには継続力が不可欠
プログラミングを学習し、それが使え生かすことができるようになるには、継続して学習、アウトプットすることが必須になります。
そして、その継続のためには、長期的なモチベーションを維持することが大事になります。
なぜなら、1つの言語を学ぶとなっても知識は書籍3冊分(またはそれ以上)くらいはあり、それを自身の作りたいように作るまでにはある程度の学習の時間が必要になるからです。
例えば、webサイトを作成することができるHTML,CSSなどでも、私は400ページくらいの書籍を3冊分くらいやって、やっとアウトプットできるようになっていました。
このような、作業量が必要なことには長期的な目的(今の学習は何のためにやっているか?得た知識を使ってどんなことがしたいか?)を明確にすることがモチベーションにつなげることができます。
モチベーションを保つためにも、まず「プログラミングで何をしたいのか」を決める。
【2位】書籍、ネットを使って勉強すること。
書店に行き参考書を購入すると良いです、ネットに記載している参考書よりも本のほうが分かりやすく効率的に学べます。
(それはなぜですか?)
参考書を使用するとプログラミングに関するあらゆる知識が学べるからです。
自分自身としてはインターネットで調べたり、本屋さんでたくさんプログラミングに関しての参考書を購入をすることです。
(それはなぜですか?)
自分自身としては未経験でも分かりやすい内容のプログラミングについての本が大変多いからです。
今はネット上に勉強する為の情報が転がっています。気になるワードで検索するだけで、必要な情報を得られます。
(それはなぜですか?)
仕事していてプログラム言語の文法や関数の使い方など、ネットでよく調べています。「知らない」、「分からない」でも自分で調べる事が出来るなら問題ないと昔先輩に言われました。
2つ目に多かった意見として、独学で学ぶ場合は、書籍・ネットで学ぶということがあげられました。
現在、未経験の方に向けた書籍というのはとても充実しています。
独学で勉強したいという人に対して、お金はなるべくかけたくないということもあるかと思います。そんな方にも、書籍やネットで勉強するというのは、出費も少なくとても良い選択肢なのではないかなと思います。
事実私も、未経験言語はまず書籍を使って勉強をします。わからないところは、ネットで随時調べたり、ChatGPTに聞いたりみたいなことで対応しています。
でも、書籍やネットだと心もとないんじゃないかな、、
確かに、書籍やネットだと情報が遅れている場合もあるので、最新の動向までを把握するのに手間がかかる場合があります。
しかし、未経験で最初の言語を学ぶための知識を得るということに関しては、書籍・ネット検索などで十分対応することができます。
私も今まで学んできてたくさんのエラーなどにも出会いましたが、書籍・ネットで調べても解決できない!といったことはほとんどありませんでした。
なので、書籍やネットで学ぶという選択肢は未経験で独学しようと思っている方にはとても良い選択肢であると言えます。
ちなみに、以下には書籍・ネットで学ぶデメリットを挙げておこうと思います。
- わからないところを調査するのに、時間がかかる
- 中~上級レベルのことになると日本語の書籍、ネット情報が少なくなる
わからないところを調査するのに、時間がかかる
勉強をしていて、なんでこうなるのか?がわからない場合があると思います。
なぜこのエラーが出るのかわからないというときは、スクールなど周りに聞ける人がいる環境であればすぐ解決するのかもしれませんが、書籍やネットだと自身でググって調べる必要があります。
なので、その分時間がかかるというデメリットがあるでしょう。
しかし、自分で調査することは、ググる能力が鍛えられるということでもあります。
このググる能力は、知識がついてきて自分の興味のある所を調べてコードを書いていきたい中級レベル以上になってくると、とても重要になってきます。
そのときには、スクールなどに行くこともなくなっているので、自分で調べるということで解決することになります。
そのときに、自分の調べたいことを適切に調べられる力=ググる能力が必要になってくるのです。
話がずれましたが、書籍・ネットで勉強するということは、わからないことを調査するのに時間がかかります、しかしその分得られる能力もある。ということを知っておいてほしいと思います。
中~上級レベルのことになると日本語の書籍、ネット情報が少なくなる
これは、未経験の独学ではあまり関係ないことですが、
勉強をし続けてレベルが上がってくると、その分得たい知識のレベルも上がってきます。
しかし、現状豊富な知識が載っている書籍は、日本語よりも英語のほうがとても多いです。
未経験や初学者レベルでは、日本語の書籍が充実しているので問題ありませんが、
これから、さらに多くのことを知りたいという場面になった時には、英語の書籍も読めるようにしておかないといけないんだなと知っておくとよいと思います。
未経験のうちは、書籍やネットを駆使して学習するのが良い。
【3位】自分の手を動かしながら学ぶこと。
まずはプログラミング学習サイトで実際のプログラムがどういうものか、自分の手を動かしながら学ぶことです。
(それはなぜですか?)
いくら効率の良いプログラミング学習法を知っていても実際にコーディングができないと意味がないからです。そのための一番の近道がコードを実際に書くことだと考えています。
入門書を買う(できれば3冊)そして、とにかく手を動かしコードを書く
(それはなぜですか?)
私も全く同じ悩みを持っていて、質問1のように実践したら、うまく軌道に乗り出したので。
プログラミングは習うより慣れることが大事だと思います。参考書を丸暗記しようとするよりは実際にプログラムを組み立てる経験が大事です。
(それはなぜですか?)
プログラミングは習うより慣れることが大事だと思います。参考書を丸暗記しようとするよりは実際にプログラムを組み立てる経験が大事です。
こちらは、2位の意見とほぼ同じくらい多かった意見となりました。
自分の手を動かしながら学ぶということは、プログラミングで成長するためになくてはならないことです。
それは以下のような理由があると考えています。
- アウトプットとなるため
- アレンジしたくなる
アウトプットとなるため
知識をインプットするだけでは、知識を身に着けることができません。
プログラミングも同様です。プログラミングのアウトプットとは実際に書くことです。
まったくの未経験の頃は、まずお手本としてあるコードをそのまま自分のパソコンに書き写して、実行してみて期待通りの結果になるかどうかを確かめるところから始めます。
すると、大抵はうまくいかないことが多いと思います。そしてエラーが出ます。
しかし、このエラーを対処することが成長するときであり、アウトプットすることで成長すると言われる理由であると思います。
エラーは、パソコンが「ここがうまくいってないよ!こうすればよくなるかもよ!」と教えてくれているところです。
そこを一つ一つ直していきましょう。
すると、いつか教材の期待結果と同じ結果が得られるときがあると思います。
そのときは、とてもうれしい高揚感があるでしょう。
この高揚感を得られれば、さらに次のことも身につけたいと思うようになります。そしたら、もうよいサイクルにはまっていきます。
どんどんと新たなコードを実行して知識を得られるようになるでしょう。
このサイクルにはまるための第一歩が、アウトプットする=実際に手を動かすことになるのです。
アレンジしたくなる
手を動かすことにより、もう一つの利点は自分の書いたコードを「ここをこうすれば、別のこのような結果になるんじゃないかな?」とアレンジしてみたくなることです。
実はこのようなアレンジをすることはさらに大きな成長を生みます。
なぜなら、書き写して期待通りの結果(教材と同じ期待結果)となるかどうかを確認することは、真似をしたということになりますが、
アレンジをするということは、自分の理想の結果に対して自分で考えてコードを書くということになるからです。
例えば、あるコードを書いて結果Aまでを再現できたとします。
ここで、「コードのここを変えたらどうなるんだろ?こうなるんじゃないかな?」みたいな欲求がでて、コードを書き換え結果A+(Aとちょっと変わった結果)がでるようになりました。
すると、自分で書き換えて出た結果なので、印象にはとても残ります。また、自分の考えたことが間違いじゃなかったということで自身も得られます。
このように、手を動かし、さらにアレンジもすることによって、さらに大きな成長を生むことができるのです。
学習するときは、自分で手を動かすと効果的である。
まとめ
今回は、独学でプログラミングを始める人に対してのアドバイスをアンケートをもとに紹介しました。
継続することが大事と先ほど紹介しましたが、実体験を聞くとより信頼できると思います。
以下の記事では、私が未経験から継続して学習できたときにしていたことをまとめています。
ぜひ併せて読んでみてください。