文系でプログラミング完全初心者がWebエンジニアへの転職を考えはじめた時、まず悩んでしまうのがプログラミングの勉強方法。
- そもそも何から手をつけて良いのか分からない。
- 効率良くプログラミングを勉強する方法を知りたい。
- 独学で出来るのか?スクールに行った方が良いのか判断したい。
という疑問があるなら現役フリーランスエンジニアの私が、過去に自分に勉強方法を伝えるなら?という視点で失敗談と共に、最速で転職しWebエンジニアになるための勉強方法を紹介します。
プログラミング初心者の最速勉強方法4ステップ
早速、結論から。プログラミング完全初心者の最速勉強方法は下記の4ステップです。
- なぜプログラミングを学んで転職したいか動機を明確にする
- Progateで基礎を学ぶ
- サンプルコードを打ち込み、少し改良する
- あったらいいな~と思うサービスを作ってみる
順に解説します。
ステップ1:何故プログラミングを学びたいか動機を明確にする
プログラミングを勉強する上ではじめに取り掛かってほしいステップ1は「何故プログラミングを学びたいと思ったのか?動機を明確にする」事です。
理由は大きく2つあります。
- プログラミングを勉強する途中で心が折れかけた時にモチベーションを取り戻すため
- こんなサービスがあれば便利というイメージがあれば必要な勉強も明確なため
これからプログラミングを勉強していく上で、文系未経験の場合9割以上が一度は自分に向いているのか?自信が無くなる時が出てきます。
その際、プログラミングを何故学びたいか。その時の気持ちが明確であればやってやる!と途中で投げ出さずに継続できるでしょう。
特に「もうこんな働き方は絶対イヤだ!」「低賃金でこき使われるのはもう辞める!そのためにWebエンジニアになるんだ!」というマイナスの感情を恥ずかしがることなく、ノートやメモ帳でも良いので書き留めておきましょう。
合わせてこんなサービスを作って世の中を良くしたい!という想いがあるのなら必要な勉強も明確ですし、最速でエンジニアへの道が拓けるでしょう。
ただ、明確にサービスを作りたい!という人は少数ですのでこちらは無くても良いです。
エンジニアになって将来仕事の不安を抱えるのは2度とゴメンだ!
こんな内容でも、私がプログラミングを勉強するエネルギーになりました。
>>IT業界への志望動機。文系未経験からなぜエンジニアになりたいか?
ステップ2:Progateで学ぶ
動機を明確したらいよいよ実際にプログラミングに触れていきましょう。
ここで大事なのは適度な難易度を選んでいくことです。
理由としては、
- 参考書だと難しくて挫折しがち。
- プログラミングスクールにいきなり通うのは最低限のプログラミングが出来てからじゃないと非効率。
はじめは無料のオンラインプログラミング学習サイトの「Progate」があるので、ここでプログラミングに実際触れてみて基礎の基礎を身に付けましょう。
>>Progate
おすすめはHTML→CSS→JavaScript→jQuery→RubyもしくはPHPの順番です。
どの言語を選べば良いか迷ったら
>>【プログラミング言語の種類と特徴】初心者におすすめの選び方は1つ
※はじめは無料範囲。1ヶ月以内に終わらせると決意して有料プランの範囲を学ぶのが良いです。
絶対に1ヶ月以内に終わらせてください。
ここで大事なのはプログラミングを勉強する上でやってはいけない落とし穴でも紹介していますが
完璧を求めないことです。
出来なくても良いので7割位理解できたら次に進みましょう。
1ヶ月以内にProgateを終わらせた時にあなたのプログラミングのレベルがある程度判定できます。
上級編のエラーも1時間以内だったり、自分なりに解決して進めたなら独学で問題ないでしょう。
もし、エラーに半日くらい躓いたり上級は難しいと感じたならプログラミングスクールで集中的に教えてもらう方が効率が良いと思います。
独学なら自分の作りたいサービスを作る上で師匠を探しておくと、今後がスムーズです。
友人にプログラマーがいれば飯をおごってでも教えてもらいましょう。
スクールを検討するなら、この段階でも良いですし、ステップ4でスクールを検討するのが学びたい内容も明確なので効率的です。
>>プログラミングスクールおすすめ3選!文系未経験から転職実績あり。最短3ヶ月後にはプログラマーに
>>【最短習得】働きながらプログラミングスクールで学ぶ3つのコツ
ステップ3:サンプルコードを打ち込み少し改良する
progateを使って、条件分岐や繰り返しを覚えてきたら次のステップ。
サンプルコードを打ち込み少し改良してみましょう。
この「少し改良」というのがポイントです。サンプルコードを丸写しする「写経」も良いのですが、少し改良することによって理解度が一段上のレベルになります。
例えば分岐をやりだしたなら、数字を入力して60点以上で”合格”、それ以下なら”不合格”が表示されるプログラムに80点以上なら”素晴らしい点数です”と表示させてみよう。
マイナスの数字を入力したらもう一度入力を促そう。という簡単な内容でもOKです。
自分で意図したプログラムをかけるようになると、かなり極端なことを言ってしまえば「式や演算子」「条件分岐と繰り返し」や「配列」を組み合わせてプログラムを作っていけばサービスは作れるからです。
ステップ4:あったらいいな~と思うサービスを作ってみる
サンプルコードを改良して理解がある程度進んでいくといよいよ最終段階です。
自分があったらいいな~と思うサービスを作ってみましょう。
世の中を激変するサービスを目指す必要はなく、普段の身の回りで不便だと感じていることやあったら良いな。と思ったサービスで大丈夫です。
作ったサービスがあなたのポートフォリオとなり、転職する上であなたを評価する参考材料の一つになります。
もし、どうしても思いつかなかったら既にあるサービスを真似て作ってもOKです。
サービスを作る上でのステップは下記の3つ
- サービスを細分化する
- 必要な技術を調べる
- 実際に開発する
1:サービスを細分化する
例えばSNSを作りたいとして、必要な機能を洗い出します。
- メッセージ機能
- コミュニティ専用チャットルームがある
- 専用チャットには承認が必要
- 最終ログイン状態を表示する
- IDとパスワードが必要
という具合です。
2:必要な技術を調べる
必要な機能を洗い出したら具体的に必要な技術を調べていきます。
そもそもサービスによってはサーバーの知識や、データベースの知識など必要な知識がどんどん出てくるかも知れません。しかし大事なのは「自分には何が必要な技術で、どこが分かっていないか」という理解です。
「何が分からないか分からない」は最悪状態ですが「何が分からないのか説明できる」と半分以上答えに近づいていると思っても大丈夫です。
3:実際に開発する
サービスを細分化し、必要な技術を調べたら、いよいよ実際に開発する段階です。
サービスの完成も大事ですが、完成までのプロセスも大事で面接時に評価の対象になります。
大事なのは「どの点に苦労して、どうやって解決した。」というのを記録しておくこと。
そのアプローチ方法は今後のエンジニア人生の中で大きな経験となります。
この段階でエラーで半日詰まったり、実装方法で数時間ググっている状態が続くようなら、メンターのサービスを利用したりスクールでいつでもエンジニアに質問できる環境を整えた方が時間の無駄にならず効率的。
時間は有限ですので、最速でサービスをリリースする方法を考え実行しましょう。
友達にエンジニアがいるなら土下座してでも教えてもらいましょう。