はじめに
この記事は、私がエンジニアインターンを通して身につけた技術や考えを、まとめた記事になります。
「そんな仕事はデータサイエンティストがする仕事じゃない」
等の野暮なコメントは受け付けておりませんので、ご了承ください。
また、データ分析系のインターンをお探しの方、もしくは他企業のインターンでは何をやっているのか興味がある理系の方などの参考になれば嬉しいなと思います!!
技術スタック
作成してから若干経っているのですが、業務では
言語:Python, Shell Script, SQL
インフラ:AWS, docker
バージョン管理ツール:github
をよく使うので、この辺は触れるようになりました。
レベル感少し突っ込んで書くと、
Python → 課題やエラーは大体自力で解決できる。ドキュメントが読める。
AWS → データ基盤分析基盤は単発で、シンプルなものであれば組める。ETL処理書ける。
Git → 競合してるコミットを解ける。何もなかったことにできる。(業務ではやっちゃダメです)
こんな感じです!
データサイエンティスト協会の3本柱で振り返っていく
データサイエンティスト協会が出している、データサイエンティストに必要とされるスキルをまとめた
データサイエンティスト スキルチェックリスト
なるものがありますね!
このスキルチェックリストを眺めながら、求められること多すぎでは・・・?という言葉を胸に1年間で経験したことを振り返っていきたいと思います。
ビジネス力
ビジネススキルだけで131項目あるんですねこれ笑
1番フワッとしてる部分な気がしますが、一部ピックアップさせていただきますと、
この辺のNo.1~4は、インターン生同士であったり、上司と普段から意識している部分なので、身についていると思いました。特に、
- 【No.2】 目的のないデータ分析をしても意味合いが生まれない
- 【No.3】 課題や仮設の言語化の重要性を知っている
などは、身を持って体感しました。
他には、
- 【No.25】 データや事象の重複に気づく
- 【No.28】 分析課題に対して、初動で多角的に情報収集して大きな構造を掴む
- 【No.33】 論文構成を理解する
あたりは、身に覚えが多くあるので身についてるんじゃないかとは思います。少なくとも0ではないはずです!笑
逆に、こういった分析評価や事業への実装といった観点は、まだまだわからないことが多いなと振り返ってみて感じました。星ひとつのレベル帯なら半分くらいは経験したことがある、身についてる?みたいな感じです。
データサイエンス力
星でフィルタリングかけたかったので、ここからcsvで見ていこうと思います。
基礎数学のカテゴリに関しては、高校数学から大学の基礎統計学って感じがしますが、
- 【No.10】5つ以上の代表的な確率分布を説明できる
こーゆー細かいところは、突っ込まれたら全然わからないです。インターンで経験したかというと「No」ですが、データを見た時の分布の形はわからなければいけないよなっていう場面は一回経験しました。
データ理解や洞察のカテゴリに関しては、星1つくらいであれば苦手意識や指摘も特にもらったことないので、スキルレベルとしては到達していて欲しいなと感じます。
データサイエンスの花形といえばこの辺な気がしますよね。
結論から言うと、業務でここらのスキルが問われる業務をしているかというと場面によります。
第一にここまで求められる案件はそうそうやってこないと個人的に感じた点。
業務中は、分析基盤を作ったり、処理を自動化したりそれの手順書設計書を書いたりすることが多く、データ分析にフルコミットする環境が整っているベンチャー、中小企業は少ないのではないかなと勝手に感じています。
データ分析をした結果の確からしさや、結論の因果を示すために、データ分析チームや上司とのダブルチェックでこれらのスキルが必要になる場面はありますが、その先のビジネスサイドへ展開するときには息を潜めます。
第二に、網羅的ではなく偏ったスキルが付いているなと言う印象です。
- 【No.54】想定に影響されず、分析結果の数値を客観的に解釈できる
- 【No.95】適切なデータ区間設定でヒストグラムを作成し、データのバラつき方を把握できる
- 【No.113】分析の対象を定める段階で選択バイアスが生じる可能性があることを理解している(途中離脱者の除外時、欠損データの除外時など)
この辺は業務中に意識をしたことがある部分ですが、
もっと統計数学的なスキル(第一,二種の過誤、p値の説明)などは意識してないです。
自分自身の基礎的なサイエンス力がまだまだ足りてないなと実感するところでもあります。
またこの辺でいつしか見かけたこのTweetを思い出しました。
こういうTweet大好きで、Pandas係って皮肉飛んでていいなって思うんですけど怖いですね笑
データエンジニアリング力
最初の方は経験した記憶がないのですが、環境構築No.19の
- 【No.19】 コンテナ技術を理解していて、Docker Imageを用いた効率的な分析ができる
これはまさに今案件として取り入れていることで、勉強中です!って感じです。
データ収集、データ構造、データ加工、データ共有
あたりは、業務中に何度も行っている作業ですので、良さげでは!?と思いました。
プログラミングカテゴリも大丈夫そうですが、
- 【No.111】のClassを利用したコーディング
は、特に行っていないですね。
星が2つ付いているもので、手順書、設計書の作成があったのですが、
これはインターンでも自分の得意分野としてアピールできている気がしているので、
「星が2つであっても中には経験できていることもある。」かな?
っていうのがデータエンジニアリング力のスキルシートを見た所感です。
あとは、業務関係ないのですが、
インターン期間中に基本情報技術者試験を取得したので、その勉強過程で知ったこともちらほらある感じです。
- 【No117】 SNSから抽出した非構造化データを、適切な言語やライブラリを選んでデータ処理のプログラム実装ができる
これとかは、趣味で開発してるLINE分析のアプリがまんまそれではないかと思いました。
まとめ
インターンの1年間を通して、新しくできるようになったことや、知識領域は確かに広がりました。
ですが、それと同時に今の自分の立ち位置を痛感し、エンジニアは勉強し続けなければすぐに死ぬ生き物なのだという言葉の意味を体感したような気がします。
世の中のエンジニアの皆さん本当にすごくて怖くてすごいです(語彙力)
とにかく、Pandas係と言われることのないように、大学での基礎的な勉強から実務への落とし込みまでをこれからも意識していきたいと思います。
ご精読ありがとうございました!