【新卒年収500万】大学生のプログラミング独学の勉強法を教えます。エンジニアになるにはこれをしろ!!
こんにちは!
現役Webエンジニアの今井(@ima_maru)です。
今回は、大学生向けのプログラミングの独学方法を書こうと思います。
情報系大学でプログラミングを学ぶ方はもちろん、文系やプログラミングを学ぶ授業がない大学生の方でもできる独学方法です。
簡単に私の自己紹介をしますと、以下の通りです。
- 2018年に理系大学に入学
- 大学1年生の授業でC言語に触れる(Progateレベル)
- 独学でゆるく勉強
- 大学3年生の春から本腰を入れてWebアプリ開発を勉強し始める
- 大学3年生の秋に初めての内定(東証一部クラウド系自社開発企業)
- 大学3年生の冬にサーバサイドエンジニア(年収500万円提示)として内定
- 内定承諾をして就活終了
勉強方法としては、何か作りたいものを決め、それに必要な知識や技術を学んでいくという方法を取りました。
振り返ってみると、「もっと近道もできたんだろうな」など思いますが、ゆるく勉強し続けたことが挫折しなかった秘訣とも取れるのではないかなと思っています。
- 短期間に頑張りすぎない!
- 基礎をおろそかにしない。はじめは基礎から!
- できれば毎日、少しでも良いのでコードを書く癖をつける!
- 慣れてきたらライブラリやフレームワークを使って成果物を作る!
- 就活を見据えて、インターンやアルバイトに行く!
比較的簡単にできる勉強方法なので、ぜひ参考にしてみてください。
大学生のプログラミング学習のロードマップ
ここでは、大学生が学生期間を使ってプログラマーやエンジニアを目指すための勉強方法を紹介します。
以下にこれから紹介するステップをまとめました。
まずは、プログラミングに触れて興味を持つことからでしょう。
Progateやドットインストールなどを使ってプログラミング言語に触れるところから。
一つのプログラミング言語を自由に扱えるようになりましょう。
何の言語でも大丈夫です。
次は、ライブラリやフレームワークなどを学ぶとよいでしょう。
ライブラリは「便利ツール」で、フレームワークは「開発キット」のようなものです。
プログラミングに慣れてきたら、何か形になるものを作ってみましょう。
ここが大きな挫折ポイントになります。
学生の特権として、「インターン」や「アルバイト」があります。
インターンは有給と無給がありますが、どちらでもいいです。
重要なのは、実際に使われている技術を学べるかどうかです。
勉強お疲れ様です。ここまでくれば、就活はイージーゲーム。
面接では、これまで学んできたこと、作ってきたもの、経験したことなどを話しましょう。
それぞれ詳しく見ていきましょう。
STEP.1 プログラミングに興味を持つ
まずは、プログラミングに興味を持つことからでしょう。
情報系の大学では、1年生の春学期からプログラミングの授業が始まります。大学でプログラミングの授業がない方は、無料の学習サイト「Progate」で十分な学習ができます。
最初のプログラミング言語は何でも大丈夫です。ここでは、少しでも「プログラミングに興味を持つこと」が重要です。私の場合は、
「どんなものが作れるんだろう?」
「どのくらい稼げるのかな?」
「どのくらい勉強すればお仕事に使えるぐらいになるんだろう?」
などでしたね。こんな風に、プログラミングに対しての興味、いろんな疑問を持つことが大切です。興味のないことを勉強するのは相当難しいからです。
これからの勉強のモチベーションになるような前向きな感情が生まれれば、STEP.1クリアです。
STEP.2 プログラミング言語を自由に扱えるようにする
次に、プログラミング言語を自由に扱えるようになりましょう。
「自由に扱う」というのは、四則演算や入出力、場合分けの処理や繰り返しの処理など、プログラミングの基礎中の基礎をしっかりとできるようになるということです。
これからさらに応用的なことを勉強するうえで、基礎がしっかりしていないと挫折する可能性が大きく高まるので気を付けましょう。
このプログラミングの基礎力は、時間をかければおのずと身についていきます。毎日少しでもいいのでプログラミングに触れ、知らないことにチャレンジしていきましょう。
私がやっていたのは、「Paiza」「AtCoder」というサイトです。
本当に「Paiza」はオススメです。パズルを解く感覚でプログラミングを学べます。「AtCoder」は少し難しめの問題を解きたい方にオススメ。
選ぶべきプログラミング言語については、最初に学んだプログラミング言語でも良いですが、「何を作りたいか?」「どんなエンジニアになりたいか?」を先読みして、それに適した言語を選ぶのも良いかと思います。
Googleで「Webアプリ プログラミング言語」等で検索すれば出てきますからね。当ブログでも紹介しているので、ぜひ参考にしてください。
基礎がしっかりとできるようになると、その先いろいろ楽しいことが待ってます。
急がずじっくりと詰めていきましょう。
STEP.3 ライブラリ・フレームワーク・開発ツールなどを学ぶ
次は、ライブラリやフレームワーク、開発ツールなどを学ぶとよいでしょう。ライブラリは「便利ツール」で、フレームワークは「開発キット」のようなものです。
どちらもプログラミングをするうえで欠かせない存在です。
学ぶのは、自分が作ってみたいものが作れるライブラリやフレームワーク等にしましょう。
例えば、Pythonだったら以下の有名なものが挙げられます。(ほかにもいっぱいあります)
- Django:多機能Web用フレームワーク
- Flask:軽量Web用フレームワーク
- TensorFlow:機械学習用フレームワーク
- Numpy:数値計算用ライブラリ
こういった情報もGoogleで「Python Webアプリ フレームワーク」等で検索すれば出てきます。
ライブラリ・フレームワーク・開発ツール等の存在を知ると、一気に見え方が変わります。プログラミングに最初触れたとき、
「どんなものが作れるんだろう?」
「どういう風に作るんだろう?」
という疑問が解けていきます。これらのライブラリやフレームワーク等の勉強を始めると同時か少し後に、STEP.4に進みましょう。
STEP.4 作りたいものを作ってみる
次は、STEP.3で学んだライブラリやフレームワーク、開発ツールを用いて、自分の作りたいものを作ってみましょう。
例えば、以下のようなものが挙げられます。
- Webアプリケーション
- スマホアプリ(iPhone/Android)
- Windowsソフトウェア
- AI(画像認識/自然言語処理/データ分析/ゲーム)
- 2D/3D/VRゲーム
- ロボット制御/組み込み/IoT
この中で興味があるものがなければ、プログラミングで作れるものをいろいろ調べてみるとよいでしょう。
実は、このステップがプログラミング独学においての大きな挫折ポイントです。挫折しないためのポイントをまとめておきます。
- 作るものは「難しすぎない」かつ「自分が作りたいもの」にする!
- 毎日コツコツ取り組む!(1日10分でもOK)
- 頑張りすぎない!
1日10分コードを書くだけでも全然変わりますので、騙されたと思ってやってみてください。
1日に何時間もやる必要はありませんから、少しずつ、できれば毎日コツコツと。
最低2つ以上は成果物を残せるといいですね。
STEP.5 プログラミングのインターンやアルバイトに行く
STEP.4がクリアできれば、プログラミング初心者は卒業できているはずです。
ちなみに情報系大学生でも、就職前まで何かを作ったことがあるという方は多くありません。大きな成長を遂げたと思ってよいでしょう。
次は、プログラミング系のインターンやアルバイトに参加して、業務に近い経験をしましょう。
良質なインターンは倍率も高いため、STEP.4で作った成果物が活きてきます。
成果物の内容や苦労した点などを書いたハイレベルなエントリーシートで書類選考を突破しましょう。
ここで、プログラミング系のインターンやアルバイトに行くメリットについて考えてみましょう。
インターンやアルバイトに行くメリット①:非常に良い経験になる
1つ目のメリットは、インターンやアルバイトが非常に良い経験になるということです。
チーム開発を経験できたり、実務で使われている技術や開発手法などに触れることができます。
ただ、成長をしたいのであれば、注意しないといけないことがあります。
それは、「実際に体験できるか」ということです。
例えば、1dayのみで、ただ企業説明を受けて終わるというのは、成長という観点からみるとあまり意味がないです。
実際に手を動かし体験できるところを選びましょう。
インターンやアルバイトに行くメリット②:就職につながる
2つ目のメリットは、インターンやアルバイトから就職につながるということです。
インターン終了後にそのまま最終面接までスキップというところも多くあります。
アルバイトでも、採用に有利に働くことが多いでしょう。
大学生の特権として、「インターン」や「アルバイト」を積極的に活用しましょう。
STEP.6 ここまでくれば就活は簡単
早ければ大学3年生のうちに内定が決まっていると思います。決まっていなくても大丈夫です。そもそも多くの人は、大学4年生からが本格的な就職活動ですから。
エンジニア就活で面接官にみられる大きな部分は、「自ら学び続ける姿勢」です。
そして、この勉強方法を実践した方は「自らプログラミング学び、何かを作ったという実績・経験」があります。
勉強してきたことを振り返り、しっかりと企業を分析したうえで面接に挑みましょう。
特にこだわりがなければ、「レバテックルーキー」というITエンジニア専門の就活エージェントがめちゃくちゃいいので使ってみてください。
\ カウンセリング~内定まで"全て無料"! /
私もここで最終内定先を紹介してもらいました。
文系大学生でもプログラミング独学は可能?
文系大学生でもプログラミング独学は可能なのでしょうか?
結論から言えば「十分に可能」です。
実際に文系出身のエンジニアは少なくない
実際に文系出身でエンジニアになっている方が多くいます。(日本は特殊みたいです。)
プログラミングのインターンで多くの文系大学生に合いました。中には非常に高いスキルを持った方もいましたよ。
結局は「エンジニアに必要な知識やスキルがあるかどうか」「または素質があるかどうか」ということなわけで、大学で何を学んだかではないということです。
プログラミングの基礎学習はオンライン学習サービスで独学可能
情報系大学ではプログラミングの基礎についての授業があります。(理系でも多いと思います)
ただ、実務レベルで技術力が付くわけではなく基礎しかやらないので、大した差ではありません。
文系大学生でも、「Progate」といったオンライン学習サービスを使えば、十分に独学が可能です。
コンピューターサイエンスは書籍やオンライン学習サービスで独学可能
理系・情報系大学と文系大学の差は、「コンピュータサイエンス」を本格的に学べるかどうかです。
計算機科学(けいさんきかがく、英: computer science、コンピュータ科学)とは、情報と計算の理論的基礎、及びそのコンピュータ上への実装と応用に関する研究分野である。
Wikipedia
要は「ネットワーク」「セキュリティ」「コンピュータの仕組み」などのIT知識のことだと思ってもらって構いません。
ただ、すべてのコンピューターサイエンスの知識がエンジニアの業務に活きてくるわけではないので、自分のなりたいエンジニアに関連する知識があれば十分です。
コンピューターサイエンスについても、書籍やインターネットの情報で十分独学可能ですし、「Recursion」といったオンライン学習サービスも活用できます。
大学生のプログラミング独学におすすめの学習サイト
ここで、プログラミングを独学するうえで便利なサイトを紹介します。
- Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート] (prog-8.com)
- ドットインストール | 3分動画でマスターできるプログラミング学習サービス (dotinstall.com)
- Udemy | オンラインコース - いろんなことを、あなたのペースで
- Paiza | ITエンジニア向け転職・就活・学習サービス
- Recursion | コンピュータサイエンスを基礎から学べるプラットフォーム (recursionist.io)
- teratail【テラテイル】|ITエンジニア特化型Q&Aサイト
- スタック・オーバーフロー (stackoverflow.com)
- Twitter | Our company and priorities
- AtCoder | 競技プログラミングコンテストを開催する国内最大のサイト
- Kaggle | 機械学習とデーターサイエンスのコンテスト
- SECCON | 日本国内最大級のCTF
基礎学習はProgateとPaizaで十分!応用的な部分はUdemyや書籍などを用いて独学をすると良いでしょう。
大学生のエンジニア就活やインターンに使えるサイトやサービス
エンジニア就活やインターンに使えるサービスをまとめました。
私はPaizaでインターンを探し、レバテックルーキーで最終的な就職先を決めました。
【完全解説】大学生におすすめのプログラミング独学方法!|まとめ
上の勉強法をこなすことは、そこまで難しいことじゃないです。
言ってしまえば、長い期間をかけ、毎日少しづつ勉強していればできます。
だからこそ、大学生にピッタリの勉強法なのです。
サボりたいときはサボってもいいし、めちゃくちゃ楽しいなら一日中のめりこんでもいい。
わからないところにハマったらteratailやTwitterなんかで質問すればいいんです。
そんな風に気軽に考えて過ごしてても、ちゃんとコツコツやっていれば、案外成長してるもんですよ。
これからプログラミングの勉強本気で始めるという方、応援しています。
最後までご覧いただきありがとうございます。