Contents
短期間で人気企業のエンジニアになれるか
エンジニアが大切にされ、モダンな技術を使い、有名なサービスを作っていて、福利厚生もしっかりしている、そんな人気企業に、全くの未経験者が内定することはほぼ不可能です。
ここでいう未経験とは「実務はおろかプログラミングを全くしたことがない人」を指しています。
たとえ半年くらい必死に勉強したところで「難しい」という結論には変わりありません。
しかし短い期間でも効率的に勉強をして一定の成果を出せば、内定が出る可能性は十分にあります。
今回はプログラミング未経験の大学生が、半年の期間を経てWeb系のエンジニアになる戦略を具体的に述べていきたいと思います。
戦略の概要
どこに目標をおくか
限られた時間でどのような状態に達していれば良いのでしょうか。高い技術力を見せられればそれに越したことはありませんが、半年で技術力をアピールできるレベルに達するのはほぼ不可能です。
- 物作りへの姿勢や考え方が優れている
- 熱意があり、入社後の著しい成長が予想できる
- チーム開発に支障が無いコミュニケーション力がある
この3つを面接官にアピールできるのが最低ラインです。
上の3つが達成できれば就活で内定がもらえる、というわけではありません。会社との相性も非常に重要視されるので、運が良ければ内定が出るかもしれないという感覚です。
具体的に何をするか
何よりも大切なのは「一定レベルの成果物を作る」ことです。成果物というのは正しく動くスマホアプリやWebアプリのことです。
一定程度の需要が見込め、しっかりと動くアプリを見せることで
- 最低限のデバッグ能力はある
- ゼロからものを作る熱意はある
- あとは調べながら勝手に成長できる
という能力をアピールすることができます。
色々面接を受けて分かったけど、今は開発エンジニア志望が多くて未経験のハードルが爆上げしてる
ある程度の成果物がないと未経験ではムリ— メトロ@あたおかエンジニア (@metro_pg) April 3, 2020
逆にあまりオススメしない戦略は以下のようなものです。
- 競技プログラミングにハマる
- いきなりC言語など難しい言語から入る
- 分厚い本で理論を学んで成果物を作らない
これらはエンジニアの基礎力を作るのにとても大事なことなので、興味があれば勉強の合間にやるのはプラスだと考えますが、短期間での就職という観点から見るとあまり有効ではありません。
Webアプリを作るかスマホアプリを作るかはなかなか難しいところです。
スマホアプリは
- Webより求人は少なく需要の面では劣る
- 作っている学生が少ないので差別化できる
- 覚える内容、言語はWebより少ない
- 高度な内容は日本語の資料が少ない
- 言語の仕様はWebより難しい
と行った特徴があります。Webアプリはこの逆の特徴を持っているといえるでしょう。
個人的にはWebアプリよりもモバイルアプリの方が、成果物を作るうえではオススメだと感じています。
- 就活では具体的な技術よりもポテンシャルを見るので求人の量はあまり関係ない
- モバイルアプリでも簡単な内容なら日本語の資料は見つかる
- サンプルアプリを作るまではとても簡単でモチベーションを保てる
というのが主な理由です。(ポテンシャルの見られない企業はそもそも無理ゲーです。)
iPhoneかAndroidのどちらかになりますが、最近ではiOSエンジニアよりもAndroidエンジニアの方が圧倒的に不足しているという話をよく聞きます。
ただ、Androidはエンジニアが少ない分、情報が探しにくいというデメリットもあります。基本的には自分の持っている機種に合わせると良いでしょう。(Androidなら割と安く購入が可能なことも)
1ヶ月目 プログラミングの基礎を徹底的に叩き込む
iOSアプリ開発なら言語はSwiftだけ押さえておけば一旦は大丈夫です。
ProgateとドットインストールでSwiftの基本的な文法を押さえましょう。
何れにしても手を動かすことが非常に大事です。ただ動画を眺めてわかった気になっても一瞬で忘れてしまいます。
最初はオンライン上のエディタで構わないので、Swiftを書いて書いて書きまくりましょう。特にオブジェクト志向は深く理解しておかないと後々大変です。
もし飽きてしまう場合は、paizaのスキルチェック問題に挑戦して、データ構造や配列について学んでも良いでしょう。
また、IT業界の実情や流行を掴んだり、初心者同士で繋がるためにTwitterを始めることをオススメします。エンジニアの日常のツイートを見れば、勉強のモチベーションが上がる効果も期待できます。
2ヶ月目 環境を構築してアプリ開発の流れを掴む
1ヶ月目をクリアしてある程度の覚悟ができたらmacのパソコンをゲットしましょう。
結構値段は高いですが、Web系の企業ではmacを使うことが多いので早いうちに慣れておく必要があります。
メモリはひとまず4Gあれば大丈夫でしょう。OSを最新にして、Xcodeをインストールすれば環境構築は完了です。
使い方を覚えるために、Udemyや初心者向けの本がオススメです。人がコードを書くところを中々見られない場合は、どこかの段階で動画による学習は必須だと考えます。
また、パソコンを入手した段階でgitの使い方も覚えておきましょう。初心者はかなり大変だと思いますが、手を動かしてコマンドを打つことが大事です。
3ヶ月目 ひたすらに知識を蓄え、オリジナルアプリを作る
流れを掴んだらとにかく、やれることを増やしましょう。ここで知識を蓄えることでアプリ開発の選択肢が劇的に広がります。
カメラを使う、APIを叩く、画像を加工する、データを保存する、地図を使う、SNSと連携する、タイマーを使うなど興味のあるところに挑戦しましょう。
自分はこちらの逆引きSwiftを参考にして、ひたすらサンプルのアプリを作りまくりました。
だんだん出来ることが増えたら、真似だけでなくオリジナルなアプリを一つ作ります。データ通信を伴わない範囲でも、1週間あればユニークなアプリを作ることは可能です。
自分はサークルで使う記録用アプリを作っていました。何かのデータをアプリ内に保存するというのは典型的なパターンですね。
完成したらアップルストアにリリース申請してみましょう。リリース作業も大変ですが流れを確認しておくことが大事です。もしリリースの審査が通ったら、モチベーションも爆上がりです。
4ヶ月目 FirebaseかAWSの使い方を覚える
中には「オリジナルアプリを1つ作成すれば就活も無双」なんていう人もいますが、そこまで甘い世界ではありません。そのくらいで内定するのであれば、プログラミング未経験でも内定は出ます。
Webアプリではサーバーとのデータ通信は当たり前のことです。ここを全く体験していないというのは就活で大きなマイナス評価になってしまいます。
手軽にデータ通信を行うにはAWSかFirebaseを使うことをオススメします。
Udemyの初心者向けの講座ではFirebaseを使っていることが多いので、そちらの方が馴染みやすいかもしれません。サンプルのアプリを作ると、できることと出来ないことがわかってくるはずです。
ここの段階まできたら、最終的に作りたい成果物をイメージしておきましょう。
5ヶ月目 成果物を完成させる
就職活動でアピールするための最終的な成果物を作ります。
- なぜそれを作ろうと思ったか
- 特に苦労したところ、工夫した部分はどこか
- 改良するとしたらどういう部分か
などの質問に答えることを意識することが大切です。開発をしながら気づいたことや苦労したことをまとめると面接で話しやすくなります。
ここで注意すべきは、必ずオーソドックスなものを作ることです。奇抜さは必要ありません。
ポートフォリオは発想力ではなく技術力を見せる手段なので、あまり使われない書き方や構造をしているとアピールの効果が薄れてしまいます。
サロンの方で「ポートフォリオのオリジナリティは転職の際に評価されるでしょうか」というご質問を頂いたのですが、一般的なWeb系エンジニアの仕事において独創性は全く必要ないので、ポートフォリオは「面白いものを作る」のではなく「ありふれたものを高品質で作る」という方針が吉だと思います(^.^)
— 勝又健太 a.k.a. テック系Youtuber (@poly_soft) 2019年3月14日
余裕があればgitを使ってブランチを切って、コミットして、プルリクを作って、マージするという一連の流れを一人でもやっておきたいですね。
リリース作業の流れはわかっているはずなので、アップルストアにリリースします。
また自己分析をして就活の軸を固める作業はかなり大変なので、早めに始めておきましょう。
日本の新卒の就職活動においては、大抵の学生さんは「学生時代の具体的な成果物」が無いので面談で必死にアピールするしかないわけですが、エンジニアは「具体的な成果物を作ってから面接に挑める」という超絶有利なアドバンテージがあるわけなので、それを生かさないと勿体無いということですね(^.^)
— 勝又健太 a.k.a. テック系Youtuber (@poly_soft) 2018年8月22日
6ヶ月目 就職活動をする
就活の軸が固まったら、すぐにエントリーを始めましょう。
IT企業は通年採用をしているところも多く、基本的には早めにエントリーをする方が通過率は高くなります。
エントリーシートは他の業界と同じように「過去の挫折経験」「自分の長所や短所」「チームで何かに取り組んだ経験」などを聞かれます。すぐにはまとまらないので、前々から考えておきましょう。
面接が終わったら、忘れないうちに反省点をまとめ次に繋げます。お祈りメールも特に注意書きがない限りは落ちた理由を問い合わせて問題ありません。
就活のサービスに関しては以下の記事が参考になると思います。短期間で内定を得ることを考えればpaizaは結構使えます。
エンジニアの逆求人サービスを使い倒したので特徴を比較する 前編まとめ 余裕がある人がやること
半年という短い期間でも効率的にやれば、そこそこの就活強者になることは可能です。自分がやってきたことは、上の戦略と7割くらいは一致しています。
もしモバイルアプリでなくWebアプリを作るとしたら、html,CSS,JavaScriptを学んでRuby on Railsでアプリを開発してデプロイするという流れが一般的です。
しっかりと成果物を作ってもなお余裕がある人は
- チーム開発の経験を積む
- IT業界の常識と流行を抑える
- Qiitaに記事を投稿する
ことを強くオススメします。
チーム開発の経験がなくても、開発以外でチームとして取り組んだ経験が語れればそこまでマイナスにはなりません。
しかし、インターンやバイトでのチーム開発の経験は就活で大きな武器になります。
また、エンジニアなら誰でも知っていることを知らないと結構なマイナス評価につながります。
- Pythonって何に使われるの?
- JavaとJavaScriptってほぼ一緒でしょ?
- コンパイルってどういう意味?
- SQLって何ですか?
- ハードウェアとソフトウェアって何が違うの?
という状態では、採用する方も不安になってしまいます。
エラーの対処方法をググった時にわからない言葉が出てきたら即座に調べるだけでも、だいぶ違ってきます。
QIitaに一回でも記事を投稿した話をするとかなり就活でも受けが良かったですね。投稿自体は全然難しくないので、結構コスパがよくてオススメです。
メガベンチャーに内定したので就活でやったことを振り返る 上最近Qiitaとかエンジニアの情報発信が楽になった分、技術力や知識があまりなくても記事書いてればスーパーエンジニアっぽく見せられて羨ましい。
— りょう (@ryou_1990) 2018年12月21日