こんにちは、かみざとです
今回は「初心者の方向け“挫折をしない”プログラミングの5つの学習ステップ」について、お話をしていきます
トピックはこちら
- はじめに~ターゲットと勉強方法の改革~
- 【目標を決める】
- 【環境構築】
- 【言語・フレームワークの基礎を学ぶ】
- 【チーム開発を学ぶ】
- 【オリジナルポートフォリオの作成】
※Youtubeの配信動画は下のリンクからご視聴ください
はじめに~勉強に対する価値観を変えよう~
プログラミング学習では挫折する人が9割にのぼるとも言われています
その多くの人が勉強方法を間違っていて、お金も時間もかけているのにとてももったいないと感じることが多いです
勉強法さえ改善すれば伸びる初心者はもっとたくさんいるはず
僕はそういう初心者の方を助けていければいいなと思っています
だって、頑張ってるのに結果出ないってかわいそうじゃないですか
世の中にはたくさんの間違った情報があふれています
1週間でエンジニアになれますといった広告もあるくらい
希望を与えることも大切ですが、1週間というのはいくらなんでも非現実的なのです
この記事では現実的なステップを紹介しますので、無駄な工数をかけることなく、しっかりと再現可能で効率的な学習方法が身につきます
僕はアラサーでベンチャーにエンジニアとして転職して働いていました
加えて、プログラミングスクールでも働いていました
そして今はエンジニア兼CEOとして働き、500名以上の方にプログラミングを教えています
そのため、かなり再現性のある学習方法をあなたに提供することができるかと!
この記事を見たら以下のようなメリットがあります
・迷わず学習を進めることができるようになる
・挫折を防ぐことができる
・エンジニアを目指すべき人とそうでない人の違いがわかる
ただし、今回の記事はすぐ稼ぎたい人のためのお話ではありません
すぐに稼ぎたい人はマークアップエンジニア、ワードプレスエンジニアといったものを目指すといいでしょう
ここでは、将来的に価値ある人材になるために、フロントエンドエンジニア、インフラエンジニア両方の基礎となるサーバサイドエンジニアについて話していきます
どの言語で始めればいいか、ということに関しては「自分が楽しいと感じる言語」を選んでください
プログラミングは難しいので、諦めずに長く続けるために楽しいものを選ぶことをお勧めします
楽しいという思いがもつ人を成長させるエネルギーは凄まじいです
楽しめれば結果は後からついてきます
まずは5つのステップを学ぶ前に勉強に対する価値観を変えましょう
学校での評価はテストの点数で決まって来ていたかと思いますが、実はこれがプログラミング学習における諸悪の根源なんです
テスト前に何をしていましたか?暗記ではなかったでしょうか
しかし、プログラミング学習では学習項目が多すぎるので暗記では追いつきません
また、暗記のためにノートに書き続けるのもよくありませんそうするときりがないからです
プログラミングでは学ぶことが膨大すぎるので大きな時間のロスとなってしまいます
あと、テストの時ってカンニングはダメでしたよね。
この価値観もプログラミング学習にはよくないんです
なぜならエンジニアはカンニングしていいんですよ、やりまくってください
僕も、多くのエンジニアもなにかしらのカンニングペーパーを見ながら、調べながらやっています
それでは本題に入りましょう
挫折しないプログラミング学習方法5ステップ
1. 【目標を決める】
次に、目標設定において大事なことを3つお話しします
まずは作りたいものを決めましょう
その際、稼ぐ額を決めるのは本当にやめてください
プログラミングはお金ばかりを追いかけると挫折します
長期的に時間を投資しないと価値あるスキルは身につきませんので、気長にコツコツとやっていきましょう
どれだけしょぼくてもいいのでまずは自分の作りたいものを考えてください
自分の周りの不便を考えて見ましょう
たとえば奥さんが献立を考えるのが面倒臭いのを解消してあげたいとか、趣味をもっと充実させたいとか自分に関したアプリを作るととても楽しいです
次に大事なことは毎日やることです
今この瞬間から毎日やると決めましょう
エンジニアになるには最低でも平日2時間以上、休日4時間以上の時間を確保してください
可能な人は平日4時間、休日8時間できると素晴らしいです
慣れないうちは机の前に座るだけでも、コードを1~2行書くだけでも構いません
わからなくてもいいんです。勉強が楽しくなるまでとにかく毎日続けることが大切です
最後に、いつまでに転職するか決めましょう
エンジニア転職の場合目標は半年が現実的な数字です
長くやっても続かないことが多いので、びしっと半年で決めるという覚悟を持って取り組みましょう。
2. 【環境構築】
パソコンの環境構築も大切ですが、もっと大切なのは学習環境の構築です
まずはいつでも質問できる環境を整えてください
現役エンジニアから学ぶことが一番効率いいです
ただし、たとえスクールだろうが実務未経験者が教えているところもあります
スクールのいいところはエンジニアとしての考え方を提案してくれる点です。今は安くてもいい教材が手に入るので、教材を売りにしているスクールに通うのはやめたほうがいいです
そして、自己管理しなくていい環境、つまり意識しなくても学習モードに入れる環境が重要です
自宅、カフェ、コワーキングスペースと色々ありますが、僕はエンジニアと一緒に住めるシェアハウスを一番お勧めします
そうすると自己管理が自然とできるようになり、勉強時間が伸びていくので
僕がオフラインでやっている教室の「やんばるCODE」でも、住み込み型で学習されている生徒さんには1日の勉強時間が1~2時間から10時間にまで増えた方もいらっしゃるほど環境の力はすばらしいものなんです。
3.【言語・フレームワークの基礎を学ぶ】
言語の基礎学習に関しては、条件分岐や繰り返し処理、加えて、メソッド、モジュール、継承、変数のスコープ、変数やメソッドの命名規則は最低限学びましょう
フレームワークに関しては、MVCモデルに関する理解、クラッド処理の実装、データベースの基礎、これは、SQLも含みます。その他主要なライブラリの使い方に関して学べるといいと思います
ここで挫折をしがちですが、重要なのは、完璧を目指さないことです
完璧はいつまでたっても来ません
言語を完全に理解してからフレームワークに移ろうとするのではなく、交互に学習していきましょう
そして、教科書をなぞる学習をやめましょう。あくまでも実装したい機能を調べて実装できる能力を身につけることが大切です。
教科書をなぞる学習のよくない点はエラーを全く経験しないことです。
エンジニアの仕事はエラー解決なんです。
仕事時間のほとんどはエラー解決をしているか、他の調べ物をしているかです。
教材に載っていないものを自分で作る能力をつけるために、たまには自分でアプリを0から作ってみることもいいでしょう。実装する中で調べ物をしたり、エラーにぶつかって解決するような学習を積み重ねることで、エラーを解決できる能力を学べるようになってきます
ただし、ずっと同じエラーに直面していてもしょうがないので20分考えてわからなかったらメンターに聞くようにしましょう。
4.【チーム開発】
現場がチーム開発である以上慣れておく必要があります。つまり、チームメイトと円滑にコミュニケーションできる能力です。
プルリクエストをレビュアーが見やすいように整理したり、適切な質問の仕方や、チャットツールの使い方を学んだりする必要があります。特に、GitやGitHubを使ったバージョン管理やソースコードの共有のやり方は学んだ方がいいです
5.【オリジナルポートフォリオの作成】
これが企業で一番求められるものであり、自分の自走力をアピールする大切なものです。大切なのは自分の頭で考え思考錯誤した痕跡が見えるかどうかです
エンジニア転職をするときは「おもしろい」ポートフォリオを作りましょう
ハイスペックなものを作る必要はありません。よっぽどでない限り機能面での差別化はとても難しいので、おもしろいコンセプトで差別化を計りましょう
考えてみてください。面接官は時間がない中でポートフォリオを見ています。ありきたりなものは見飽きてしまっているので、ちょっとコンセプトが変わっている面白いものにこそ目が止まります
教科書をなぞったものではない、自分のアイデアが光るオリジナルポートフォリオの作成に心臓を捧げていきましょう
まとめ
ということで、今回お話しした5つのステップを意識しながら学習を進めてみてください
- 【目標を決める】
- 【環境構築】
- 【言語・フレームワークの基礎を学ぶ】
- 【チーム開発を学ぶ】
- 【オリジナルポートフォリオの作成】
学習の最重要目標は、実装したい機能を情報収集しピンポイントで実装できる能力を身につけることです
エラーを避ける学習ではなく、簡単なものでもいいので自分の頭で考えてオリジナルのコードを書く学習をしてください
この5つのステップを守って学習すれば、きっと半年後にはエンジニアに転職できます
今は辛くても長期的な目線では価値のあるスキルになっていきますので、ぜひ楽しみながら学習をしていってください。大切なのは目の前の物事を楽しむことです