プログラミング

人にはおすすめしない僕のスキルアップの方法

プログラミング学習には色々な方法があります。
基本的には自分に合ったやり方を模索し、学んでいけばいいと思います。
僕は一時期、学習方法について研究したことがありました。
効率的な学習方法なんて後から身に付くので、まずは学びながら試行錯誤していきましょう。

僕が取っている方法は大学入試対策と一緒


大学受験で、どうしても合格したい志望校があるとします。
まず何をやるかというと志望校の『赤本』を購入し、試験の傾向を知ることから始めると思います。
つまり過去問の攻略ですね。
過去問を見ていくと、どのような分野の問題が多くて出て、何を重点的に学べば良いか分かります。

僕はその方法を求人サイトやクラウドソーシングサイトで利用しています。

身に付けたいスキルの案件を探す

クラウドソーシングで、自分が身に付けたい案件を探します。
(考え方はクラウドソーシングでも求人サイトでも同じです)
例えば、Laravelのスキルを身に付けたいのであれば、スキルを身に付ける前に案件を探します。
そうすると、必要スキルのような項目があります。

Laravel以外にも必要なスキルがたくさんあることが分かります。

例えば以下のような項目です。

  • 要件定義書、仕様書、設計書作成の経験
  • GitHub/backlogを使った進捗管理
  • MySQL・Amazon Aurora等の一般的なRDMSを用いたWebアプリケーション開発経験
  • jQuery+BootstrapやVue.js/React.jsを用いたフロントエンドの開発経験

上記はかなりハイスペックな要求スキルになっていますが、読んでみると、Laravelを使えるだけじゃダメなんだな、というのが分かります。
つまり求人内容というのが、実際の企業が欲しているスキルなので、それに近づける努力をするのが大事ということです。

ここまで万人にオススメできる方法ですが、僕はさらにクラウドソーシングサイトに実際に応募しちゃいます。
「え!?スキルがないのに応募しちゃうの!?」
と思うかもしれませんが、応募する前にもちろん対策はします。
別に実務経験がなくても、ポートフォリオがあれば問題なかったりします。
また、クラウドソーシングの応募案件には応募期限が設定されているので、少し余裕がある場合は、それまでに学習と対策を行い、ギリギリになって応募するというのも手です。
締め切り効果によって緊張感を保ったまま学習することが出来ます。

注意点としては、この方法が使えるのは、

  • ある程度のベースがある
  • 現場での実務経験がある

限定になります。
ベースなし&業界未経験だと確実に失敗しますので、最低限のベース(企業の求められているスキルを自分で身に付けられるくらいの基礎力)は必要でしょう。
エンジニアになると、未知の言語やフレームワークを使うことはよくあるので、それに慣れている方は目新しい方法でもないでしょう。
ただ人間は餌(お金)と期限が決まっていれば、何も目的を持たずに取り組むよりも、何倍もパフォーマンスを発揮できます。

この方法は、本業/副業という枠組みにこだわらず、使えるので、オススメです。

オススメの書籍

転職を勧めるわけじゃないですが、自分の業界における立ち位置を分析するのは必要です。
転職は安易にする必要はないが、いつでも転職できるくらいのスキルを身に付けることが大事だと思っています。
『このまま今の会社にいていいのか?と一度でも思ったら読む 転職の思考法』は、転職という選択肢を明確化してくれる良書でした。