見出し画像

エンジニアって何する人?  [データエンジニアとデータサイエンティストの違い]

monkeyはマーケティング会社で働いています。特定のデータを提供するシステムを構築するにあたり、サイエンティストエンジニアが協力して働いています。

monkeyは現在サーバーサイドを担うソフトウェアエンジニアです。
小さな会社なので、DBAのようなデータベースに特化した仕事をしている人もいません。そうなるとデータの取扱い周辺は何でもやります。RDB、NoSQL、Cloud Database、Search Engine さらには、社内お手製メモリーDBなんてこともやっています。
職業的にデータエンジニアと言っても通用するかと思います。

先日、友人に「統計を理解したいから、とっかかりとして、簡単そうな本を買ったんだ。」と言うと「monkeyはデータサイエンティストにでもなるのか? 」と聞かれました。
あり得ない話なので、びっくりしたのですが、タイトル(役職) の定義がアメリカと日本では違うことがあったり、混乱している人もいるとわかったので、今日はデータサイエンティストデータエンジニアの仕事内容を明確にしてみようと思います。

サイエンティスト(科学者)の仕事は真実を見つけること

データサイエンティストは、収集したデータを使って、様々な法則をあてはめ、何度も計算を試し、最終的に正しい(と思われる) 結果を導き出す
必要があれば何のコンピューター言語でも使う。大抵は物理とか数学のライブラリーが揃っているため、CかPythonまたはRを使っている。
アメリカでデータサイエンティストになる場合、数学もしくは物理の修士(もしくは博士)を所有しています。

エンジニア(技術者)の仕事は人を幸せにすること

データエンジニアは、データサイエンティストが導き出した計算式を使って、より早く、セキュアかつ運用と保守に優れたな仕組みを構築してユーザーに提供する
言語は、会社によりけり。大企業や政府関連ではC#やASP.NET 等、Micro Soft系列の言語を採用している場合もあれば、オープンソース系のJAVAやRuby、近年ではGoやNode等、言語のみならず、フレームワークの発展具合なども加味して選択されている。
アメリカでサーバーサイドのエンジニアになる場合、コンピュターサイエンスの学士(もしくはそれ以上の学位)を所有しています。

今回、数学の知識の乏しいmonkeyは、データサイエンティスト達との会話を少しでもスムーズにしたいと思い、統計を勉強しようと思ったのです。
毎度、訳のわからぬ英語で、訳のわからぬ数式をつらつらと言われます。泣くとか悲しむとかの感情を通り越し、誰かに押しつけたくなりますが「大人として、統計の知識ぐらい持っておこうではないか」と前向きに思ったわけです。もちろん、一番薄い小中学生用の本です。

ソフトウェアエンジニアは、ありとあらゆる技術を習得しなければならないという、プレッシャーが若干なりともあるため、「プログラミング言語の習得、フレームワークやライブラリーを使いこなせるようになる」ことに集中する期間というのは必ずあります。それも、技術の変化により、勉強をし続けなければならない仕事です。

しかし「エンジニアの仕事は人を幸せにする(システムを作る)こと」と、自分の仕事の定義を頭の片隅にそっと置いておくと、つまらぬ社内政治や、移り変わる技術にうろたえることなく、30年、40年と真摯に学び続けることが出来るのではないでしょうか。

「誰かの幸せの役に立っている」素敵なことだと思いませんか?