自己紹介
- 早稲田大学4年生(理工系、非情報系)
- インターン参加から5ヶ月程
- 元々プログラミング実務経験はなし
プログラミングに関しては授業で基礎を勉強したり、少しだけ趣味で基礎を勉強する程度でした。その時はC言語やC++などを独学で勉強していました。
長期インターンに応募した理由
自分のここまでの大学生活で楽しかったことはいろいろありますが、その中のひとつにプログラミングを使って試行錯誤していた時間があります。
よく聞く「自分のやりたいこと」「ワクワクすること」は何かと考えた時に、自分はプログラミングが思いつきました。
それを実務として経験できる場所はないかと考えた時に、友達が行っていたインターンに自分も参加させてもらったという形です。
具体的な業務内容
- アプリのサーバーサイドのシステム開発
機械学習を用いたレコメンドシステムの評価・開発に携わっています。実際にSQLやPythonを用いてコードを書くことで、データを解析したりシステムの評価をしています。 - ユーザーデータの解析
アプリを使用しているユーザーのログをSQL・Pythonを用いてデータとして成形することで、ユーザーの動向を解析しレコメンドシステムに取り入れています。 - コードや機械学習に関する勉強
実際に使われている機械学習手法に関して本や業務上のコードなどで勉強させて頂いています。言語に関しても同様に勉強させて頂いています。
インターンをして得られたもの
ここからはインターンに参加して3ヶ月の自分が現在進行形ではありますが得られていると感じたことを書いていきます。
エンジニアとしての知識
上記で述べた機械学習やコードに関する知識を中心とした、IT分野に関する知識を得ることができています。
さらにそれらが蓄積されていくことで、普段目にする情報に対して自分のアンテナが広がりました。
Twitter, Note, Qiitaなどで目にする専門的な情報は前提となる知識がないと読みにくいものです。それらを自分の中に落とし込むには、独学だけではなく実務での経験が役に立つと感じています。
頭の動かし方
コードを書いて実現させるものは、どれも自分のやったことのないことばかりです。
はじめはどうすれば実現できるのか想像できないことが多いですが、そこに辿り着くまでに必要な過程を分解して、筋道立てて考える力が現在進行形で鍛えられています。
さらにその中で上手くいかない過程が発生します。そこで
- 上手くいかない原因、ボトルネックとなっているのがどこなのかを考える力。
- どのような出力をしたらボトルネックが見つけられるのかを考える力。
- それらに対して仮説を立て、評価できる力。
- 自分だけで解決できないときに、何が上手くいっていないのかを伝える力。
これらが日々必要とされるため、鍛えられていると感じています。
まだまだ自分に足りていない能力であり、常に意識してこれからも成長していきたい部分でもあります。
サービスにおける膨大なデータ、ログの扱い方
エンジニアとしての知識に含まれる部分でもあるのですが、実際に使用されているアプリのデータを扱わせてもらっているのは貴重な経験だと考えています。
膨大なデータがどのようにテーブルとして分けられているのか、そのテーブル同士がどのように関連付けされているのか、これらが自分の書くコードに直接影響している部分でもあるので、身を持って学ばせてもらえています。
データの管理は現代のサービスにおいて重要です。普段使っているサービスにおいてもデータがどのように管理されているか考えるなど、サービスに対する解像度も上がったように感じています。
まとめ
大学生のうちからエンジニアとしての経験を積ませてもらうと、得た知識経験からさらに拾える情報の幅が広がります。
これは余談ですが、大学生の自分でさえ色んな人と関わっていく中で、やりたいことに対してエンジニアが不足しているという人やサービスをたくさん見かけます。
そんな世の中自分にエンジニアとしての強みを作れると、自分の可能性が広がるのではないでしょうか。(何も考えずコードの勉強だけをしていても、逆に可能性が狭まってしまうと思います。)
偉そうなことばかり書いてしまいましたが、自分への自戒も込めてインターンに参加して感じたことを述べさせていただきました。