エンジニアをやる大学生

この記事は coins Advent Calendar 2019 の 1 日目の記事です。

僕は現在大学 1 年生で、Ubie という会社でインターンとしてソフトウェアエンジニア*1をやっています。これは世の中的にはすこし珍しいと思うのですが、そのせいか良い部分だけが目立ち、少し持ち上げられすぎな印象があります。なので、当事者の立場から事実と率直な感想を書きます。

お金

身も蓋もないですが、まずは給与についてです。IT 系のアルバイト等は一般に給与が高いイメージがあると思います。それは事実で、実際に僕程度でも単純計算で父親*2と肩を並べるくらいには頂くことができています。しかし、そこにはいくつか罠があります。

稼働時間

学生インターンとしてではなく純粋なエンジニアとしての基準で評価されるには、それなりの稼働時間が求められます。ただコードを書くだけだったら好きな時間に書いてその分の報酬を貰えば良いかもしれませんが、チームとして動くにはそれだけでは足りないからです。きちんとミーティングに出ると、それだけで週に数時間を使います*3。それに見合うくらいコードを書く時間も確保するので、それなりの時間になります*4。これを大学と両立するのは結構難しくて、僕は大学をかなりおろそかにしてしまっています。。。。。*5

税金・扶養

ある程度自立して働こうとすると、アルバイト契約ではなく業務委託契約になることがあります。業務委託契約で得た所得は事業所得や雑所得となるため、アルバイト契約に適用される給与所得控除を受けることができません。これが何を意味するかというと、俗に 103 万の壁と呼ばれる閾値が 38 万まで下がります。なので、扶養内に収めることはほぼ不可能ですし、確定申告をして所得税を収める必要があります*6。また、税金が差し引かれることを考えると、実際に手元に残る金額は額面よりもだいぶ少なくなります。確定申告はすごくめんどくさそうで今から憂鬱なので、できるだけしなくて済むようにがんばるべきです。

スキル

ちゃんと業務に関わるには、なんとか戦力になるくらいのスキルは必要です*7。つまり、新人教育のように教わりながら成長するというよりは、実際に手を動かしながら吸収するスタンスで臨まないとつらいです。普通は新卒として受けるはずの教育をすっ飛ばすわけですから、プライベートの時間を使って学習を進める必要もあります。もっとも、一線級のエンジニアはだいたいプライベートでもキャッチアップしてるので、これが苦になるようなら別の道を考えてみるのも良いかもしれません。

もちろん明示的な教育がないからといって学びがないわけではないです。コードレビューなどによるプログラミング的学びの他に、エンジニアとしてのスタンスみたいな考え方の面でも無限に学びがあります。これは独学ではなかなか得られない部分です。

一方で、教育をしてくれるインターンも存在するみたいです。一般にそのようなインターンは長期休暇に募集されていると思います。 CA Tech Dojo とかそんな感じなんじゃないでしょうか。僕は経験ないので適当なことしか言えませんが、こういったところからスタートして就業型インターンに繋げるのも手だと思います。大学での学びとはまた別の学びがたくさんあるので、在学中に経験しておくのはとてもオススメです。

職探し

Ubie には明日の記事を書くであろう大学の友達 id:tako_programingリファラルで入ったので大した事は言えないのですが、やっぱりアウトプットは大事だなあと思います。僕の場合は Kotlin が好きで、Kotlin にコントリビュートしたり勉強会で喋ったりしていたら、 Ubie に遊びに行ったときにその話題で盛り上がって採用してもらえました。やりたいことがあって、それに実際に取り組んでいる様子が見えると良さそうです。

OSS や個人サービスの開発なんかは目に見える成果になるんじゃないでしょうか。勉強会やカンファレンスも知識や人脈などを得られて良いですが、参加するだけで満足しがちなので注意が必要だと思います。

その前の会社は、Wantedly で直球メッセージ送りまくって採用してもらいました。実務経験もないのにいきなり札幌からフルリモート要求してくるイカれた高校生を採用してくれた前職はイカれた会社だなあと今でも思います*8。CCO 曰く「レスポンスの速さが決め手」だそうです。やっぱりイカれてます*9

大学生と両立させようとすると、どうしても両方中途半端になってしまい100%の熱量を注ぐのが難しいので、情熱だけで会社を選ぶのは避けたほうが良いかもしれません。長続きしなさそうです。とはいえ大学生は身軽なので、社に迷惑をかけない程度に色々な世界を見ると良いと思います。Ubie と前職では雰囲気が全然違って新鮮で、そうやって色々な会社を体感できるのは学生の身軽さの特権です。

また、最近は転職ドラフトに出てみたらオファーをいただくことができました。インターンばかりやっていると言語化された評価を得る機会があまりないので、ある程度の実務経験を積んだ後のステップアップとしてかなり良かったと思います。

友達

普通のバイト友達ができません。間違えてスタートアップに入るなどしてしまうと、勤務先は医療の未来しか考えていない人間*10で埋め尽くされることになります。これは男女比率 13:1 オタク比率 1:0*11情報科学類生であるところの僕としては非常に重大な問題で、日に日に非オタクとのコミュニケーションができなくなります*12

最後に

だいぶ主観っぽいポエムになりましたが、こんな感じでメリットとデメリットがあることは伝わったでしょうか。。。 勘違いして欲しくないこととして、僕はエンジニア業が一般的なアルバイトと比べて優れているわけでは決してないと思っています。僕は塾講師とか居酒屋の接客とか絶対できないし、向き不向きがあります。 プログラミングをかじっている学生は一般的な業種のアルバイトを下にみがちな節があり、本当に良くないです。

とはいえ良い経験であるのは間違いないので、適度にやっていくとよい思います! あと、あくまで僕の経験に基づくものでしかないので、ツッコミとかあればぜひお願いします。

*1:関係ないけどソフトウェアエンジニアとか Web エンジニアとかの違いがよくわかっていない

*2:良いパパです

*3:スクラムセレモニー全部出たらそうなったけど社によって差がありそう

*4:情報量ゼロである

*5:働かなくても大学にはいけなさそう

*6:税金全然わかっていないので適当言ってるかも

*7:僕はどうなんだろう。。。

*8:良い意味で。

*9:良い意味で。

*10:医療の未来しか考えていない人間、WANTED! https://www.wantedly.com/companies/company/projects

*11:ホンマか?

*12:友達、WANTED!