ニートが一発奮起して年収500万円のプログラマになる方法を語る

概要

20代の職歴なしフリーターくんが今の日本で一発逆転して職歴を作ることができるかどうかを検討したい。

アラサー未経験からのIT転職

この記事に感化されて考えてみることにした。

フリーターTくんのスペックについて

まず、できるかどうかは別としてターゲットとなる人物像はこんな方です。

  • 20代かアラサーまで
  • 大卒・高速どちらでも構わないが最低限の地頭を担保したいので大卒にしておく
  • 就活に失敗したか景気の影響を受けて正社員になることができなかった
  • 所持金は15万円はあるし、奨学金以外の借金はしていない
  • やる気と根性は人並み以上にはある方

これぐらいの条件で勘弁して下さい。 これぐらいであればまだ救いようがあります。

ではこのフリーターTくんは何をすればいいか。

楽天カードを作る

まず始めにクレジットカードが必要なので楽天カードを申し込んで下さい。
時代によりますが、景気のいい今のタイミングでしたらだいたいの人が審査に通ると思います。
申込み時点で「ショッピング枠」の希望項目があれば、自分の信用なら通りそうな金額で「できるだけ高めの金額」を選びましょう。
大卒なら20万円ぐらいいけそうですが、最低10万円以上が最低限ですね。
カードを申し込んだら1週間後ぐらいにカードが届くと思いますので、カード到着までの待ち時間に次の項目をやっておきましょう。

MacBookを購入しよう

クレジットカードを申し込んでからカードが届くまでに、手元の資金15万円をパソコンに投資しましょう。 Appleで新品で買えば10万円くらいで手に入ります。

MacBook Air

ただ、プログラミングスキルが全くないTくんには新品のMacBookなんて最低スペックでも勿体無いので、 倹約したいのであれば、ヤフーオークションで中古のMacBookAirを購入してきて下さい。

型落ちの古いモデルであれば頑張れば6万円、相場であれば7~8万円で入手できるはずです。
ここは最低限頑張って下さい。
カードを待っている間時間があると思うので時間をケチる必要はありません。

これで必要な道具が揃います。

アプリ開発スクールに3ヶ月間くらい通う

大抵の人はプログラミング未経験者にいきなりドットインストールをオススメしています。確かにドットインストールは優秀で大変便利です。ですが、大変便利と感じるのは「プログラミング経験者にとって」です。フリーターやプログラミング未経験者がドットインストールでプログラミングを勉強するのは、英語が話せない人がスカイプ英会話で英会話をマスターするぐらい難易度が高いです。確かに冒頭で最低限の地頭が必要とは述べました。が、ドットインストールでプログラミングをある程度できるようになるぐらいの地頭の持ち主であれば、就活でこけたりするようなことはないと思います。
喩えがアレでしたが、簡単に言えばプログラミング未経験者がドットインストールで一からプログラミング脳を手に入れるのは絶望的だということが伝わればいいのです。
逆になんで、プログラミングがある程度できる人ほど初心者にドットインストールをオススメする記事が多いのだろうか。

話しを戻しますが、最初にプログラミングを勉強するときはアプリ開発のスクールに通うのが一番早いです。
なので、前段階で手に入れた楽天カード(クレジットカードであればなんでも可)でショッピング枠も利用して値段が15万円以内のコースを申し込んでひたすら学びましょう。
一番最初のとっかかりは人に学んだ方が断然早いです。

ウェブサイトなら、TechCampでもTechAcademyアプリ開発ならレインボーアップスと色々なスクールがあるので講師に教われるタイプのスクールに通いましょう。

こういったスクールで学ぶべき点は2点です。

  1. 環境構築のやり方
  2. アプリの「リリース」までの流れ

一番重要なのは2番目です。
できれば、講師の人に教わって兎にも角にも作ったアプリを「リリース」するまで持っていきましょう。
逆にリリースできなければ半分リタイヤと思いましょう。
本当は自分の作りたいアプリを時間かけてじっくりと作りたいと思うでしょうが、
オブジェクト指向もデザインも仕様・設計もわからない貴方は自分の作りたいアプリをリリースまで持っていけません。
(ちなみにこれはプログラマも同じです。)

なので、スクールで教わるソースコードをコピペしまくっても構いませんし、デザインはフリー素材を使ってどっかからDLしてきても構いませんのでとにかく1個開発したアプリを「リリース」しましょう。

で、まあ、ここからが本題です。  

IT系のアプリ開発会社をメインに就活する

うまいことスクールを利用すれば最低限の地頭とガッツのある人なら1個くらいリリースできたアプリがあるはずです。
iOSアプリだとAppleの審査が厳しいので想定よりももっと頑張らないとリリースできないかもしれませんが、まあそこはアプリ開発スクールの講師も協力してくれるはずですのでなんとか頑張りましょう。

そのリリースしたアプリを元にアプリ開発会社を中心に求人に応募して面談にいきましょう。
書類審査があるところなら、履歴書にリリースしているアプリのURLを貼って送ればOKです。

前回のステップで開発してリリースしたアプリは就活中貴方の「人格」になるのです。
人事の方はあなたがリリースしたアプリを精査してあなたが最低限のプログラミングスキルを持っているかを判断します。
そのプログラミングスキルがその会社の要望のプログラミングスキルよりも下回って入れば落とされます。

ただそれだけです。

面談に呼ばれればあなたの勝率が50%になります。

