Contents
自分のエンジニアとしてのスペック
都内の大学に一浪して入った普通の大学生。専門は経済学。学校では一切プログラミングを学ばず、大学2年の夏休みから趣味でプログラミングを始める。帰国子女なので英語はまあまあできた。数学もちょっとできた。
そんな自分でもメガベンチャーにエンジニアとして内定を貰えたので、どういう成長曲線を描いていったのかを思い出せる範囲でリアルに書きたいと思います。
これからエンジニアを目指す開発経験の少ない大学生の参考になれたら嬉しいです。
大学2年の6月まで ろくに講義にも行かずサークルと飲みばかりの大学生
大学2年生の6月まではプログラミングのプの字も知らない状態でした。
言葉は聞いたことあるけど自分とは縁のない世界。文系の自分がエンジニアになってコードを書くことはないのだろうと思っていました。
その頃の生活と言えば、授業のコマ数も少なかったという理由で大学に行くのは週2日。他の日渋谷をブラブラするか夕方までずっと寝ているような生活でした。
大学に行く2日はサークルのある曜日なので、サークルのために大学に来て、ついでにちょっと講義を受けて、夜は連日の飲み会というのが鉄板コース。
サークルも複数所属していたので、ちょこちょこと顔を出してだべって、バイトもせずに親の臑を嚙る、そんな普通、いや普通未満の大学生でした。
経済学部だし就職も金融系か商社に行くのかなーなどとぼんやり考えていました。
流石にこんなんじゃいかんと思って、少しだけ意識が高くなって5月からライターのインターンをするも、飽きてきてつまんないな、と思っていた時期でした。
大学2年の7月 鳥貴族の飲み会で友人の一言に背中を押される
「プログラミングを始めたきっかけは何ですか?」
この質問は本選考の面接でほぼ必ず聞かれたことでした。1次面接で聞かれ他のに2次面接でも聞かれた、ということもありました。
本当の答えは「なんとなく」です。就活の面接では、カッコつけた動機を話していましたが、きっかけなんて皆んなそんなもんだと思うのです。
もっと具体的にいうと、それは友達との飲み会でした。
「なんか美味しい金儲けないのかなー」
「ITだったら結構儲かりそうだな」
「でも俺プログラミングできないから無理かなー」
「そうだよなー。最近は無料でプログラミングを学べるサイトも流行ってるらしいぜ」
渋谷の鳥貴族での友達の一言がきっかけで興味を持ち、Progateというサービスがあることを教えてもらいました。
最初はhtmlとCSSから始めろとの教えに従い、自分が最初にうったコードはHello Worldではなく
「<h1>こんにちは</h1>」でした。
こうして周囲に遅れを取ること数年、自分のエンジニア人生が始まりました。7月いっぱいでhtmlの基本的な文法を覚え、調べながらであれば、簡単なフロントのコードをうてるようになりました。
当時はブラウザにコードが表示されるのがただ単純に楽しくてやっていました。
大学2年の8月から9月 いきなり競技プログラミングにハマる
プログラミングを本格的に学びたくても、当時の金欠だった私にはスクールに通う選択肢はありませんした。
無料で学べるサービスをと色々探しているうちにpaizaというサービスに出会いました。
プログラミングの問題に解けば企業からスカウトが来るらしい。小さい頃プロ野球のスカウトになりたいと思っていた私には、スカウトという言葉に惹かれるものがありました。そんな単純な思考で競技プログラミングを始めました。
色々調べた結果一番挫折しにくそうな言語ということでRubyを選び、変数や標準出力という超超初歩的なところから学習をしていきました。まずは書きやすい言語からやるというのは独学では鉄則だと思います。
そんなど素人の私でも夏休みに朝から晩までコードを書いているうちにメキメキと実力をつけ、8月が終わる頃にはpaizaでCランク(ランクはSからEの6段階)に上がっていました。
9月は免許合宿の空いた時間に部屋にこもってpaizaの問題を解き続け、合宿が終わる頃にはBランクまで上がっていました。
遊びの誘惑がない合宿がこの時期にあったのは、今振り返るとラッキーでしたね。
色々調べていくうちに、これは結構早いペースだということに気づき「自分はプログラミングに向いているのだ」ということをなんとなく実感していました。
大学2年の10月から12月 Ruby on Railsができずに絶望
10月もpaizaで問題を説き続け、下旬にはAランクまで上がることができました。Aランクをとったその2日後にはなんとSランクに到達。
大学生のうちにSランクになれたらいいなと思ってましたが3ヶ月の勉強で到達してしまって拍子抜けでした。インターンのスカウトもちょこちょこ来るようになったのもこの時期です。
大半はろくにプロフィールも読まない一斉送信スカウトなのですが、プログラミング歴3ヶ月でもスカウトが来た、ということにテンションが急激に上がっていきました。
気を良くした私は
「俺って天才かも? RubyができればRuby on Railsもできるっしょ!」
と楽観的に考え、Webアプリケーションを作れたらいいな、なんて妄想を広げていました。
しかしProgateをいくらやってもRuby on Railsが全く頭にはいりません。結局3周しかしましたが、勝手に色々なコードが生成されて、よくわからないことが裏側で起きていることが気持ち悪くてたまりませんでした。
今の自分ならフレームワークならそんなもんでしょと割り切れるのですが、細かいことを気にしすぎて理解が進みませんでした。
また、指定されたコードを書こうと必死になりすぎて、自分でコードの適当なところをいじる余裕がなかったこと、知識をまとめることで満足して書く量が圧倒的に足りなかったのも挫折した原因だと思っています。
プログラミングはしっかりと環境構築をした上で、遊び心を持ってやらなければいけないということを学びました。
他方でpaizaの問題を時尽くした私は競技プログラミングの大会を主催するAtcoderの存在を知り、のめり込んでいったのです。
大学2年の1月から3月 競技プログラミングで挫折を味わう
大学に行かなかったつけが回って来て、試験期間に地獄の勉強。それが終わればバイトとサークルの合宿でプログラミングをする時間がほとんどとれませんでした。
Atcoderでも緑の上あたりをうろちょろして、限界を感じ始めました。自分の解けるレベルの問題ばかりを解いていて、ギリギリ解けるかどうかのレベルを避けていたことが原因だと感じます。
レートは全然上がらないし、自分が2時間かけてわからない問題を15分でクリアする人が何十人といる。プログラミングを始めたばかりで演習量が圧倒的に不足していることを棚にあげ、自分にはもう無理だと諦めていました。
正しい勉強方法と情報を与えてくれる人が身近にいたら少しは変わっていたのかもしれません。その反省を生かし、今はエンジニアリングに関して気軽に相談できる人を作るようにしています。
それと同時に競技プログラミングばかりやっても、就活には結びつかないかも、という思いが生まれ、興味はアプリ開発の方向へ移っていったのでした。
続きはこちら
メガベンチャーに内定したので就活でやったことを振り返る 中