【文系・未経験】プログラミングを始めて半年でGMOペパボに新卒入社するまで
はじめに
この記事では、プログラミング未経験の文系大学生だった僕が、半年間の勉強でGMOペパボ(以下、ペパボ)にエンジニアとして新卒入社するまでの事例をお話しします。
僕の友人も、今から紹介する手順でWeb系自社開発企業から内定をもらっていました。
文系出身のWebエンジニアをもっと増やすことで、業界を盛り上げていきたい!
想定する読者
- 文系大学生でWebエンジニアに興味がある方
- プログラミング未経験で、就活まで時間がないけど、どうしてもWebエンジニアになりたい方
- プログラミングを始めたけど、なかなか学習が進まない方
僕について
ディズニーまで電車で1時間かかる千葉県の田舎出身。
高校まで県内の学校に通い、都内国立大を受験するも、2次試験の数学で1問も解けずに見事不合格。
いわゆる「私文」として、大学4年目までプログラミングとは無縁の生活を過ごす。
エンジニアとの出会い
大学3年目の頃、周りがだんだんと就活モードになり、流されるように就活を始めたのですが、どの会社の話を聞いても、なにかこう、グッとくるものを感じませんでした。
「自分は視野が狭すぎるんじゃないか」
そう思い、大学を1年休学して、カナダのバンクーバーに留学しました。
留学先では、新型コロナウイルスの影響で学校の授業がほとんどオンライン、出会いの場であるバーなども通常営業ではありませんでした。
「刺激的な出会いが欲しい」
そこで、マッチングアプリをダウンロードして友達を探した結果、偶然出会ったのがWebエンジニアの方でした。
一緒に飲みに行ったり家に遊びに行ったりしているうちに、Webエンジニアの働きやすさと、自分で大きな価値を生み出せる可能性に魅了され、ついにグッとくるものを感じました。
半年間、何をしたのか
以下のような手順で内定まで突っ走りました。
1. 情報収集する
2. 学習を始める
3. 成果物を決める
4. 開発を始める
5. 就活対策する
1. 情報収集する
まずは、ひたすら情報収集しました。エンジニア 未経験 勉強
のようにテキトーにググって出てきたサイトとかYouTubeの動画とか漁ってました。
この時間、遠回りに思うかもしれませんが、個人的には大切でした。寄り道すると、周辺知識が自然と手に入りました。
が、時間をかけすぎるのは怖かったので、2週間以内で切り上げました。
2. 学習を始める
まず「プログラミングってどんなもんなの?楽しいの?」ってのを判断する時間が必要だと思い、手を動かし始めました。
とりあえずProgateでHTML, CSS, JavaScriptの講座をやります。
2週間弱で終わりました。
なんとなく理解して、楽しいと思ったら次に進みます。
つまんなかったらスパッとやめましょう。諦めも大事です。
これで楽しいと思ったのでJavaScriptのフレームワークであるReactを受講しました。
その後はバックエンドの言語を決めました。僕の場合はPythonで、フレームワークはDjangoを選びましたが、なんでもいいと思います。ただ、日本語の学習リソースの多さを考えるとRuby on Railsが良さそうな気がします。
SQLやGitの基本も勉強もしておくと、後で楽でした。
3. 成果物を決める
JavaScriptとReactがなんとなく理解できたら、成果物を決めました。
ゼロからオリジナルのアプリをつくるパターン
と、今あるアプリをパクるパターン
がありますが、できればゼロからオリジナルのアプリをつくるパターンがいいと思います。
前者の場合は、どんな課題を解決するのかを考えておくと、就活で話しやすくなります。
どうしても思いつかない場合は、後者でなんとかなるケースもあります。ただし、一部独自の機能をつくるなど、工夫があるといいです。
どちらにせよ、そのアプリをつくろうと思った理由を、自分の目標や経験と関連させると良さそうです。
僕の場合は、後者の今あるアプリをパクるパターン
としてTinderのクローンアプリをつくったのですが、人生を変えるような出会いを生み出す
という目標や、マッチングアプリでエンジニアに出会った経験に関連する成果物でした。
成果物は、どんな機能を盛り込むかまで決めました。
以下のような機能を盛り込んでいるWebアプリケーションが多い気がします。
* ユーザー登録機能
* ログイン・ログアウト機能
* コンテンツ追加機能
* コンテンツ更新機能
* コンテンツ削除機能
* コンテンツ表示機能
また、開発する機能の優先順位をつけました。
優先順位を決めないと、無限に終わりません。心が折れる音がします。
4. 開発を始める
成果物を決めて、機能に優先順位をつけたら、優先度の高い機能だけ開発を始めました。
とは言っても、急に開発するのは難しいので、3. 成果物を決める
で洗い出した機能の開発をカリキュラムに含む講座をUdemyで買います。
例えば、ログイン機能
が必要だったら、カリキュラムにログイン機能
と書いてある講座を買う、みたいな感じです。
React × <任意のWebアプリケーションフレームワーク>で○○をつくる
というように、フロントエンドとバックエンドの両方を扱う講座が参考になりました。
僕の場合はReact × DjangoでECサイトをつくる
というような講座を買いました。
英語ができる方であれば、YouTubeも参考になりました。
Sonny Sangnaさんの動画とかが参考になります。
YouTubeのvideoIDが不正です
講座を進めていくと、3. 成果物を決める
で洗い出した機能を講座の中でだんだんと扱っていくので、あとは講座の中で書いたコードをパクりながら、成果物に必要な機能をそれぞれ開発していきます。
インフラはherokuを使ってましたが、2022年12月12日現在は有料なので、無料がいい方はrender.comとかがいいと思います。
5. 就活対策する
必要な機能のうち、優先度の高い機能の開発が終わったら、就活対策を始めました。
最初のステップは、4. 開発を始める
でつくった成果物で選考にエントリーすることです。
「いきなり?」と思うかもしれませんが、提出してみないと自分の成果物が十分なレベルを満たしているのかわかりません。
とりあえず数社ほどエントリーしてみました。
そこそこ次の選考に進めるなら、成果物の開発は一旦十分です。
次は面接ですが、大体以下のようなことを聞かれる印象なので、答えられるようにしておきます。
* なぜこの成果物をつくったのか
* なぜこの技術を選んだのか
* 勉強する上で難しかったことは何か
* なぜエンジニアになりたいのか
* 企業選びの軸・志望理由
この中でも企業選びの軸・志望理由
は未経験エンジニアにとってポテンシャルをアピールするための重要な質問だと捉えていました。
なぜペパボを選んだのか
参考までに、僕の企業選びの軸・志望理由
と、なぜペパボを選んだのかを紹介します。
技術力があるか
エンジニアとして技術力を伸ばすには、当然会社が技術に力を入れている方がいいと考えました。
それを判断する基準として、会社にエンジニアの責任者がいるかどうかを見ました。
ペパボには、CTOとVPoEという2人もエンジニアの責任者がいました。
2人も!? これは間違いないでしょ!
って思いました。
自分の目標が、会社の方向性の延長にあるか
マッチングアプリでの経験から、人生を変えるような出会いを生み出す
という目標で就活していたところ、ペパボなら、表現者とユーザーの出会いを生み出せる
と考え、ペパボの成長に貢献することで、自分もその延長線上で目標に近づいていけると思いました。
まとめ
Webエンジニアの仲間入りをしてからの日々は学びの連続で、一言で表すとめちゃくちゃ楽しいです。
少しでも多くWebエンジニアの仲間が増えると嬉しいです!
Happy Hacking!
Discussion