これは何
某IT企業でアルバイトをはじめてしばらく経ったので、どんな感じかレビューをしたいのと、大学生でIT系バイトを検討している人へ少しだけ私見を述べる。
筆者について
念の為軽く自己紹介をしておくと、普段は型推栄と名乗っている、電気通信大学という謎の大学に通うB4である。 専攻はコンピュータサイエンスで、特に型理論や計算可能性理論など計算理論・数学基礎論あたりの分野が専門*1だ。
よってプログラミングがそこまで得意というわけではなく、情報系学生のたしなみという程度の能力しかない。 メインのプログラミング言語というか親だと思っているのはD言語(違う世界線のC++みたいな感じ)だが、最近は業務もありもっぱらC++ばかり書いている。
インターンについて
僕は2023年の秋くらいからインターン生として某IT企業で働いている。一応「有償の長期インターン」という名目ではあるが、つまるところアルバイトで、労働契約書にも実際そのように書かれていた。条件としてはこんな感じ。
ということで、月80時間くらい働いて10万円ちょっとの給料をもらっている*3。これは一般的な電通大生としてはかなり働いてる方だと思う*4。 もちろん扶養控除の範囲(いわゆる103万の壁)に収まる訳がないので、超過したことで扶養者に課税された分は僕が払うことになっている。一応勤労学生控除が130万まであるので、上手いことこれを越えないようにはしている。
あまり詳しく書いて職場の人に身バレしたくないし、守秘義務とかに引っ掛かると最悪なのだが、そうでない範疇でここ1年半くらいのことを話そうと思う。
業務内容
今のバイトを始めて以来、僕はモバイルアプリを作る部署にいる。外注ではなく自社プロダクトで、ひたすら一つのアプリをデバッグしたり機能追加したりする仕事である。開発はPMを頂点に数十人のチームで行われていて、僕はその中の一人というわけだ。
とはいえ獅子の子落としが如く入社後すぐに一人で開発に放り込まれたわけではなく、最初は研修ということでC++の勉強とか電卓作りとかをさせられた。その後はメンターに助言をもらったりコードレビューしてもらったりしながら自分でタスクをこなすといった流れだ(今もそんな感じ)。
開発の流れ
先述の通り、仕事の中心にはあるアプリがあって、それに対してデバッグをしたり機能を実装したりという作業が主である。これらはチケットと呼ばれる作業単位で管理されている。
例えば誰かがバグを見つけたら新たにチケットを作成して不具合の内容を記録しておく。それを見たPMによってチケットが誰か(報告者のこともある)にアサインされ、作業者は原因を特定しコードを修正するといった流れである。 他の現場を知らないので確かなことは言えないが、こういった開発方法はそこそこ一般的なようだ。
また修正を行ってもそれが直ちに世の中に出回るわけではない。メインブランチから作業ブランチをフォークして、プルリクエストを作り、修正内容について上級のエンジニアのレビューを受け、指摘箇所を再び修正して……というサイクルを繰り返し、ゴーサインが出ればメインブランチにマージされる。さらにリリース時には部署全体でテストを行い、これを通過することで初めてメインブランチの内容がリリースされるという建て付けである。これもやはり普通の開発フローらしい。
ということで、プログラマとして働いているからといって四六時中プログラムを書けるわけではない。コーディングするにも規約はあるし、上では省略したが開発ブランチへのマージ時には単体テストが必要である。それなりに事務作業もある。
こういうソフトウェア開発の現場について知ることが出来たのは、今のアルバイト先を選んだことで最も得をしたと思っている点だ。現に同じ専攻の卒業生の多くがIT企業に出荷されており、自分も同じ道を辿る可能性は非常に高いので、就職前にどういうものかを知ることができたのは非常に嬉しい(そして同時に自分の耐えうる環境だと知ってほっとしている)。
要求される知識・能力
今のところ、大学で学んだ内容をバリバリ活用するような感じでは全くない。学部1, 2年でやるような数学さえ扱えれば十分である。
むしろアプリ開発ということで、事業のドメイン知識は自分の専攻からはやや離れている。もちろんこれをソフトウェアに落とし込むのが我々の仕事なので、その過程で数学やコンピュータっぽい分析は多分に必要となる。
一方で実務的な能力があまりないので、これが結構キツい。例えば業務では日常的にGitを使う。最初は add
, commit
, push
, pull
くらいしか使ったことがなく、rebase
とか言われて何のことだか意味不明という具合だった。まあ、しばらく働いていれば少しずつ慣れてくるものではあるが。
職場について
僕が今までにやったアルバイトは小売、塾講師、あと単発で倉庫仕分けくらいだが、それらに比べれば天国のような職場である。座ってお茶を飲みながらパソカタするだけでお金が貰えるし、有休も普通に取れるし、人付き合いも割と上手くいっている。おおむね満足している。
唯一にして特に苦々しく思っている問題点が通勤時間だ。最初に書いた通り、実家からオフィスまでは鉄道で片道2時間弱かかる。僕は朝が非常に苦手なのだが、9時に出勤するためには身支度も合わせると6時半くらいには起きなければならない。しかも使っているのが首都圏屈指の混雑路線なため、朝夕の満員電車にこれだけの時間拘束されるのは正直言って非常に辛い*5。これがリモート勤務可であれば言うことなしなのだが……
これからIT系のアルバイトを探す人へ
僕から言えるのは次のことである。
- UnixコマンドとGitくらいは覚えたほうがよい
- マトモな会社なら研修があるので、プログラミングの技能は学生として標準的なレベルなら大丈夫
- 近場 or リモートに越したことはない