こんにちは。DAIです。
将来プログラマーになりたいという方は多いのではないでしょうか。そしてプログラミングはいつでも学べそうな気がしてきますが、実は大学生のうちにエンジニア力をつけておくことが非常に重要なんですよね。実際に学生時代からエンジニアリングをやっていて、かつ新卒エンジニアとして働いている人の話数人から聞いてみると、大学のころから現役でエンジニアをしている人は、年収が新卒で700万円超えていることが当たり前のようにありました。逆に社会人からプログラミングを学び始めると、普通に300万円くらいしか年収ないんですよね。
これはなぜなのでしょうか。今回は、大学生のうちにプログラミングを学んでおくべき3つの理由と、新卒で市場価値の高いエンジニアになるための最短ルートをステップに分けて解説してみました。
目次 [非表示]
大学生のころこそ、エンジニア力を付けて市場価値を高めておく理由
新卒でプログラマーとして就職し、給料を上げたい人が多いと思います。そういう人は、大学生の今こそ、やるべきかと思います。
大学生だからこそ、エンジニア力をつけておくといいということを、採用をしている立場からしても、非常に強く痛感します。
その3つの理由について解説していきたいと思います。
①大学生でないと、エンジニアに必要なスキルを身に着けるのが難しくなる
エンジニアになりたい!と思ったときに、すぐなれるかというと否なんですよ。なんでかというと、中途採用でエンジニアとして転職するためには、ポテンシャル採用ではだめで、ちゃんと実績と経験がある人ではないと転職できないからなんです。社会人になってから、エンジニア転職が難しいのはまさにここです。つまり、プログラミングも能力がなく、かつプログラミングを実際に利用してサービスを運用、もしくは開発した経験がないので、難しいんですよね。
実際に例を見てみましょう。こちらメルカリのエンジニアの募集要項です。必須条件はないと応募しても落ちる条件で、歓迎条件であればあればさらによいという条件となります。Webアプリケーションの開発経験と、データベースを利用したアプリケーションの開発経験がなければ入社することは非常に難しいです。
応募資格 / Qualifications ▼必須条件
・Webアプリケーションの開発経験
・RDBMSを利用したアプリケーションの開発経験
▼歓迎条件
・PHP, Go, Java, Python, Node.js, Ruby, Perl などのプログラミング言語での開発経験
・Microservicesアーキテクチャでの開発経験
・Git / Githubを利用したチームでの開発経験
・ユニットテストフレームワークを利用したテスト駆動開発経験
・Webアプリケーションフレームワークやライブラリなどの開発経験
・大規模サービスの開発経験(負荷を考慮した設計できる方)
・OSSの公開、コントリビュートの経験
この経験を得るためには、もともとエンジニアじゃないと難しんですよね。また、完全未経験でエンジニアに就職するのもよいのですが、それだと相当年収が落ちることになると思うので、大変だと思います。というか、完全未経験なら年齢が高い社会人よりも、学生を取ったほうがペイするから未経験の社会人をとるインセンティブが採用側としてはそこまでないのです。
また、仮に奇跡的に土日でインターンなどを見つけたとしても、社会人だとなかなか時間が作れないから、技術を付けるリソースが全然ないんですよね。特に新卒でブラック企業なんかはいったら、いざエンジニアになりたいって思ったとしても間違いなく時間がなくてできません。だから一度エンジニアと関係ない職種についてしまうと、エンジニアに非常になりにくいという特徴があります。
②プログラミングを学べば、どこでも働けて、成長した分が成果として収入に反映される
プログラミングを学んで、実際にコードを書けるようになると、クラウドワークスなどの案件で単価30万円くらい案件を、1カ月で2件くらいできてしまうですよね。だから大学生でもエンジニアなら、1カ月で60万円以上稼ぐことも実質可能なんですよね。実際僕の友人も学生時代、つまらない授業は授業中に案件やって、バイト全くせずとも好きなプログラミングで稼いでいる人がいました。しかも勉強すればするほどどんどん単価が上がっていくので、普通にバイトするのがあほらしくなるみたいです。
③プログラミングは年齢関係なく、実力で市場価値が上がる
エンジニアの採用は新卒でも完全実力主義なので、技術力が高ければ純粋に年収もあがります。新卒でもすごい人だと1年目から700万円なんてざらにありますね。僕の親友のエンジニアも、新卒で700万円の年収をもらっていますが、もともと大学生時代にプログラミングスクールにいって、受託開発をしたりサービスを作って市場価値を上げた結果、高い年収で就職できていました。新卒採用でも、エンジニアは唯一「完全実力主義」なので、今のうちから実力をつけておくのは非常によい考えだと思います。ちなみに他社の例だと、優秀な学生エンジニアの待遇はこんな感じです。
マイクロソフト | 700万円 ~ |
サイバーエージェント | 720万円 ~ |
メルカリ | 500万円 ~ |
大学生の今だからこそプログラミングを学ぶべき!社会人になってからでは不利になる!
大学生からプログラミングを学ぶのと、社会人からプログラミングを学ぶのでは、相当レベルが違います。大学生からなら相当イージーモードですが、社会人だとかなり無理ゲーになってきます。下の図がわかりやすいかと思います。
この図をツイートをしたところ、
やはり社会人で転職活動をされている方からもリプライがこのように来ました。
もちろん社会人でできないことはないですが、やるならなるはやで大学生のうちからやっておくべきですね。
どうやったら新卒で初任給の高いエンジニアになれるのか
ということで、じゃあどうやったら新卒で初任給の高いエンジニアになれるのでしょうか。まとめてみます。
①【1週間】作りたいものを決める
まず、何を作りたいのか決めましょう。これが結構大事です。作りたいものがないと、学習を放棄しがちなので、まず最終的に何を作りたいのか決めましょう。
さて、創りたいものが何かなんていきなり言われてもなかなか出てこないかと思います。個人的にはWebアプリを開発するなら、Ruby on Railsでアプリを作成してしまうのがとてもおすすめです。もしPythonで何かしらのアプリを作成したいのであれば、こちらの記事が参考になるかと思います。
> 【保存版】今話題のPythonで何ができるのか、プログラミング未経験者でもわかるようにまとめてみた
こういう記事を見ても理解できなければ、まずはほかのWebサービスのマネから始めてもよいでしょう。ちなみに僕は学生時代は、卒論で出会える出会い系サイトが急に作りたくなり、出会い系サイトをRuby on Railsで作成しました。
②【1週間】何を学んだらそのアプリが創れるのか、メンターに聞く
創りたいものがきまったら、次に何を学んだらそのアプリが創れるのかを確認してみましょう。もしネットで検索した結果見つかったりすればよいのですが、もし周りにプログラミングのメンターがいなければ、プログラミングスクールの無料カウンセリングを使ってみる手もありです。最初のカウンセリングで、「こういうアプリを作りたいのですが、何を学んだらできますか?」といろいろなスクールに聞いてみるとよいと思います。そうすれば大体何を学べばできるかわかると思います。
カウンセリングを実施しているWebで有名なプログラミングスクールは、下に書いておいたので、Webページで詳細を見てみてください。
- Tech Boost : エンジニアのキャリア形成にも強いプログラミングスクール
- Tech Academy: 様々なコースが用意されているプログラミングスクール
③【3週間】プログラミングの基礎を固める
さて、何を学ぶかが分かったら、さっそくプログラミングの基礎の勉強を始めましょう。まず、基礎に関してはProgate一択でよいと思います。これは絶対有料課金すべきですね。下手に初心者向けの技術書何個も買うより、月額980円なので、「2カ月で学びきる覚悟で980円 x 2カ月で全力で学ぶ」と決めてやったほうがモチベーション的にも金銭的にもよいと思います。しかもコンテンツの質が世界最高峰です。基礎コースと道場コースができれば十分だと思います。
ちなみに、この段階で人に聞いてプログラミングスクールに入りたい!って方もいらっしゃるかと思いますが、やめておいたほうがいいです。Progateで勉強して、理解できないのであればプログラミングの才能がありません。才能がないというのは、こういうエラーが起こって苦しい時になんとか自分で解決できる力がないと、今後もっと大変なエラーが出たときに間違いなく積む可能性が高いからです。また、この段階で高額なプログラミングスクールに行っても、結局やっていることは家でやっていることと変わらない簡単な内容になってしまうので、このプログラミングの基礎を固め終わってからプログラミングスクールは検討したほうがよいです。
実際にスクールに行った方も、このようにおっしゃっています。
④【2カ月】チュートリアルを見ながらまずはクローンアプリを実装する
Progateで基礎がわかってきたら、今度は自分で実装してみましょう。すでに存在するアプリのコピーなのであれば、それどおりやってみるのがよいと思います。
ここまではおそらく順調に学習が進んできたと思うのですが、ここからが本当に大変です。最初はめっちゃくちゃエラーが出て、1日中エラーを直して一日が終わります!マジで!
で、最初はエラーが出たときの糸口が全く分からないので、相当テンションが落ちると思います。そういう意味でも、アプリ開発のフェーズではメンターがいたほうがよいです。近くに親切なプログラマーがいたら彼にお願いし、もしいなければプログラミングスクールにこの段階で入ってしまうのもよいかもしれません。
プログラミングスクールとしてお勧めなのも、先ほどご紹介した下記スクールです。
- Tech Boost : エンジニアのキャリア形成にも強いプログラミングスクール
- Tech Academy: 様々なコースが用意されているプログラミングスクール
⑤【2カ月】プログラミング学習スクールへ行って、自分のサービスを作り、Qiitaやツイッターで発信する
さて、チュートリアルをもとにある程度プロダクトを創る流れを理解できたら、今度は自分でオリジナルのアプリケーションを作ってみましょう。この場合も、もし可能であればプログラミングスクールに行ったほうがよいです。というのも、プログラミングのきれいなコードを書けるようにしておく必要があるからです。独学で勉強してると、コードが汚かったり、本当はもっと楽にできたりすることがたくさんあったり、実際にチーム開発するうえでの約束事を学べなかったりします。ここが新卒入社の前にちゃんとわかると、非常によいと思います。
さて、プログラミングスクールにもいき、かなり実力もついてきたかと思います。あとは自分のことをPRできるように、Qiitaやブログ、ツイッターで発信しているとよいでしょう。今後採用してもらうときに、面接に行かずともどれくらいの能力があるのか、またやる気がある人材なのかをアピールできるかと思います。また、自分の技術記事をブログにまとめておくと、知識の整理になるので非常によいですね。また、技術記事をツイッターで発信していると、仕事につながったりします。特に学生のエンジニアインターンの需要は非常に大きく、またツイッター上で仕事が決まったりすることも多々あります。人によっては、ツイッターで新卒採用が終わってしまう人もいます。
プログラミングスクールとしてお勧めなのも、先ほどご紹介した下記スクールです。
- Tech Boost : エンジニアのキャリア形成にも強いプログラミングスクール
- Tech Academy: 様々なコースが用意されているプログラミングスクール
⑥エンジニアインターンの採用面接を受ける
ここまでくれば、自分のプロダクトがあって、かつクラウドソーシングの実績もあると思うので、エンジニアインターンで合格する可能性は非常に大きいと思います。Wantedlyなどを見てみたりしてみるとよいかもしれません。あそこは学生のエンジニアインターンを募集していることが多いです。また、スタートアップであればプログラミング未経験者でも募集していることがあります。ツイッターやWantedlyでかたっぱしから声をかけていくとよいでしょう。
⑦エンジニアインターンで大規模開発を経験する
エンジニアインターンの採用で見事合格すると、普通にエンジニアとして採用されると思います。そこで、ぜひチームで開発する経験をしてみましょう。ここでの経験は、普通に社会人がエンジニア転職のために必要な要件の中で求められているものを満たす経験をすることができます。コードレビューなどをしてもらいながら、市場価値を上げ、お給料をもらいましょう。ここまでくれば大学生でも上位10%の市場価値になっているかと思います。
⑧新卒でエンジニア採用をうける
もうここまでくれば、実績さえあれば、あとは人脈と採用活動すれば内定できるほど十分な能力は持っているかと思います。あとは技術者採用をしている企業等をみてみるとよいでしょう。ビズリーチ・キャンパスなどを使って、大企業の開発者などとコネクションをつくっておくと、あとあと思いもしないつながりがあるかもしれません。あとはニクリーチを使うと、人事の方とお肉を一緒に食べることで、打ち解けた雰囲気で、企業研究をすることができます。その中で、エンジニアの人とコネクションを作っておいたりすると、今後の就活が有利になるかもしれないですね。
まとめ
というわけで、新卒で市場価値の高いプログラマーになるための最短ルートを考えてみました。プログラミングスクールに行かずとも、一応頑張れば給料の高いエンジニアになることはできるかと思いますが、それではどうしても時間がかかるので、いま自分が大学生だったら、プログラミングスクールで時間を買って学ぶと思います。
どう学ぶかは自分に一番フィットする形でやるのがよいと思いますので、いろいろ試してみてくださいね!
参考:紹介したプログラミングスクール
- Tech Boost : エンジニアのキャリア形成にも強いプログラミングスクール
- Tech Academy : 様々なコースが用意されているプログラミングスクール