学生がエンジニアで仕事をして知識を増やすこと

この記事は,はてなエンジニア Advent Calendar 2017の11日目の記事です.

前日はid:nanto_viさんによる通知機能って何を作ればいいの?でした.

概要

はてなにシステムプラットフォーム部のアルバイトとして入社して一ヶ月弱が経ちました.

エンジニアとしてアルバイトをするのはこれで2社目になりますが,いい機会なのでこれまで経験した「学生がエンジニアで仕事をして知識を増やすこと」についてまとめていきます.

働く前

大学に入学してからは色んな言語の機能に興味を持ち,特にScalaに対して調べるようになりました.

その後関数型方面の勉強会などに参加しつつ言語機能を理解していき,大学が落ち着いたらScalaで仕事したいと考えていました.

その頃は特に業種は何も考えていませんでした.

最初のアルバイト

そうしているうちに大学が落ち着いたので,Scalaを使う会社を探しエントリーし,初めてのエンジニアアルバイトが始まりました.

社内で使うWebアプリケーションの機能追加の仕事で,サーバサイドがScalaでした.

このときまでWebアプリケーションを作ったこともなく,大規模なプログラムを目にすることも初めてでした.

最初はやっていけるか心配になりましたが,品質の良いコードばかりだったため,すぐに理解してどんどん機能追加をすることができました

Webアプリケーションなので当然フロント側も追加する必要があり,Angularもこのときに覚えることができました.

また,一度プロジェクトの移動があり,使用するフレームワークの変更がありましたが,一度Webアプリケーションの構造を学んだことですぐに違いを理解することができ,時間も掛からず機能開発が行えました. それに加えフレームワークが変わっても共通な部分がよくわかるようになりました.

はてなのアルバイト

先月からはてなへ移りましたが,実は配属の希望をMackerelチームとしていました.

ところが「東京オフィスにはMackerelのエンジニアがほとんどいないため,システムプラットフォーム部で受け入れを考えています」との連絡が来て最初はビックリしました.

インフラの知識ははてなインターンで学んだ以上のことはあまりわからず,ミドルウェアについても触ったことのあるものは一部しかないため不安でした.

ところが面談時にそのことを伝えたら「インフラはみんな最初はわからないものだから」と言われ,確かに実際1人開発してるだけでは中々身につかない分野なので,良い機会だと思い頑張っていくことにしました.

現在は実際の業務と研修を半々で進めている状態で,業務内容の副産物としてAWSやMackerelの操作を覚えました.

研修内容としては今のところ,

  • A Tour of Goを進める
  • ISUCON4予選のスコアをどんどん上げていく

ということをやっています.

わからないことだらけで人に聞くことがかなりありますが,毎日タスクは進んでいる上,少しずつやれることが増えていくのを感じてとても楽しく仕事ができています.

これまでの経験から

学生はプロではない

自分を含め学生は,「エンジニアとしての強みが仕事になる」という意識のせいで「強みができるまでは仕事できる気がしない」と考えてしまう傾向があると思います.

ですが,上記のように働きながら知識を増やしたという例もあります.

エンジニアとしての強みをアルバイトで身につける事ができるのは学生の利点だと思います.

特に情報系の学生はコンピュータサイエンスの背景知識を持っているため,新しい知識をつけるのはかなり容易いと思います.

仕事は1人ではなくチームである

仕事をするということはチームで開発をするということであり,

  • わからないところはどんどん質問ができる
  • 問題のある部分を作ってしまっても指摘してくれる
  • 逆に良い部分はエンジニアから褒められる

などの利点が挙げられます.

はてなでは特にエンジニアのレベルが高いことから,質問すれば間違いなく解答できる人がいるという安心感もありますし,文書化して残すという習慣のお陰で小さな疑問点もどんどん公開して共有できるということもあります.

「問題のある部分を作ってしまっても指摘してくれる」という部分については,自分だけではどうしても気がつけない部分もありますし,気がついても改善点が思いつかずそのまま放置してしまうという問題があります.

はてなインターンでMackerelの開発をしていた際も,有名な「N+1問題」を起こしてしまい指摘されたことがあります.そのときに始めてこの問題に名前がついている事を知り,解決策を知るとともにアンチパターンについて調べるようになりました

得た知識をフィードバックする

このように仕事で得た知識は重要で,自分の力にもなります

最初のアルバイト経験を活かして,趣味でDBを使ったアプリケーションを作ったり,JavaScriptで拡張機能を書いたりなど趣味にフィードバックもすることができています.

また,はてなの経験からAWSも使えるようになりましたし,ミドルウェアも動作を理解したのでどんどん使っていこうという気持ちになっています.

このように学生はアルバイトを始めると良いことがたくさんあるので,不安だと感じても勇気を出して一歩前に出てみてはどうしょうか.

これから

知識を増やしていき,将来どんどん質問されても応えられるようなエンジニアになっていきたいと思います.

これからもよろしくお願いします.

はてなでは仕事をして知識を増やしていきたい学生アルバイトを募集しています.

hatenacorp.jp