記事を読むメリット
- プログラミングの独学に対する誤解が解ける
- 天才じゃなくても身につくプログラミングの勉強方法が分かる
プログラミングを独学しようと思ってるけどなんか難しそう…独学できる人って天才なんじゃない?いったいどんな方法で勉強してるの?
プログラミングに向いている人の特徴とか知りたいなあ
天才じゃなくても独学でプログラマーになれるかな?
今回はこのような方に向けた記事です。
ちなみに僕の経歴としては、プログラミングを1年独学して業界未経験でWebエンジニアになりました。
プログラミングをやる前はウーバーイーツを週6でやってました。
- 独学できる人って天才なんじゃない?→天才じゃなくても独学できます。
- いったいどんな方法で勉強してるの?→まずは目的持つことです。
- プログラミングが向いている人の特徴は?→想像力が豊かな人です。
- 天才じゃなくても独学でプログラマーになれるかな?→3ヶ月〜半年ぐらいでなれます。(別記事参照)
この記事を読むと、プログラミングの独学に対する誤解が解け、天才じゃなくても身につくプログラミングの勉強方法が分かります。
目次- 天才じゃなくても身につくプログラミングの独学方法【まずは目的を持つこと】
- プログラミングの独学に対する誤解3つ【暗記は不要です】
- プログラミングが向いている人の特徴3つ【口喧嘩が強い人】
- プログラミングが向いていない人の特徴3つ【なんとなく学ぼうとしてる人】
- 余談:全員2〜3回ぐらいは挫折してる
- まとめ:天才じゃなくても身につくプログラミングの勉強方法
※プログラミングの始め方については別の記事にまとめました。
天才じゃなくても身につくプログラミングの独学方法【まずは目的を持つこと】
プログラミングは天才じゃなくても身につく方法があります。
具体的な方法は以下の3つです。
まずは目的を持つ
まずプログラミング学習は、目的をしっかり持つことが一番重要です。
なぜ目的が必要かというと、
「何回やり直してもバグが直らない」
「詳しい人に聞こうにも聞き方が分からん」
「この言語の意味が全く分からない」
といった具合に2〜3回ぐらいは絶望しそうになる瞬間が訪れるからです。
その時に頑張れる理由がないと踏ん張れないので、しっかりとした目的を持つことが一番重要です。
ちなみに、目的を持つとはいっても、勉強する前から
「Docker環境でNext.jsのSSRを実装できるようになる」みたいな、明確すぎる目的は持たなくて大丈夫です。
「1年以内に転職したい」「Webサイトが作れるようになりたい」など、簡単な目的でOKです。
絶望しそうな時に自分が頑張れる理由になるなら、どんな目的でも大丈夫です。
些細な疑問を放置しない
プログラミングで次のステップに進んでいくためには、それまでの前提条件を理解しておく必要があります。
なので些細な疑問を無視し続けるといつか壁にぶち当たります。
プログラミング学習に近道はないので、些細な疑問を放置せず、1つ1つ丁寧に学んでいきましょう。
なんとなく全体の雰囲気を理解する
↑で「プログラミング学習に近道はない」と書きましたが、
近道があるとしたら”なんとなく全体の雰囲気を理解すること”です。
なんとなく全体の雰囲気が理解できると、1つ1つが点ではなく線で繋がるので学習を進めやすくなります。
些細な疑問を放置するのもよくないですが、逆に全てを完璧に理解しようとすると、理解できなかった時に挫折の原因になる&時間がかかるので、バランスが大切です。
目安として30分悩んでも理解できなかったら放置して次に進みましょう。
そのうち理解できます。
プログラミングの独学に対する誤解3つ【暗記は不要です】
プログラミングの独学に対する誤解を3つ解説します。
プログラミングの独学に対する誤解3つ暗記が必要なんでしょ?→全く不要です
プログラミングに暗記は不要です。
なぜなら全てを暗記するのは不可能&プログラミングはカンニングOKだからです。
プログラマーに一番必要なのは問題解決能力です。
【優秀なプログラマー】
暗記よりも全体像を理解し、分からないとこはググって調べたりして「良いプログラムを作ること」を最優先目標にしている。
【残念なプログラマー】
ひたすらコードを覚えようとし、「ググったら負け」みたいな謎思考で、良いプログラムを作ることよりも「暗記すること」が最優先目標になっている。
作業に慣れていくと体に染み付いて結果的に暗記みたいになりますが、最初から暗記しようとしなくて大丈夫です。
全て完璧に理解しないといけないんでしょ?→雰囲気だけでOKです
なんとなく全体の雰囲気が理解できればOKです。
全て理解するのは不可能&非効率&挫折しやすいからです。
1つ1つをぼんやりでもいいので理解して先に進んでいくと、いつか全てが繋がる瞬間があります。
先述と被りますが、”なんとなく全体の雰囲気を理解すること”がプログラミングを身につける近道です。
性格上「1つ1つ完璧に理解しないと気が済まない!」という人はそれでもいいです。
自分が納得できる方法で勉強してOKです。
ただ、折れそうになったら諦めて次に進みましょう。
理系の方が向いてるでしょ?→むしろ文系の方が向いてます
僕も当時「プログラミング=パソコン=理系」みたいに思っていましたが、やってみると全然違います。
むしろ「あれなんかもしかして、ここのバグってこれが原因じゃね?」みたいな柔軟な考え方が大事です。
あと僕もそうですが、そもそも「理系と文系の違い」からよく分かってない人が多いので
「理系だからできる!」「文系だからできない!」みたいな論争はわりと無意味です。
プログラミングが向いている人の特徴3つ【口喧嘩が強い人】
プログラミングが向いている人の特徴を3つ解説します。
プログラミングが向いている人の特徴3つ口喧嘩が強い人
言い換えると「根拠のある思考ができる人」です。
根拠のない論調だと相手に言い返す隙を与えてしまうので、口喧嘩の強い人は、相手の逃げ場が無くなるように理詰めでガン詰めしてきます。
「相手の逃げ場を無くす理詰め=根拠のある思考」です。
プログラムの構築には全て理由があり「なんとなく起こるバグ」はありません。
プログラミングを身につけるためには「何がどうなってるからああなってる」「これがこうなってるからこうなる」といった根拠のある思考が大事です。
ネガティブな人
僕もネガティブですが、ネガティブな人は想像力が豊かです。
「ああなったらどうしよう…こうなったらどうしよう…」
「あの人はきっと自分のことが嫌いなんじゃないか…」
「きっとこのままじゃ失敗するんじゃないか…」
といった具合に、ネガティブな人はなにかが起こる前から色々想像します。
プログラミングは1つ1つ小さなものを積み上げて、最終的に大きなものを作り上げます。
ネガティブで想像力のある人は、1つ1つの意味や役割をもとにして全体の雰囲気をイメージできるので、学習の吸収が早い&バグやエラーを発見しやすいです。
「このコードの書き方だとどんな動きになるかな?」
「あれ、あそこにはこういう役割があるから、このバグってあそこが原因じゃね?」
といった具合に想像する力が重要です。
何か3年以上続けた経験がある人
言い換えると「忍耐力がある人」もしくは「継続力がある人」です。
部活とかでもいいです。
プログラミングは1日や2日で身につくものではないのと、バグやエラーなどにも根気よく向き合わないといけません。
バグやエラーはその日のうちに解決できないことが多々あります。
モヤモヤしながらバグやエラーを抱えて何日も過ごさないといけないので、僕も含めた大半の人は結構イヤになります。
何かを3年以上続けられるような、忍耐力や継続力のある人は簡単にへこたれないので、プログラミングに向いています。
プログラミングが向いていない人の特徴3つ【なんとなく学ぼうとしてる人】
プログラミングが向いていない人の特徴を3つ解説します。
解決策も書きます。
なんとなく学ぼうとしてる人
先述の通り、プログラミングは1日や2日で身につくものではないのと、バグやエラーに忍耐強く向き合わないといけないので、プログラミングを学ぶ理由が弱いと頑張れないので挫折しやすいです。
最初は興味本位で始めて全然大丈夫なので、学習を進めながら目標も持ちましょう。
解決策
「転職する」「こういうアプリを作る」「友達のWebサイトを作ってあげる」など、目標を決める。
ググるのが苦手な人
プログラミングで一番重要なのは「問題解決能力」です。
先述の通りプログラミングはカンニングOKなので、分からないところはググって調べましょう。
逆にググるのが下手だといつまでも解決できません。
ネット上のどこかに必ず答えはあります。
その答えに辿り着くためにググる力を鍛えましょう。
解決策
身近ものをGoogle検索で導き出す練習をしてみる。
例)
スタバ→「緑 人魚 ロゴ カフェ」でググってみる
ピクルス→「ハンバーガーに入ってる 緑 酸っぱい」でググってみる
継続が苦手な人
プログラミングに限った話ではないかもしれませんが、継続できないと身につきません。
継続すると良いスパイラルが起こり、継続しないと悪いスパイラルが起こります。
- 継続する→成長を実感できる→もっと学びたくなる→継続できる→成長する
- 継続しない→成長を実感できない→学んでも無駄だと感じる→やがて勉強しなくなる
解決策
忙しい時は1日10分でもいいので、なるべく毎日プログラミングに触れるようにする。
余談:全員2~3回ぐらいは挫折してる
プログラミングを身につけた人は、全員2〜3回ぐらい挫折しています。
僕もWrodPressで1回、JavaScriptで1回挫折し、それぞれ1〜2ヶ月ぐらい放置しました。
けどなんだかんだ再開して、学習開始から1年ぐらいで転職できました。
挫折を恐れることはありません。
イヤになったらやめましょう。
僕みたいにせっかく買ったMacBookをYouTube見るためだけに使いましょう。
いつかまた再開すればOKです。
- 今まで何も挫折したことがない
- 一度見たものは全て暗記できる
- 休憩なしで10時間とか集中し続けられる
- 2〜3回ぐらい挫折したことがある
- 一度じゃ覚えられないのでその都度調べる
- 10時間も集中できないしできてもめっちゃ疲れる
結論:天才になる必要なし。
まとめ:天才じゃなくても身につくプログラミングの勉強方法
記事のまとめ- 天才じゃなくても身につくプログラミングの独学方法…「まずは目的を持つ」「些細な疑問を放置しない」「なんとなく全体の雰囲気を理解する」
- プログラミングの独学に対する誤解3つ…「暗記は不要」「完璧に理解しなくていい」「文系の方が向いてる」
- プログラミングが向いている人の特徴3つ…「口喧嘩が強い人」「ネガティブな人」「何か3年以上続けた経験がある人」
- プログラミングが向いていない人の特徴3つ…「なんとなく学ぼうとしてる人」「ググるのが苦手な人」「継続が苦手な人」
- 全員2~3回ぐらいは挫折してる
プログラミングの独学は天才じゃなくてもできます。
「天才とは、努力する凡才のことである」というアインシュタインの名言があります。
スキルは継続すれば誰でも身につきます。
がんばっていきましょう。
今回は以上です。
関連記事