データサイエンティストは、近年注目を浴びているIT系の新しい職種です。
データサイエンティストはどんな職種なのか、そしてフリーランスのデータサイエンティストとして働くことは可能なのか、ここで詳しく解説していきます。
データサイエンティストとは
データサイエンティストは、わかりやすく言えば「ビッグデータ解析の専門家」ということになります。近年AIやIoTといった新しい分野の技術の発展とともに注目を浴びているIT系の新しい職種です。
しかし、その実情というのはあまり世の中では知られていません。そのためここではデータサイエンティストがどのような仕事か、そして具体的にどのようにしたら、データサイエンティストになれるのかについて解説をしていきたいと思います。
データサイエンティストを目指す人に必要な資格
データサイエンティストになるのに必要な資格は特にありません。しかし、求められる資質と役に立つと言われる職種があるので、それぞれ紹介しておきます。
データサイエンティストに求められる必要な能力・資質
以下のスキルはデータサイエンティスト一般に求められるスキルとして知られています。
BIツールを活用する能力
BIツールとは「ビジネスインテリジェンスツール」の略で、大量の蓄積されたデータを分析し、スムーズな意思決定に役立つツールです。 経営管理や売上のシミュレーションなどに活用します。
BIツールの代表的な製品としてはTableau、Power BIなどがあります。企業の経営分析に限られたものではありますが、これらは大変強力なツールです。
Python言語・R言語のプログラミング能力
「データサイエンティスト=プログラマー」ではありませんが、データ分析を行うに際し、プログラミングのスキルも必要とされます。その際に利用される言語がPythonおよびR言語です。
Pythonはオープンソースのスクリプト言語であり、統計・機械学習・データ分析などのライブラリが充実しており、データサイエンティストにとってはなくてはならない言語です。
また、R言語は、データ解析・統計プログラミング言語として開発されたもので、Python同様にオープンソースの言語であり、こちらもデータサイエンティストに活用されています。
統計学に関する知識
データサイエンティストがデータを解析するために必要となってくるのが統計学の知識です。
統計学は大きく分けると、記述統計学(古典的統計学)、ベイズ統計学、推計統計学の3つに分類されます。データサイエンティストとしては、最低限とでも記述統計学(古典統計学)の知識は必須となります。
機械学習に関する知識
統計学と同時に、データサイエンティストはデータを分析する手法として機械学習を身に着ける必要があります。
機械学習とは、コンピュータにデータを読み込ませて、アルゴリズムに基づいて自律的に学習・分析させる手法のことです。あらかじめ事例となるデータを反復的に学ばせることによって、そこに潜む特徴やパターンを見つけ出させます。
そして、見つけた特徴を新しいデータに適用することで新しいデータの分析や予測を行うことができるようになります。
代表的な手法としては、データの関連性を見つけ出す回帰分析、データの分類を行うためのSVMといった手法が存在します。これらはいずれもPythonおよびR言語で実装が可能であり、それらを駆使するスキルも求められます。
Oracle、MySQLなどのデータベースに関する知識
ビッグデータを扱う際にはデータベース、特にリレーショナルデータベースに関する知識は欠かせません。リレーショナルデータベースとはRDBとも言い、行と列によって構成された「表形式のテーブル」と呼ばれるデータの集合を、互いに関連付けて関係モデルを使ったデータベースのことです。
MySQL、Oracle、PostgreSQLなどさまざまな製品が存在しますが、これらはいずれもSQLという言語で操作を行うことが特徴です。
データサイエンティストに役立つ資格
データサイエンティストとしての実力を示す際には資格が非常に有用です。以下にデータサイエンティストに役立つと思われる主な資格を紹介します。
Python関連の試験
現在、Python言語には2種類の試験があります。
1つ目が「Python 3 エンジニア認定基礎試験」です。現在、Python言語にはバージョン2系統とバージョン3系統があり、文法は微妙に異なります。なお、現在用いられている主流はバージョン3系統です。
この試験はPythonのバージョン3系統のプログラミング基礎能力を問う試験で、合格するとPython言語に関する基本的なプログラミング能力とスキルがあることが証明されます。
申込URL:Python 3 エンジニア認定データ分析試験
Qiita記事:Python 3 エンジニア認定基礎試験の勉強法と受験した感想
2つ目が「Python 3 エンジニア認定データ分析試験」です。これは認定基礎試験の上位資格であり、Pythonのプログラミング能力があることを前提として、numpy、pandas、Matplotlib、scikit-learnなどのライブラリを駆使してデータ分析を行ううえで最低限必要な知識とスキルを身に着けているかを問う試験です。
これらの試験はいずれも一般社団法人Pythonエンジニア育成推進協会が主催する試験であり、データサイエンティストとして必要な基礎的スキルを問う試験としては最適です。これからデータサイエンティストとして活動しようと考えている人はぜひとも受験しておきたい試験です。
統計検定
統計検定は統計学の基本を押さえているかどうかが分かる検定試験です。一般財団法人統計質保証推進協会が実施しており、1級から4級まであり、それぞれのレベルでの統計学の知識を測る試験として知られています。
近年これに、データサイエンティストとしての基礎力を測る試験として、データサイエンス基礎(CBT)が加わりました。更に近いうちにデータサイエンス発展および応用が加わることが予定されています。
プロのデータサイエンティストとして活動するのであればぜひ押さえておきたい資格と言えます。
申込URL:統計検定
Qiita記事:統計検定2級チートシート
ディープラーニング検定
「ディープラーニング検定」は、一般社団法人日本ディープラーニング協会による検定試験です。
ディープラーニング(Deep Learning)とは、深層学習(しんそうがくしゅう)とも言い、機械学習のモデルの一種です。ディープラーニングはニューラルネットワークと呼ばれる人の神経細胞を模倣し生成された機械学習のモデルです。
応用例としては自動車の自動運転や、人間のトッププロを打ち破ったことで知られる囲碁プログラムであるAlpha Go、更には顔認証などがあります。
そんなディープラーニングに関するスキルを調べる試験がディープラーニング検定です。
この検定には一般的な知識を問うG検定(ジェネラリスト検定)と、E資格(エンジニア資格)の二通りの試験があります。
G検定がディープラーニング全般の知識を問うのに対し、E資格はディープラーニングを実装するエンジニアの技能を認定する試験です。
データサイエンティストは機械学習全般の知識を必要とするため、できればG検定だけでも取得しておきましょう。
申込URL:G検定(ジェネラリスト検定)
データベース関連の資格
データベース関連の資格は扱うデータベースの種類によって異なります。
Oracleの資格としては「Oracleマスター」、MySQLの資格としては「MySQL認定資格」といったものがあります。これらはいずれもOracle社の製品であることから、試験を主宰するのはOracle社です。
また、PostgreSQLを基準とした「OSS-DB技術者認定試験」といったものもあり、これは、LPI-Japanが実施するオープンソースデータベース技術者の認定試験です。
これらのうち1つでも取得しておけば、リレーショナルデータベースやSQLに関する基礎的な知識と操作スキルを持っている証明になるため、データサイエンティストとしては取得しておきたい資格と言えるでしょう。
情報処理関連の資格
データサイエンティストは情報処理に関する深い知識も必要とされます。そのため、それらの知識を持つことを証明するために、情報処理関連の資格もあった方がよいでしょう。
基本情報技術者試験および応用情報技術者試験は、情報処理の促進に関する法律第29 条第1項に基づき経済産業大臣が行う国家試験であり、公的な資格として通用する資格です。
一般にこれらの資格はSEやプログラマー、ネットワークエンジニアなどが取得する資格として知られています。
内容はICTシステムおよびそれに関連する事項全般に深い知識を必要とされます。具体的にはコンピュータ科学基礎、コンピュータシステム、システムの開発と運用、ネットワーク技術、データベース技術、セキュリティと標準化、情報化と経営といった幅広い領域に渡ります。
その他の資格
多くのデータサイエンティストは企業において業務の改善や最適化に当たることが多いことから、この他にもビジネス系の資格があると更に役立つことでしょう。
たとえば財務などの内容を理解するための日商簿記等のような財務系の資格は、企業の財務状況を把握するうえで役立ちます。
またすこし難しいですが、中小企業診断士やMBAなどのような高度なビジネス系の資格とそれに付随する知識は、分析した数字の意味を把握するのにも有効です。
フリーランスにはPythonが人気?
すでに説明した通り、現在データサイエンティストが活用するプログラミング言語としては主にPythonとR言語がありますが、特に人気があるのがPythonです。
その理由は、R言語が統計や機械学習などといったデータ分析に特化している言語であるのに対し、Pythonはあらゆる目的で利用できる汎用性の高い言語であるため、応用範囲が広いためです。
たとえば、DjangoといったWebフレームワークを使用すればWebアプリケーションの開発を行うこともできます。
また、IoT分野でも盛んに利用されており、シングルボードコンピュータであるRaspberry Piを利用してセンサーなどさまざまな電子回路を操作するためにも利用されています。
近年は、特にIoTによって集められたセンサーデータの分析などの業務を行うケースが増えていることもあり、IoT分野でも利用できるPythonの需要は高まっています。
また、近年注目を浴びているAI(人工知能)の分野でもPythonは必要とされています。機械学習の一種であり、AI技術の中心の技術として注目されているTensorflowを中心とした深層学習のライブラリや、自然言語処理、画像処理などのライブラリが充実しており、それもまたPythonの人気が高くなっている理由です。
そのうえ、すでに説明した通り学習しやすいことが特徴であることから、データサイエンティストに限らず、すでにJavaやC#など他のプログラミング言語をマスターしているエンジニアたちも近年では積極的にPythonを学んでいます。
フリーランスのPythonエンジニアの平均年収・報酬単価
そんなPythonエンジニアの平均年収および報酬単価は、扱う案件の種類によって違います。企業に勤める場合、年収は500万円から1,500万円台とかなり開きがあります。これは企業の業種や、扱う技術領域によって異なりますが、平均するとおおむね900万円位です。
フリーランスの場合、一般にPythonエンジニアは年収が高いという認識が広がっていますがこれは扱う案件の種類や技術領域によって異なります。
実際、AKKODiSフリーランス上でのRubyの求人単価も32万円~190万円と大きくひらきがあります。
つまり、企業に勤務する場合であろうと、フリーランスであろうと、Python言語+付随する技術によって年収は大きく変わってくるわけです。
高い収入を得るためには、人工知能やデータサイエンスなどの付加価値の高いスキルも併せて身に着けておくことが必要であると言えます。
Pythonという言語の特徴
Pythonは汎用のプログラミング言語で、ほかのプログラミング言語と比べコードがシンプルなのが特徴です。そのためプログラムを分かりやすく、少ない行数で書けるため、初心者にも学びやすい言語として知られています。
PythonはもともとABC言語という教育用のプログラミング言語を基にして作られています。そういったこともあり、非常に学習しやすい言語として知られており、プログラマー以外にも広く利用されています。
だからといってPythonがプログラミング言語として機能が低いかと言うと決してそんなことはありません。私たちが日常的によく使うサービスやアプリにもPythonが使われています。有名なところでは、YoutubeやInstagram、更にはDropboxの開発にPythonが使われています。つまり、Python言語は初心者にも学びやすいうえに実用性の高い言語でもあると言えるのです。
なおPythonという名前の由来は、イギリスの人気コメディ番組「空飛ぶモンティ・パイソン」のパイソンから名前をとったものです。ちなみに、Pythonとは、「にしきへび」のことです。そういったこともあり、現在はPythonのマスコットやアイコンとしてニシキヘビが使われています。
Pythonのフリーランスエンジニアの現在と将来
残念ながら現在、日本でPythonのフリーランスエンジニアの求人の割合はほかの言語に比べればそれほど多くはありません。Web系もメインはPHPやRubyが多いうえに、人工知能やデータサイエンスなどのPython言語であればこそできる案件も、全体の割合から見れば少ない方です。
しかし、潜在的な需要は高く、近年ではAI・IoTやデータサイエンス分野の専門の求人サイトができるほどであり、そのうえ報酬もほかの案件よりも単価が総じて高いため、件数の割には良質な案件が多いとも言えます。
そのうえ、データサイエンスの必要性を感じている企業は多いため、求人の絶対数自体も今後はどんどん増えていくことが予想されます。ですから、現在割合が少ないからと言ってあまり悲観する必要はありません。
それどころか、むしろ将来が有望な分野にまだまだライバルが少ない絶好のチャンスと考えることができます。
Pythonエンジニアがフリーランスとして働くために必要なスキル
Pythonに対するニーズは高く、そのうえ扱っている領域が人工知能やデータサイエンスなどの最先端のものが多いため、現在は勿論、将来的にもこの状況が続くことが予想されます。そのためそれらの分野で活動するためにはPython以外にもこれらの分野の知識やスキルも必要とされます。
また、現状ではPythonの求人はほかの言語に比べると数が低いのが現状です。そのうえ一般に開発現場でPythonのみが用いられるケースは少なく、何かほかの言語+Pythonという使われ方をしているケースが少なくありません。
そのため、フリーランスとして成功するためには、Python言語以外にも使える言語が複数あることが望ましいでしょう。
たとえば、IoT分野であるのならば、組み込みで使われるC/C++言語、Web系であればRubyやPHPなどの言語も併せて身に着けておけばより有利になるでしょう。
フリーランスエンジニアはPythonで在宅ワークできる?
現在、多くのエンジニアが在宅ワークを行っています。一定のタスクを割り振られ、それを決められた納期までに仕上げるというパターンか、一定の時間を拘束されて、その時間で報酬を支払われるかのいずれかです。
また、週のうち2~3日に現場に出勤し、残りを在宅でというパターンもあります。条件はクライアントの企業や案件の内容によってさまざまですが、最初はフルタイムの拘束であっても、機密保持や一定の成果を挙げてクライアントの信頼を得た場合、在宅や前述のように一部の業務を在宅で行うことも不可能ではありません。
ただ、もしもあらかじめ在宅ワークをしたいのであれば、最初からそれを条件として提示している企業の案件に絞り込んでおいた方が良いでしょう。
在宅ワークを許可していない案件は、多くの場合企業の外に持ち出せない機密情報を扱っていたり、アジャイル型などチーム体制による開発の必要がある体制をとっているなどの事情があるケースが多いため、いったんそのようなプロジェクトに参加すると途中から在宅ワークに切り替えるのはかなり困難です。
Pythonエンジニアがフリーランスとして働くときの請求書の作り方
サラリーマンと違い、フリーランスの場合は依頼先の企業に請求書を自分自身で発行しなくてはなりません。通常、フリーランスが案件を受注し業務を完了した場合、クライアントに提供した商品やサービスの代金について請求書を作成して提出します。
とはいえ、実際にやったことがない人にとっては一体どのように作成したらよいのかわからないのが実情です。ただ、国税庁のウェブサイトで「請求書等の記載事項や発行のしかた」とし以下の5項目を記入するように説明されています。
・書類作成者の氏名又は名称
・取引年月日
・取引内容
・取引金額(税込み)
・書類の交付を受ける事業者の氏名又は名称
出典:国税庁「No.6625 請求書等の記載事項や発行のしかた」
これら5項目があれば請求書として成立します。この中には押印がありませんが、通常、請求書に押印がなくても法律上問題はありません。ただし、クライアントによっては請求書に押印が必要な場合もあるので注意しましょう。
なお書式等のフォーマットを自由に決めることは可能ですが、クライアントによっては指定するフォーマットでの提出を求めてくる場合がありますので、契約の段階であらかじめどのようにするのか確認しておきましょう。
まとめ
データサイエンスおよびPythonを取り扱うフリーランスはまだまだ全体の中では少数派です。しかし本文の中で説明した通り、将来的に大きな可能性を秘めています。
そのため、すでにほかの言語でフリーランスとして活躍しているエンジニアや、企業に勤めていて将来的に独立したいと思っているエンジニアにはチャンスの多い分野です。学習すべき内容は非常に多いですがチャレンジしがいのある領域だと言えるでしょう。