念願の長期開発インターンに参加することができ,1ヶ月経ったので感想などを残しておきたいと思います.
参加までの経緯
Web開発に興味を持ってから今まで2年ほど独学やハッカソンで勉強しては来ましたが,実際にお仕事としての開発に携わった経験がなく,レベルアップのためにはチームで開発する経験や規模の大きなコードに触れる経験が必要だと強く感じていました. 生活費が親からの仕送りに100%依存した状態からも抜け出したいなと思い,どこかしらの企業でアルバイトやインターンとして働くことを本気で目指すことにしました.
技術的な条件は,サーバーサイドができるならOKとしました. フルリモートを希望していたのでそもそもの求人数が少なく,まして業務未経験の自分だと技術的な希望は通しにくいだろうということ,自分自身色々な言語に触れてみたいと考えていることから,技術面での条件は絞りませんでした. サーバーサイドをメインにやりたいという点だけです.
契約面では週2日程度勤務,最低時給1000円,フルリモート可を条件としました. 開発系は基本的に平日しかシフトが許されないようですし,研究との兼ね合いもあり働けて週2日程度でした. フルリモート希望なのは,地元福岡だけで探すよりも関東や関西の企業も含めたほうが候補が増えるからということと,コロナ禍で出社勤務には不安があること,リモートの方が実質的に勤務に割ける時間が増えることなどメリットが大きいのが理由です.
仕事先探しには以下のサービスを使いました.
- Wantedly
- Indeed
- キャリアバイト
- Infraインターン
- エンジニアインターン
- タウンワーク
とにかく求人数が少ないので1,2週間ほど各サイトを見続けて,条件に合いそうなところに片っ端から応募していました. ここしかないなと思った企業に速攻で落とされたときは諦めかけましたが根気強く探していき,Wantedlyで株式会社AIoTさんの募集にたどり着きました.
滋賀県にあるAIoTさんは既存のシステムを新しい技術で刷新したりAIを導入したりする受託寄りの20人ほどの会社で,トレンドの技術を積極的に取り入れています. 僕が今メインとしているGolangもサーバーサイドで使っているそうなので是非にと応募したところ,まさにそのGolangが書けるということでその日のうちに面談,採用まで進んであっさりとインターンが決まりました. 選考という選考はなかったですが優秀そうだからぜひと言ってもらえて,やってきたこと・やりたいこと・スキルをプロフィールでアピールできたのかなと思っています.
そういうわけで11月からお世話になっています.
参加してみて
研修はなく,小さなタスクから任される形で業務に入りました. 小さいとはいえ,今まで経験のない規模のコードを紐解きながら考える必要があるのでそれなりに苦労しました. Dockerを使った開発は普段からやっていたので,そこで躓かなかったのはgoodだったと思います.
gitは個人使用にとどまっていたためプルリクも失敗するわrebaseも知らないわ,1つのテストコード作成に2〜3時間かけてしまうわで「本当にお給料貰っていいんだろうか…クビになりやしないか」と弱気になったりもしました. 作業見積もりもざっくりでいいから出してみてと言われ,どこで躓くかわからない不安で想定の1.5倍で出してみたものの,やってみるとさらに1時間かかるという具合で本当に難しいです. 実装にかかる時間だけでなく,デバッグ,微調整なども含めて想定の2.5倍が今の自分の見積もりとして妥当なところだと思います.
未経験でのフルリモートなので,開発だけでなくコミュニケーションも心配な点でした. ですが選考のスピード感同様,Slackで投稿したらすぐにレスポンスをいただけている安心感があって,こちらも素早いレスポンスを返そうという気持ちで取り組めています. Slackを使ったチーム開発はロボコンサークルやハッカソンでも経験があり,情報共有はやりすぎるくらいがちょうどいいという意識は持っていたので,実装がうまくいかなくてもなるべく多く早く明確に情報共有しようと考えて行動しました. ただ何でもかんでも人に聞くのも良くないよなと,疑問点が出てきたら自分で考えて対処するようにはしているのですが,わからずじまいで結局質問することになるパターンが多い気もしています. 聞くべきか自分で解決できるかは自分で調べながら判断するしかなく,そこを判断するスピードをもっと早くしていきたいと思っています.
シフト前日に研究室の用事が入っての変更も受け入れてくださったり,Udemyの動画教材を共有していただいたり,積極的に新しい技術を取り入れようとする空気があったりと,少人数の会社にも関わらず本当に良くしてくださっています. ログハウス風なオフィスも気になっていて,コロナが落ち着いたらぜひ一度訪問してみたいなと思います.
今後
今まで個人でやってきたのとは勝手が違い,チーム全体で足並みを揃えてやることが思っていた以上に大事だと感じました. 個人単位でのプログラミングスキルはAtCoder茶色くらいあれば十分で,コードが読めて自分で調べて考えて解決する力の方が重要だと思います. チーム開発の方法や開発・設計手法など今の自分に足りていないメタ的な視点を身につけるべく,これから書籍で勉強していく所存です.
ちなみに今はテスト駆動開発の勉強をしています. (なぜTDDかというと,テストの勉強をしたかったからです.TDDはテスト技法ではないことに読んでから気づきました.タメになったので結果オーライ) 他にテスト技法,設計技法,アーキテクチャ,リファクタリングなど色々と吸収して,実際の業務の方に活かしていきたいです.
そんな感じで研究との両立も大変になりますが,自分の書いたコードが使ってもらえる喜びに勝るものはないですし,未経験の自分を拾ってもらった恩に報いるためにもできるだけ長く貢献していきたいと思っています. 頑張ります.