面談中は思いっきりハッタリをかましましょう

多分、20社ぐらいに応募すればそのうちの2~3社には面談に呼ばれると思います。   この面談でみられる部分は会社によって違いますのが、あらかた想定が付くことを挙げておきます。

  1. あなたが会社で働ける人格を持っているかどうか(サラリーマン気質)
  2. あなたが会社で必要とする最低限のプログラミングスキルがあるかどうか(共同開発能力)
  3. あなたが会社の雰囲気・メンバーに馴染めるかどうか(コミュニケーション能力)

1番に関してはフリーターを卒業したい(サラリーマンになりたい)という動機があると思うから、「毎日、休まず会社に出社してみせます!」などと熱意を見せれば人事の方は評価してくれます。つまり、ハッタリが効く部分です。
2番はおそらくちゃんとした会社であれば面接の人事と一緒に現場のエンジニアの方が同伴されると思います。そのエンジニアの方をいかにして口説くが問題になります。エンジニアの方は会話からあなたのプログラミングスキルを判断してきます。ここでは、なるべく嘘は言わないようにすることです。嘘をつけば付くほどエンジニアから信頼を失います。会社によっては簡単なプログラミングの課題を出してきてリアルタイムで問題を解かせるといった事もしてきます。
なので、頑張り方はなるべく嘘をつかず変なことを言わないこと、そして問題を言われたら全力でその問題を解決しにいきましょう。
私にとっては問題を出してくれる会社の方が嬉しいです。   この問題のレベルでその会社に必要なレベルが分かることと、「そんな問題があるんだ!」と経験値が貯まるからです。 まあ、そんなもんですね。別に解けなくても死にはしませんので次の場面で役に立ちます。   3番はむしろガチのプログラマにこそ多いですがガチのプログラマほど苦手意識はあったりします(笑)。ただ、そんなことを言いたいのではなく、会社で働くのだから最低限のコミュニケーション能力が必要になります。  

ここでのコミュニケーション能力は

  • メンバーと仲良く開発できる会話術・一般常識
  • 開発する上でのメンバー間の連携のためのコミュ力

です。

3番目はある程度の運ゲーですので場数をこなすしか対策はありません。

しかし、ある程度のコミュ力があればすでにリリースしているアプリがあなたの「人格」を構成してくれます。それぐらいリリースしているアプリというのは強力なのです。
まっ、そもそも個人でリリースしている社員なんて少ないですしね(笑)。

ここで面談に通れば年収300万円のプログラマに出世します。

年収300道から年収500万円への道

割とアプリ開発の現場では見えてます。
一度就職したアプリ開発会社で勤続年数を2~3年頑張りましょう。
最初の会社で無理であれば最低3ヶ月でも大丈夫ですのですぐに別の会社に移動しましょう。
3ヶ月もその会社にいればいろんなタスクを経験すると思います。
大体は一人ではタスクをこなせませんので先輩エンジニアに頭を下げながらテクニックを覚えていきましょう。

おそらく、未経験の人は最初のタスクで半泣き状態のはずです。
最初の1年間のライフスタイルは

会社でタスクを振られるのでそれを実装するためにリサーチ・リサーチ・リサーチ・etc   家に帰宅して家で技術書片手に徹夜で勉強

の繰り返しになると思います。
最初は辛いと思いますが、そのうちいろんな意味で慣れてきます。

ここで学ぶ内容としては個人差はあると思いますが、

初級プログラミングスキル

  • メソッドの処理のロジック
  • アプリ開発上、必要なKitのプロパティ・メソッド
  • 引数・戻り値の意味
  • シングルトンをはじめとするデザインパターン
  • 変数・定数の使い方
  • for文、if文、return の使い方
  • if文の中で変数が使えること
  • ライブラリのいれ方・使い方
  • デバッグの方法

中級プログラミングスキル

  • 非同期処理・マルチスレッド対応
  • ライブラリ管理ツールの使い方・バージョン管理
  • DBの使い方
  • ググるスキル、未知の問題解決能力

開発フロー

  • gitコマンドや共同開発の進め方
  • タスクのこなし方
  • git-flow, github-flowなどのやり方
  • ブランチの切り方・マージの仕方
  • フロントエンドではデザインの当てはめ方、バックエンドではテストの書き方
  • API通信のやり方
  • タスク管理ツールも含めたツールの使い方

他にもタスクをこなしていけば色々なことを学ぶと思いますが、めげずに頑張ってください。
できれば、ここでかなりできる先輩エンジニアに頼み込んであなたのメンターになってもらうように依頼するのもいいかもしれません。会社の中では会社の利益になることであれば多少の融通は聞いてくれますので会社のリソースを存分に利用してください。将来独立するにしろ、またフリータに戻るにしろ貴方は一度、ガチのアプリ開発を経験しているのでその経験は将来に渡って有効に使えます。

2,3年も開発の経験をすればそれを元にして勉強会で人脈を作ってもいいですし、経験を生かしてメガベンチャーに転職することも可能になってきます。

そして過去を振り返ってください。

貴方が何年か前まで正社員経験がなくフリーターで手元には10万円ぽっちしか資金がなかったのに、今ではいっぱしのサラリーマン並みに稼ぐことができたのです。フリーター時代はこんなクソみたいな時代生きるのがバカみたいだ、なんて言っていたのにパソコン1台で立派に社会人になれているのです。

あなたの人生まだ終わっていませんよ。