![見出し画像](https://assets.st-note.com/production/uploads/images/48480620/rectangle_large_type_2_35d40e596e72d3d2be177429e9207847.jpg?width=1200)
長期インターンシップを振り返って。
1.はじめに
はじめましての方ははじめまして。2020年10月から2021年2月にかけて、ナビエースという会社さまの下で機械学習エンジニアの長期インターンシップ生として業務経験をさせていただきました、 黒男といいます( Twitter : @Black_Jack_2021 )。この記事では「私自身が長期インターンシップを通じてどのようなことを学んだのか」ということについて書いていきます。したがって、長期インターンシップそのものに興味がある、もしくは機械学習エンジニアやデータサイエンティストといった職種に興味を持たれている学生さまに向けての記事となりますのであらかじめご了承ください。
以下ではまず業務内容に関して軽く説明し、続いてそれらの業務で学べたことを技術面、ないしそれ以外の面に分けて書いていきたいと思います。
2.業務内容
冒頭にも記載しましたように、私は機械学習エンジニアというお仕事を経験させていただきました。機械学習エンジニアとは非常にざっくり言ってしまえば AI を作るお仕事です。もう少し具体的にいうと、私が行った業務は主に以下の2つの業務でした。
1.配車業務自動化AIの作成
「どの荷物を、どの車両の、何便目に乗せて運んでいくべきだろうか?
」という問いに対して答えを与えるAIの開発を行っていました。
2.簡単な Web アプリの開発
ユーザーのリクエストに対して、データを集計可視化したり、AIによる予測の結果を出力する簡単な Web アプリを開発していました。
以下ではこうした業務を通じて得られた学びに関して、技術面での学びや、マインド面での学びについて分けて書いていこうと思います。
3.技術面での学び
こちらはやや専門的なパートとなります。人によっては興味のないパートとなる可能性がありますので、適宜読み飛ばしていただければと思います。大きく分けて、以下の3つの学びがありました。
1. データベース、SQLの基礎
AIの開発というとコンペを思い浮かべる方も多くいらっしゃると思いますが、コンペでは基本的に「どういうデータが利用できるか」が csv として与えられています。しかし実務では、「どういうデータを利用するか」という意思決定が必要です。その際SQLを使用し、企業の保有するデータベースから適宜必要な形でデータを整形し、抽出する必要があります。こうした業務にも携わらせていただけました。
2. コンピュータサイエンスの基礎
私は非情報系で、それまで全くといっていいほどコンピュータサイエンスに対する知識は皆無でした。ここで言っているコンピュータサイエンスとは、ウェブサイトの仕組み、(Web)サーバーの仕組み、git 、 Linux、 Docker などです。しかし今回のインターンシップを通じてこういったものに一通り触れさせていただくことができました。
3. Web開発の基礎(Django)
それまで Python は使用したことがあったのですが、統計的なモデリングや機械学習モデルの構築といった用途でしか経験したことがありませんでした。今回の長期インターンでは Django (Web アプリ開発のための Python の便利なフレームワーク) を用いた開発にも携わらせていただきました。ユーザーのリクエストやデータの更新に応じて動的にコンテンツを変更できるウェブサイトの作り方を理解することができました。
といった形です。こういったエンジニアとしての基礎を一通り体験させていただくことができ、非常にためになりました。本当に感謝しかありません。
4.マインド面での学び
次に、マインド面での学びについて取り上げてみたいと思います。大きく分けると、以下の3点での学びがありました。
1. 手段に拘らず、多様な技術を学び続けることの大切さ
企業の課題解決を行う上で、必ずしもその解が「AIを構築すること」ではない場合もあります。したがって、手段ありきでその解決法を考えるのではなく、もう一歩抽象度を上げて、「一体どのような手法でこの課題を解決すればいいのだろう」という思考を巡らせること。そして、最善の手段を考案することの重要性を考えることが非常に重要だと学びました。また、仮にそれができたとしても、最善の手段を実行できる能力が自分になくては結局課題の解決はできません。このことから、貪欲に様々な技術を学び続ける姿勢の大切さを再認識しました。
2. UX(ユーザーエクスペリエンス)を徹底的に重視することの大切さ
最初から100% の完成品を作ろうとして、結局色々な粗が残ったプロダクトを提供してしまうと、返って業務効率を悪化させてしまいます。こういうことを繰り返していると、次第に相手はそういったプロダクトを使ってくれなくなってしまいます。そうならないように、どれだけ小さな部分だけであっても、相手の負担を確実に和らげていく。そういう姿勢を貫き続け、相手の信用を勝ち取っていくことが重要であるということを学びました。
3. 相手の背景や目的を理解することの大切さ
私は「自分の業務により直接的に利益貢献できなければ自分の存在価値はない」と思っていました。しかしそれは本当に正しいのでしょうか?その正しさを決めるのは自分ではなく、雇ってくださる会社や上司です。もしかしたら相手の目的は、「確実に利益につなげること」ではなく、「リソースが足りなくてできない挑戦を代わりに実行してもらうこと」なのかもしれません。普段からコミュニケーションを積極的にとることで、こうした目的の相違が起こらないようにすることの重要性を学びました。
このように、今回の長期インターンシップでは、技術面だけでなくマインド面でも本当に多くのことを学ぶことができる、素敵な機会となりました。
5.最後に
最後になりましたが、実際に業務に携わることは、「自分が予想している『こんなことがきっと学べるだろうなぁ』」よりも、遥かに多くのことを学べる素敵な機会になると思います。始める前にはすごく不安なことも多いとは思いますが、勇気を出して挑戦することをぜひおすすめしたいと思います😃!
すごく丁寧に面倒を見てくださったり、暖かく迎えてくださった会社の皆様。それから、こうした機会と私をつないでくださるサービスを提供してくださった Job Packer の運営者の皆様。本当に感謝しても感謝しきれません。関わってくださったみなさま、本当にありがとうございました!