エンジニアって何する人? [データエンジニアとデータサイエンティストの違い]
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年と真摯に学び続けることが出来るのではないでしょうか。
「誰かの幸せの役に立っている」素敵なことだと思いませんか?