【段階別】未経験から着実にレベルアップできるプログラミング習得法

こんにちは。不器用エンジニアのYamaです。
未経験からプログラミングを始める時にありがちな悩みとして、「どういう順番で取り組めばいいの?」というものがありますよね。

これに対して、先日↓のようなツイートをしました。

本記事では、「経験ゼロ〜それなりの実力を身につけるまで(エンジニアとして稼げるようになるまで)」の習得法を段階別に詳しく解説していきます。
※僕の主張として、「Rubyを入り口としてWeb系エンジニアになる」というルートを推奨しているのでその前提で書いています。

経験ゼロ

この段階では、ひたすら教材に沿って学習を進めましょう。

僕が一貫してオススメしている教材は、下記の2つ。

Progate については、↓のコースをまず1周してみる事をオススメします。

  • HTML
  • CSS
  • Javascript
  • Ruby
  • Ruby on Rails
  • SQL
  • Git

そして、超重要なポイントとしては「Progateを何周もやらない事」です。

どうしても不安だという方は2周くらいは取り組んでも良いですが、くれぐれもここに時間を掛けすぎないでください。
Progateってやればやるほどキャラのレベルが上がっていくので、ついついやりたくなっちゃいますよね。
でも、やりすぎないでください。

Progateはあくまでも「プログラミングってこんなものなんだ」という感覚を掴むためのものです。
これより後の段階の方が、現場で何とかやっていく実力を身につけるためには重要なのです。

次にRails Tutorial ですが、これは是非2周取り組むことをオススメします。

1周目で100%理解できる必要はありません。
というか僕も厳密に100%理解はしてないです。笑
分からないところがあっても、とりあえずコードを写経してアプリが動くことを体感しましょう。

2周目に差し掛かったところで、「あー、1周目で言ってたのはこういう事だったのか!」というアハ体験がポツポツ出てきて、面白くなってくると思います。

Tutorial を完了すると、あなたは「プログラミング経験あり」というカテゴリに入る事ができます。
しかし、まだ「実務経験あり」の人材ではありませんね。

この両者の隔たりがものすごく大きくて、「実務経験」の壁を超えるのが結構大変なのです。
経験の無いエンジニアに高いお金を払って仕事を頼みたいという人はいませんから、この段階だと稼ぐ事も難しいです。

逆に言えば、一度「経験者」のカテゴリに入ってしまえばこっちのもの
入る企業/組織を間違えなければ、スキルアップor年収アップのための転職も比較的容易にできますし、独立という選択肢も手に入ります。

この壁を乗り越えるために、次のステップがあります。

教材を一通りこなした後

教材での「お勉強」が終わったら、即実践に移りましょう。

具体的には、「1カ月以内で完結するようなWebアプリ(ポートフォリオ)を自作し、転職活動をする」です。

ポートフォリオは、転職活動においてめちゃくちゃ大切です。

未経験からでもきちんと開発ができる企業にもぐり込む事ができたのは、ポートフォリオのお陰だと思ってます。

現場のエンジニアは、「技術を勉強してきた人」よりも「自分の手を動かして何かしら作った人」を評価します。

アプリケーションを自作する過程で悩んだりググったりした経験が、本当の開発現場で仕事をこなすために不可欠であることを知っているからです。

僕の面接を担当した先輩エンジニアも、

「未経験採用でポートフォリオを準備してくる人は、全体の3割もいないね。その時点で上位3割に入ってる」

なんて事を話してました。

最初はアプリの題材を考えるのも難しいかもしれませんが、オススメは「自分の好きなWebサービスの簡易版を作る」というやり方です。

普段よくInstagramを使っているのであれば、その主要機能(画像投稿/閲覧/いいね..)だけを備えたWebアプリを作ってみるという感じ。

それも難しそうな場合は、1つ前の段階で紹介した Rails Tutorial を題材の基として使うのもアリですね。

Rails Tutorial は、最後まで終えるとTwitterによく似たアプリが完成するようになっています。

これを元に自分なりのアレンジ/機能を加えて、ポートフォリオとするのです。

こうして作成したポートフォリオを携えて、ガンガン転職活動をしていきましょう。

転職活動の具体的な始め方についてはこちらの記事に書いていますので、是非参考にしてください。

※未経験でポートフォリオを準備してる応募者は3割もいないわけですから、自信を持って活動しましょう。

さて、晴れてエンジニアとしてのキャリアをスタートさせた後はどのようにスキルを伸ばして行けば良いのか?

次にそれをお伝えします。

開発現場に入った後

この段階で最優先するべきは現場でのタスクです。

教材でのお勉強より何よりも、実際の開発現場で起こっている課題に取り組む事で得られる経験値の方が圧倒的に高いからです。

未経験者が現場に入ると「やり方が全然わからん、、」という事態が1日10回以上は発生します。笑

その際に重要なのは、「あまり自分で調べすぎない」という事。

ある程度自分で調べてみてやり方が分からなかったら、素直に先輩エンジニアに質問しましょう。

あくまでも「タスク/課題を解決する事」が最優先です。

タスクを消化するスピードが上がれば、より多くの経験値を単位時間あたりに詰め込む事ができます。

そして、空き時間や休みの日に「現場でなんとか解決した事」を書籍などで体系的に学び直せればベスト。

要するに、その時間/状況において最も効率良く学習ができる事を選ぶべきなんですね。

まとめると、

  • 現場にいる時間 → 質問できる相手がいて、経験値がおいしい課題もあるのでタスク消化を最優先
  • それ以外の時間 → 現場では突貫で片付けた課題/技術を振り返って理解を深める(復習)

という感じ。

僕は基本的にこの方針を貫きまして、副業含めたエンジニアとしての収入を約1年で50万円に乗せる事ができました。

(プログラミング、コスパ良すぎですね笑)

少なくとも、未経験から現場に入って半年〜1年間はこのような学習方針でいいのかなと思います。

終わりに

プログラミングの「お勉強」はある意味で楽ですが、いつまでもそれをやっていると成長速度は遅くなります。

ある程度負荷のあるトレーニングをしないと筋肉が育たないのと同じで、特に最初は「現場で揉まれた」経験を積む方が長期的に見てお得です。

自分の段階に応じて学習方法を変えて行くと、エンジニアとして高い報酬を得られるまでのスピードがぐーんと上がりますよ!

というわけで今回は以上です。
圧倒的な速度で成長して、イケてる&稼げるエンジニアになりましょう。