どうも、フリーランスエンジニアのなおや(@naoya2_2)です。
プログラミングは挫折率が9割とまで言われていまして、実際に僕のまわりでも未経験からエンジニアとして働くまで達成している人はごく僅かです。
そこでなぜ挫折する人が多いのかを考えたのですが、1つの結論にたどり着きました。
今日は多くの人がやってしまっている独学の特徴や、それを解決する勉強方法まで紹介していきます。
挫折せずにエンジニアとして働きたいと考えている方には大切な内容ですので、ぜひ最後まで読んでいただきたく思います。
目次
【結論】「何の言語から始めるか」と考えてはいけない
プログラミング初心者が考えてしまうこととして「何の言語から始めようか」という疑問があります。
言語から決めると挫折する理由
言語から決めてしまうのはNG。挫折に繋がる大きな要因です。
理由としては、その言語で何ができるのかイメージできないから。
少しでもプログラミングに触ったことある人であれば、勉強段階で「で、これで何ができるの?」を感じたことあるのではないでしょうか。
if文を勉強しても、for文を勉強しても、何の役に立つかイメージできないんです。
学校の勉強のような「とりあえず暗記」はNG。
言語から決めると「とりあえず暗記」になりがちなので気を付けてください。
全体を知ろうとしてはいけない
プログラミングは勉強している言語の全体を知ろうとしてはいけません。
どういうことかというと、PHPを学ぶ時に「PHPで出来ることを全部覚えなきゃ」と思うことはNG。ということです。使いたい時に、使う知識だけ仕入れることを意識しましょう。
例えばフランスのレストランで食事をする時、フランス語を完璧にする必要はありませんよね。
店員の呼び方、注文の伝え方、支払いのやりかた、これくらいで十分のはずです。
これだけを調べればフランスで食事ができるように、必要な技術だけをその時に仕入れればOK。
実際のエンジニアも調べながら仕事をする
僕を含め実際に仕事をしているエンジニアも、全てが頭の中に入っているわけではありません。
やりたいことをその都度Googleで調べて実装しています。
「全体を知るまで仕事ができない」のは大間違いなので、その点は覚えておいてください。
作りたいものから必要言語を調べ、実際に作り始める
言語から決めるのではなく、作りたいものから言語を逆算して決定しましょう。
例えば、
- Webサイトを作りたい → HTML / CSS / JavaScript
- iPhoneアプリを作りたい → Swift
こんなイメージ。
そして実際に作っていく中で覚えていくのが非常に効率よく挫折しにくい方法です。
先程例に上げたif文やfor文も、作っていく中で使うことで本当の意味での理解に繋がります。
作りたいものが分からないなら「掲示板」を作ってみて!
ここまで読んでも、そもそも作りたいものが頭に浮かばないという人も多いかと思います。その場合はまず簡単な掲示板を作ってみることをゴールにしてみてください。
掲示板はプログラムの基礎が詰まっているので、一旦作ってみると理解が加速します。
- 画面の描写
- 入力データの保存
- データの抽出(表示)
上記の仕組みを掲示板で理解でき、かつ幅広いWebサービスを作る土台となります。
また、掲示板を作ることで、
HTML / CSS / PHP / SQL
このあたりの知見を得られます。
これらは実際に今僕が実務としてフル活用しているスキルですので、今後エンジニアとして働く際にも必ず役に立ちます。
決して学んでおいて損はないので、作りたいものが分からないなら掲示板にチャレンジしてみてください。
プログラミング言語の知識は他言語に応用可能
プログラミングは一つの言語を理解すると、新しく他の言語を学びたいと思った時に応用が効くのですぐに理解することができるようになります。
例えばPythonという言語を学ぶとしても、完全に知識ゼロから学ぶよりPHPをある程度書ける状態からの方が理解の速度は圧倒的に速いです。
というのも、プログラミング言語はそれぞれ多少の違いはあれど基礎になる文法は大体同じだから。
テニスが出来る人は卓球もそこそこ出来る、みたいな感じ(分かりにくかったらすみません)。
なので、スタートの言語に何を選ぶかはそこまで重要ではありません。
【まとめ】挫折しないために作るものから言語を逆算しよう
今回の記事で伝えたかったことは、
ということです。
また、その言語全体を理解しようとしてしまうこともNG。
実際に活躍しているエンジニアも全体を理解しているわけではなく、分からないことにぶつかる都度調べながら開発を進めています。
作りたいものを決め、それに合う言語を決め、調べながら学習する。
これが挫折せずプログラミングを学ぶ基本になります。
掲示板からチャレンジしてみよう!という方は以下の記事も参考にしてみてください。
関連記事:PHPとSQLで掲示板を作る方法
高橋直也(@naoya2_2)
フリーランスエンジニア。SEとして主に某企業顧客管理システムの開発、改修を担当している。ブログでは30歳未経験からSESを経てフリーランスになった経緯等を発信中。