Tech企業の就業型インターンシップに参加
一ヶ月の間、平日週5回毎日朝から夕方までフルタイムでTech企業でシステムエンジニアとして働いて思ったことをとにかく書き下していく。いろいろ思い出したり感じたことがあれば随時更新していく。大切なのは経験をストックして次に活かすことである。
また、みなさんの体験談やアドバイス、感想も聞きたいのでぜひ気軽にコメントしてくれると嬉しい、です。
概要
・Javaを使って社内システムの開発
・学生同士のペアで社員に混ざり働く
・スクラム開発(二週間ごとに課題を決めて毎日報告)
・20出勤8時間労働(えぐい)
学んだこと
開発者としての意識
何年も使えるコードを作る。
メンテナンスのしやすさや他人が見やすいか。
ー> コードは個人のものではなく会社のもの!
研究もkaggleも個人開発のためファイル名とか関数名とか雑なことが多かったけど、これでは他の人が見た時何をしているのか一切わからない。会社のものを共同で作り上げていくという意識がとても大切。何千行とかのコードだって平気であるし、その中から一つの関数を修正する必要がある場合にわかりやすい名前じゃないと詰む可能性だってある。あと数年前とかのコードって今動かせって言われても微妙だったりするからね。そんな時もメンテナンスがしやすいコードにするべきだなあとしみじみ思ったわね。
これからの開発ではディレクトリの階層構造やファイル名、コメントアウト、空欄とか全部考えていく。
バックログを明確に
多分これが一番苦労したし一番重要だと思うこと。
序盤には「え、俺今何してるの」と思う瞬間がかなりあった。なぜこのようなことに陥るのかというとタスクの優先順位がしっかり設定できていないからである。これができていれば、「何のために何をしているのか」がはっきりし、コーディングを進めることができる。。これは研究など普段の生活でも役立つだろう。とてもいいことを学ばせてもらった。
脳のリソースは無限じゃないしなんなら自分はその容量が小さいほうだと思う。
だからこそ外部記憶装置(ノートとかnotion)を使って実装に集中できるようにする。
タスク管理はマジでめちゃくちゃ大切。
スーパーフレックスすごい
その企業はコアタイムが存在せず会議さえなければもういつでも働いていいという環境だった。遅刻しないのはでかいけど自己管理が大切でしっかり仕事できる人でないと難しいという印象。実際若手だと在宅より出社メインで周りと合わせて仕事をする人が多かった。
ペアプロの良し悪し
基本的に学生二人で作業をする形だった。何度か意見が分かれる時があり、その時いつも自分は折れる側だった。そうすると自分のほうが正しかったり、より良い提案であったこともあり、もっと主張したほうが良かったのかなと思う。ここで自分が折れる側だったのは自信のなさが原因だろう、もっと技術力や知識があれば明確な理由を添えて提案ができた、まだまだ足りないことだらけだと思った。
ネガティブなことが続いたがここで良かった点。
それはお互いの良さを引き出せること。自分の良さはコードのレビューで相方はコーディングの素早さだった。これはうまくマッチしてタスク完了まで全然時間がかからなかった時もあった。だんだんお互い理解していったので後半は基本的にスムーズだった記憶。
バージョン管理
システムというのは常に新しくなっていく必要がある。メンテナンスがしやすいようにgitで枝分かれしまくってそれぞれのブランチでなにをしたというのをはっきりさせなくてはならない。プルリクエストの書き方も大切!
コンフリクトとかなるべく避けるためにチーム内でも今それぞれがどのようなことをしているのかは常に共有必須(そのために会議中も積極的に雑談をしていて面白いと思った)。
質問について
わからないことをそのままにしておくのが一番ダメ。それは分かっているけど、やっぱり社員の手を煩わしていまうのも申し訳ないし、、。ってなったためそれを聞いた。社員の返答としては、
・ 社員も自分もお金が発生している中で働いている
・ 質問しないでわからないままだと学生の時間が勿体無い
・ すぐ質問しても社員の時間が勿体無い
つまり、学生が1時間考えるものを社員は5分で解決できるかもしれないし、学生自身で 15分で解決できることもある。そこの見極めが大切であるということ。googleの15分ルール(まずは自分で調べて15分経ってもわからなかったら人に聞くルール)は理にかなっているのだなあと改めて実感した。
そして質問の仕方も大切。「〇〇ができません」は最悪。理想は「現在の目標が〇〇であり、そのために〜〜を試みているのですが、XXの部分でエラーが出てしまいすすめません。自分としては〜。」と言ってエラー文を見せること。メールの場合は事実を箇条書きにしてその下に自分の思っていることを書く形がいいだろう。
結論
開発は楽しい
チームで目標を決めて作業するのはやりがいがあった。動いた時の感動はやっぱこれでしか味わえない。しかも今回のシステム開発はチーム独自で考え実行したもの。
自分達が提案して実際にその開発を行うことができるって素敵、、、
ただ、当たり前だが自分の軸は明確にするべき。
それは本当にしたいことなのか
妥協はなるべく避けたい。ただ就活は無理を通せるものでもない。結局自分と各企業を比べて自分のしたいこと、したくないことが叶えられるのかを調べまくるのが最適な方法だと思われる。企業同士を比べるのは本当に最後の最後のような気がする(人生の先輩方教えて笑)。
俺の場合システムエンジニアも楽しかったけどデータサイエンティストも捨て難い、、、
DSとしてもどこかのインターンに参加したい。
んで働くってマジで大変。
社会人の人たちへのリスペクトがさらに高まった。シンプル体力持たない。でもめちゃくちゃ超絶ハイパーいい経験だった。
追記
Qiita週間トレンドにランクイン!!!!!
もうね、めちゃくちゃうれしいですねこれ
なんとなくで始めたQiitaですけどやっぱ見ていただけるならもっと頑張りたいと思います
これからもうどんをよろしくお願いします!