ヌッ

適当

新卒でwebエンジニアとして就職したい人向けの記事

しばらく新卒採用に関わっていていろんな学生に会っている。
自分の新卒の頃(4年前)と比べたりしてるのだが、すごい優秀だなーとか、同じようなところで悩んでそうだなとか勝手に思っている。
その上で学生氏には上手くやっていてほしいなという気持ちがありつつフィードバックしきれないシーンも多い。
大体学生のレベル感の傾向もわかってきたのでその辺をまとめてみる。

レベル解説

レベル1:授業、独学でプログラミングを学んだ級

ここがスタート地点。プログラミングの基礎は分かります、くらいの方。
正直このレベルだとweb系の開発インターンに受かるのは難しい……と思う。
自分がこのレベルの時(学部三年のとき)もなかなかインターンに受からなかった。
しいていえばスタートアップだと未経験歓迎で長期インターン(バイト)を受け付けてるとか、大手だと教育がしっかりしているので短期のインターンやってるとかはあるかもしれない。
とはいえ、web系のエンジニアになるなら、まずは小規模でもwebアプリの開発経験があったほうが良い。

レベル2:チュートリアルやった級

はじめの一歩として何らかのwebフレームワークのチュートリアルをやる、というのがある。
これは別にエンジニアの卵だけがやるものではなくて、エンジニアが新しい技術にふれるときは普通チュートリアルからやるものである。
チュートリアルの通りにやればひとまず形となるものは作れる。

どの言語やったほうが良いとかは特にない。
例えばruby on railsチュートリアルをやった経験があるならflaskとかlaravelのキャッチアップはさほど難しくないはずである。
ただしフロントエンドとサーバーサイドはそれぞれ経験があったほうが良いとは思う。
最近はフロントエンドもサーバーサイドもOSSとか改良されていて、着手するハードルもより下がっており、片方だけに専念する、というポジションはすくなっていくのではないか、とも思う。

レベル3:個人・チームで開発した級

チュートリアルの次のステップとしては別で一個アプリを開発する、というものである。
やり方としては以下がある。

  • 個人開発(一人)
    • すぐにはじめられる
    • ネタを考えるのが大変(勉強であれば実際なんかのパクリ、車輪の再発明でよい)
    • 人に頼れない
  • 個人開発(チーム)
    • 友達と楽しくできる
    • 一緒に開発できる友達が必要
  • ハッカソン
    • ネタを考えなくていい
    • メンターのサポートを得られる
    • ものによってはおカネがもらえる
    • ハッカソンに受かる必要がある

どれも一長一短(?)あるので好きなのからやっていくので良いと思う。
理想としては個人・チームの両方の開発経験があると良い。
個人でも開発できる自走力があり、チームでも開発できる協調性があるほうが評価として高くなるはず。
レベル3をクリアできるとある程度インターン・バイトに受かるようになる、はず。

レベル4:長期のインターン・バイト・個人開発してた級

レベル3との大きな違いは期間、規模である。
1,2週間の開発と比べ、数ヶ月になると不確実性の高い複雑なプロジェクトになる。
そのような経験があると評価はさらに高くなる。
ここまで来ると「(学生にしては)やるじゃん」となるはず。
無論これより技術的に強い人もいる。例えば幼少期から開発経験がある、受託開発してる、OSS貢献してる、などなど……。
そこらへんはキリが無いのだが、これ以降は志向性のほうを考えた方が良い。

レベル5:未来を見据えている級

ここに来て開発力と関係無い話題だが、なんだかんだこれが一番重要視される点である。
もう少し説明すると「将来やりたいこと」が割と定まっていて、面接受ける企業とあってるか、である。
仮にここがずれてそう、となると早期退職の可能性が高くなってしまうからだ。
例えばめちゃくちゃ技術力があって将来的にはゲーム作りたい、という人がSaaS企業に入ったとしたら。
おそらくやりたいことと違うわ、となってさっさと辞めてしまうだろう。
逆に言えば、そこまで技術力が無くてもやりたいことがマッチしているなら、やる気をもって社内でキャッチアップできるはず。
企業的にはやりたいことができて、長く働ける方がお互い幸せやろ、と考えている。
(踏み台にしても良いと言うところもあるが、長く働けそうな人のほうが当然優先度が高い)

過去の自分の話

自分の場合は高専から大学に編入して学部3年になったときに友人の影響でインターンを探し始めていた。
その頃はここでいうレベル1の状態である。wantedlyでいろいろ探すもなかなか受からない。
その中にCakePHP, MySQL, AWS EC2の勉強をしてくれば良いよという企業があった。
それを受けて独学でチュートリアルをやってみたり簡易的なアプリを作ったりしてみた。
これでレベル2,3程度である。
しかし編入直後は単位が足りずバイトに行くタイミングがとれない。
夏休みの期間だけいけないかと同じ企業に相談したところ、もうインターン受け付けてないですと言われ、その場は終わったのであった。
とはいえ独学で勉強した結果が認められ、別の企業の長期バイトに受かることができた。
ここで1年間働いた結果、ここでいうレベル4になった。
正直技術力が高いとはいえないがある程度の開発経験があるとは言える。
そのため修士1年ではもう少しレベルの高いインターンに受かるようになった。
しかし肝心の就活は志望動機周りが甘く落ちてしまうところがあった。
当時は自分の技術力に慢心していたり、データサイエンティストになるかちょっと迷ったりしていた。
ただ面接を通してやりたいことが定まってきて、最終的には一番マッチしそうなところにたどり着き内定を得た。

webエンジニアとデータサイエンティスト

注意点としてこの2つは求められる能力が変わってくる。(企業に寄る説は大いにあるが)
この記事は基本的にwebエンジニア向けなのでデータサイエンティストにはあまり適していない。
というのもデータサイエンティストはwebアプリ開発ではなく、あくまでやるのはデータ分析である。
ともすれば別にwebアプリ開発能力、経験はそこまで求められない。(あるにこしたことはないし、どちらもできる人は超有能だが……)
むしろ研究をちゃんとやって結果を出している方が重要視されると思う。
迷ってる人はこれら両方のインターンに参加してみるのが一番わかりやすいはず。

まとめ

  • 技術力についてはちょっとずつ経験積んでくしかない
  • 志向の方が割と重要
  • webエンジニアとデータサイエンティストは違う

最近はまた状況変わってきてるとは思うが基本的な戦法は同じような感じでいけるのではないだろうかと思う。
以上です。