「未経験文系から3ヶ月でデータサイエンティストになって一発逆転」はここで終わり (2020/7/31 更新)

 データサイエンティストを生業にする手段と実態について述べる。
    途中、具体例・境界値の例として私個人の話もするが、なるべく一般性のある話をする。

  この記事で言いたいことは具体的には4つだ。

  • プログラミングスクールをディスるなら代わりの入門方法を提供しようよ。
  • もう「未経験文系から3ヶ月でデータサイエンティストで一発逆転物語」を止めろ。*1
  • おじさんは人生逆転したいなら真面目にやれ。
  • 若者はワンチャンじゃなくて、ちゃんと化け物になれよ。

この記事についてはパブリック・ドメインとして転載・改変・リンク記載を自由にしてよいです。

(続き書いた)

a. 入門は辛いが…

    私は20代後半の若手データサイエンティスト(DS)として、それなりにちゃんと仕事をしている。
    しかし、通った大学はたいした所ではないし、専門もコンピューターサイエンス(CS)ではなくいわゆる「クソ文系」だった。
    私はDSへの道をほぼ独学で歩んで来たが、一人でプログラミング、データサイエンスを学ぶのには困難を伴うというのもわかる。*2

 
    先日、自社主催のIT勉強会に出た折り、中年のおじさんに「転職するためデータサイエンスを学びたいがPythonの動かし方がわからない」という質問を受けた。ググって出てきた記事を参考にして動かしてみて下さい、と答えた。
    半年後にそのおじさんと顔を会わせたとき「Dockerというのを使うのが良い方法、という記事を見て私のWindowsのPCで記事をマネたが動かない」と相談をされた。
    「『python.jp』を見て下さい」と最初に私が言っていれば、おじさんの半年は無駄ならずに済んだのかもしれない(?)  あとクソ記事書いた奴は○ね。*3

     かくいう私も最初はCygwin*4 のバグと対峙して入門までに2ヶ月無駄にした記憶がある。
VM*5が動かない程度に低スペPCだったのでWindows*6を消して対処した。今ならWSL*7があるし、パソコンも安い。

    入門で躓かないためにプログラミングスクールに行くのが良いか、と言われば私の意見は「No」だ。特にデータサイエンス分野。

 

b. 思考停止でプログラミングスクールに通うな。

     定年のジジイやヒキニートがプログラミングを趣味、ボケ防止、社会復帰に始めるなら接待も良いが、職業にする奴が通うには講師の質、コースもディス。
知人経由で大手スクールの講師(時給1500円)のデータサイエンス講座担当の採用試験問題を得たが問いの過半数は出題ミスだった。(何を言っているのかわからねーと思うがおれも何を言ってるのか全然わからなかった。*8 )

シラバスの内容はUdemy*9で2000円の初心者向け動画10時間分を薄めたものであり90万円と書いてあった。

    OK。検証不能な難癖はここまでにしよう。
仮にn万円払ったところで、クソプログラマーに中途半端な解決法を教わるくらいなら無限にトライアンドエラーを繰り返した方がプログラミングは上達する。ここ最近、プログラミングスクール不要・必要論争をしてる連中を見た。

    (代替厨っぽいが)本当に不要だと思うならスクールに行かなくても目的を達成出来る手段の紹介をするべきだ。*10 そこで私は下にDSになるための最速ルートとオススメ参考文献集をまとめておいた。

    このリストを参照してる限り、データサイエンスの入門に関しては初心者はお金を払って人に相談しないと先に進めない、ということは起きない。高度な脇道*11への疑問が湧くことはあるかもだがクソ講師もそれに答えれない。それは良いプログラマー、数学者の友人を作るか、Stack Overflow*12GitHub*13を見るしかない。
    新しいことを始めるときに詰んでしまう、という人は難易度を下げて進める技術、検索技術を身につけよう。どうしても無理なら頼れるメンターを探そう。

    下の資料を見てもわからない、メンターが居ないからスクールに入る!!というのなら、それは意義のある決断だ。良いスクールを見つけてほしい。(参考 : AI学ぶのは「今でしょ!」講座|マスク・ド・アナライズ|note」)


なろう系・始めてみよう系資料一覧 (最速・最短ルート用)

まずは動かしてみよう。強くてニューゲームが体験出来るぞ!

下のリンクをクリックするだけで、即座にAIを動かす準備は整う。

(GoogleによってAIのサンプルと動作環境が準備されている。)

入門以前の本

    会社・個人がデータサイエンスをする理由、その需要、その展望についてアカデミックな背景のある方、DS業界で地位のある方が書いた読み易そうな本を二種類に分けて載せた。noteやbooth、サロンのカリスマ(詐欺師)を崇拝する前にこれを読め。

    ネット上のデータサイエンス挫折体験談、Tier 5就職成功談を眺めた感想として、難しい本を読み始める前に社会におけるAI活用の具体例が5個以上思い浮かばない人は業界本を、統計学機械学習と深層学習の違い*14が全く区別つかない人は技術者入門本をしっかり読むのからスタートした方が良い(マジで)。

    それくらいのAIリテラシーがないと「何が必要なのか」「何を学べば良いのか」「どこを目指せば良いのか」「データサイエンティストを目指す理由は何か」「データサイエンスを仕事に導入する必要はあるのか」の段階で間違える人が多い、というかそう成らざるを得ない。

    リストの中でも上の方が簡単、下の方が込み入った内容になっている。

一般向け業界本 (AI業界と展望がわかる本)
実践フェーズに突入 最強のAI活用術

実践フェーズに突入 最強のAI活用術

 - 既読。現実の応用例が書いてある良書。セミナー通うよりこれ読んだ方が早いし良い。最新ではないが業界ノウハウを知るには普通に良い本。

技術者入門向け (AIの雰囲気、AIの正体などが書いてある。)

ちゃんとしてそうなYoutubeの動画

・私は殆ど見てませんが動画で最新の現場の声も聞くことが出来るようです。

(ついでに)安いノートPCの選び方

  - 充分コーディングに耐えうるDELLのパソコンが7万円*15で買える。*16

Python入門 (最速コース)

実務家を目指したり、知識を付けたいなら、多少のプログラミング技能は習得してあると便利だ。プログラミング言語の一例としてPythonを学ぶ手段を記した。

  1.  「PFNの教育的Python入門講座 on Colaboratory」
    ・最速入門コースはこれ。
    ・リンク踏んで5分後には入門完了出来るくらい最速。内容もちゃんとしてる。
    ・おめでとう、これをやれば君はPythonマスターだ。自信を持って良い。そして曖昧なおっさんになる前にドンドン先に進んでけ。
    ・この次は知の高速道路(動画教材)に進んだら良い。もちろん他のPFN講座を全部やっても良い。プログラミングで困ったときはドキュメントとstack overflowを読む癖をつけよう。他のPython入門系は躓いた時にやれば良いし、やらなくてもよい。
  2. Python3 Documentation
    ・公式ドキュメント(チュートリアルガイド編)。流し見で良い。
    チュートリアルだから、と気を張って真面目に読むと疲れて終わらない。
    ・後で困ったら後で解決しろ。インデックスは貼っとけ。Tips は2年後に読むと役立つ。
  3. Code Style — The Hitchhiker's Guide to Python
    ・文法を覚えた初心者が眺めるPythonの作法集。
  4. Effective Python

    ・中級者*17向けの3の発展版。もうすぐ邦訳本が出る。 
    Python の邦訳本はこれまで読みにくいのが多かった上、英語だと本の選択肢が増えるし邦訳のタイムラグも無いので技術書は英語で読むのもオススメする。
    ・ 副読本として 『Practices of the Pro Python』『Hands-On Software Engineering with Python』 が良い(特に前者、邦訳は両方ない。)
    『自走プログラマー ~Pythonの先輩が教えるプロジェクト開発のベストプラクティス120』という本もある。(未読)

  5. 受講した知り合いが良い教材だった、と言っていた。目次見る限りPythonの機能を知るPythonツアーガイドとしてはよさそう。行きたいところが決まってるならツアーには参加しなくても良いと思いますが。

初心者向け動画講義まとめ

  1. 「【世界で18万人が受講】実践Pythonデータサイエンス | Udemy」
    Python入門用で質と量と日本語が完備されている。3億倍速で眺めプログラミングの苦手意識を消し「何でも出来る」と勘違いしたらAndrew.ngへ
  2. 「Machine Learning by Stanford University | Coursera」
    ・Andrew.ng*18機械学習とは何か教えてくれる。時間と体力はかなり必要だが黙ってこれやれ。
    ・これを見て最速レベルアップすることが本RTA*19における最重要ルート。*20
  3.  「eラーニング教材・講義動画配信 | 数理・データサイエンス教育強化拠点コンソーシアム」
    ・ データハンドリングなどの入門者講座は Udemy の方が良いが、応用的なこと(時系列解析・データ活用実践)を学ぶ上では、これより良い入門教材はない。
    ・多分、動画の[1,2,3]を理解していてコードが書けて、学歴があるならTier4 のインターン・バイトは受かる。
  4.  「DeepMind x UCL | Deep Learning Lecture Series 2020」

    www.youtube.com

    Deep Learning 講座。DeepMind社の世界のトップ達が入門者向けに自身の研究の話をする。
  5. DEEP LEARNING」(SPRING 2020, NYU,  Yann LeCun & Alfredo Canziani)


    www.youtube.com
    ・Pytorchを使いながら諸々のDeepを学ぶニューヨーク大学の講座。Andrew.ngくらいガッツリ本気の講義。

分野別の本と補足情報集

  • ここには各分野の基本的な知識の習得に役立ちそうなものを書いた。複数上げられているのは自身に合うものを選ぶか併読すれば良いと思う。 
  • 補足に関しては補足だ。蛇足かも知れないがソフトスキルっぽいものが書いてある。
  • 純粋なビジネス本や2年未満で使えなくなりそうなハウツー本は扱ってない。
  • 本を買うか迷うなら買った方が良い(業界の常識)。私の既読本は全て良本だ。

1. データサイエンス入門本(14種類)

説明
1. ビジネス分析系
2. データリテラシー
計量経済学の第一歩 -- 実証分析のススメ (有斐閣ストゥディア)

計量経済学の第一歩 -- 実証分析のススメ (有斐閣ストゥディア)

  • 作者:田中 隆一
  • 発売日: 2015/12/17
  • メディア: 単行本(ソフトカバー)
3. データ分析のSQL 
  • データ分析に携る上でSQL技能は必須、Pythonより需要は高い。
  • SQLの基本文法は事前にググって学ぶ必要はあるが、実践的な分析用クエリの書き方はこの本で学べる。
  • 動作環境構築が面倒なので、docker上にワンコマンドでセットアップが完了するdockernized版を勝手に作った。
  •  メンテしないのでデータの入力ミス、バグ、ドキュメントの必要があったらフォークして。出版社に怒られたら消す。
4. 機械学習入門

「Machine Learning Crash Course  |  Google Developers」,「scikit-learn Tutorials | documentation」

5. 機械学習副読本
6. 統計学入門
Rによるやさしい統計学

Rによるやさしい統計学

7. 深層学習入門

「Welcome to PyTorch Tutorials documentation」

8. ベイズ入門

www.slideshare.net

9. 強化学習
10. 因果推論
11. 数理最適化・Operations Research
基礎系 数学 最適化と変分法 (東京大学工学教程)

基礎系 数学 最適化と変分法 (東京大学工学教程)

12. 金融分析

金融データ解析の基礎 (シリーズ Useful R 8)

13. 人工知能の倫理と法

読んでもデータサイエンティスト協会の必要スキルリストは埋まらないが、私が言及しなかった所為で何処か誰かが痛い目をみる事態が発生したってなると目覚めが悪いので記載する。 

14. 万人向けではない資料

2. データ分析関連100本ノック (3兆本やれ)

  1.  「言語処理100本ノック2020 (Rev 1) - NLP100 2020」
    ・ 余裕で出来る課題は飛ばすと早く終わる。必須ではないが自然言語処理する上でこれが解けないなら作業は止まる。
  2.  「画像処理100本ノック」
    ・(未読) OpenCVはUdemyの講座、オライリー、公式ドキュメントで学んだ。研究室に入る以外のハイウェイがあるなら私も知りたい。
    ・ 場合によってはopenCVPythonではなくC++から叩く方がよい。
  3. 「データサイエンス100本ノック(構造化データ加工編)」
    SQLの入門には良いかもしれないが、文法がわかるならSQL本を動かす方が良い。
    ・ 試す上での懸念点としてはDockerの環境構築の難易度が高い上に「何もしてないのに壊れた!」が発生する可能性がある。*31
  4. 『Python実践データ分析100本ノック』
    ・これが出版される以前に私は実践経験は充分積めたので読んでない。(マウント)
     ・実践練習するよりインターン・バイトした方が良くない?
  5. 『統計的機械学習の数理100問 with Python』 (本)
    ・刊行は続いていくらしい。あまり親切な内容ではない。

3. 算数なにもわからない人向け

チャート式シリーズ 大学教養 線形代数 (チャート式・シリーズ)

チャート式シリーズ 大学教養 線形代数 (チャート式・シリーズ)

  • 発売日: 2020/04/17
  • メディア: 単行本(ソフトカバー)

 数式読めなくて専門書読めない人用。

4.「データアナリスト」の本

何をチョイスしたらよいか、よくわからなかったので曖昧に既読本から良かった本、分析に関連する本を載せた。

意識高そうで死ぬ。

5.プログラミング教本(13種類)

・ 私はプログラマー(PG)としては才能の無い3流以下ですが、参考までに読んで良かった本のタイトル、言語と対象レベルと雑感を載せる。
・ DSとして充分に強いなら不要かも知れませんが、実務の中でPGとしての素養は要る。マネジメント、開発手法・インフラ、ドキュメンテーション、プレゼン技術も実際は必要だがここでは言及しない。

  1. プログラミング入門

    Python, 入門者向け, どうやってプログラミングを進めていけば良いか、という様なことが書いてある本。私には不要だったが、良い本だと思う。

    Linuxがわからなければ、Google「Site:ac.jp bash入門」などで検索して大学の講義資料を探しても良い。本でやりたかったら、『新Linux/UNIX入門 第3版』が入門向けになっている。
  2. Git入門

    www.slideshare.net

    ・Git, 初心者向け, Git*33を概念から説明してる資料
    ・時間が無いなら「【Git入門】サルでも分かるGit入門の前に!Git使い方高速入門編【入門は5分で十分だと思います】」で使い方はわかる。
    「GitHubで共同開発のためのチュートリアル - Qiita」をみれば共同作業のやり方がわかる。
    ・ちゃんとやるなら「Pro Git (日本語版)」「逆引きGit」がある。
  3. かっちりしたプログラミング入門

    ・古いC++, 初心者 *34 から中級者*35まで。章を切りとって容易にした代替本はあるが多分これが原典。総合的に色々書いてある。体力が必要。
    ・古い書き方がどうしても無理な人向けに類書を上げるなら『江添亮のC++入門』(GitHub)がある。『Code Complete』とは目的が異なるため到達点も異なっている。そしてクセがめちゃくちゃ強い。

  4. リファクタリングの技術

    JavaScriptRuby版もある), 中級者向け。
    ・コードを綺麗に保つ、問題を適切な単位に切り分ける技術の話をしている。
    ・私は暇なときにPythonに書き直したが、定期的に眺めたり辞書に使うのに適している。
  5.  リーダブルコード

    C++PythonJavaScriptJava (言語関係ない), 中級者以上向け。
    ・Effective Pythonの補足になる。
    『Clean Code アジャイルソフトウェア達人の技』(未読)などもある。

  6. デザインパターン

    C++, デザインパターン(コードの設計パターン集)が学べる。

    GitHubデザインパターン練習コード集を集めて眺めるのが一番楽な気もする。
  7. ドメイン駆動開発 

     ・C#, 中級者向け, ドメイン駆動の開発現場では当然優先度は高い。

  8. ソフトウェアテスト
    テスト駆動開発

    テスト駆動開発

     ・Java, 中級者以上, テストをしながら開発を進める方法・技術が学べる。

  9. アルゴリズム

    C++, 中級者以上, 通称「蟻本」。

    アルゴリズムを王道で学ぶなら『The Algorithm Design Manual』(未読)や『The Art of Computer Programming(日本語版)一巻』『2巻』『3巻』を読むのが良いではないでしょうか(未読)。権利関係どうなってるのかは知りませんが、ググると英語版のpdfが出てくる。
    ・蟻本より簡単なものとして『新・明解Pythonで学ぶアルゴリズムとデータ構造』(未読)、Pythonではじめるアルゴリズム入門 伝統的なアルゴリズムで学ぶ定石と計算量』(未読)、『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』がある。
    面接対策として『世界で闘うプログラミング力を鍛える本 コーディング面接189問とその解法』がある。
  10.  コンピューターサイエンス

    ・演習問題付きで時間があれば誰でも読めるCSの教科書。通称「パタヘネ」

    ・ちゃんとCS勉強する人は更に高度な本を読むと良いのではないでしょうか (私はやりませんが)。
    ・敷居が低いものとして『みんなのコンピュータサイエンス』や、『教養としてのコンピューターサイエンス講義』(未読)、『入門 コンピュータ科学 ITを支える技術と理論の基礎知識 』(未読)がある。
    ・歴史トレンド読み物として『角川インターネット講座 』『魔法の世紀』がある。
    ・具体的な解説本として『オブジェクト指向でなぜつくるのか』『プログラムはなぜ動くのか 第2版』も読んだがこの辺りはDSが必要に駆られて読む本ではない。
  11.  データベース

    RDB, 中級者以上, DBに関する読み物, 続編に設計編(未読)がある。

  12.  セキュリティ入門

    PHP, PHPが書ければ読める。体系的なセキュリティ入門本。
    ・勉強して試験を受けると資格にもなる。(ウェブ・セキュリティ基礎試験(徳丸基礎試験))

  13. ソフトウェア工学

     ・『ソフトウェア科学基礎』『ソフトウェア要求 第3版』も読んだ。

     ・資格を持ってる訳でも専門家でもないので人に自信を持っては勧められないが、この辺の知識もあると便利だった。

6. IT勉強会

  • リクルートやセルフブランディングなどの様々な思惑が絡み合う中、IT勉強会という謎文化が近年存在している。(参考:「IT勉強会 - Wikipedia」)
  • その中には互助会のような親切な会もあるが、個人や怪しい会社が「学生対象!」「未経験歓迎!!」「すぐに稼げる 参加費5万円!!!」とかやっているのには近づいてはいけない。
  • あと軽々しく「勉強会」って一括りに言うけど、ワナビー向けからガチ勢限定、就活面接、マウンティング会場、お誕生日会*36などが混在しており、何もわからないまま粗相や不適切なムーブ(特にハラスメント)をしてしまうと最悪の場合、界隈・業界からBan*37されるまであるので、参加するなら規約や文化をよく調べてから参加した方が良い。
  • 規約の例


7. プログラマ脳を鍛えろ

  良いメンターや友人に質問しろ、と言ったが非エンジニアはパブリックなところでコーディングの質問はしない方がよい。
  「適切な質問」をするには技術が必要で、それが出来てPGとして半人前だ。*38

質問のガイドライン
適切な質問には検索力が必要だ。
エラーメッセージを読む技能も重要だ
知財保護・ライセンス・ネットマナー・ハッカー文化に対する理解も必須だ。

8. 他の人が書いた入門記事、本のリストとの比較(追記)

  • ちゃんとした人がちゃんと書いた入門コース紹介として、中川さんの書いた記事があった。段階的なレベルアップを推奨するこのルートはそれ自体として挫折しにくい良いガイドになっている。しかし個人的な感想として文化資本で高速道路を疾走する人達と競争し生き残る目的で参考にするには一般道過ぎるように感じる。

    shinyorke.hatenablog.com

  • だみ~氏のブログも本を紹介している。国内のDS村の住民は、みんな同じ本を読みがちだ。(逆に謎な本をありがたがる村外の住民は情報の取捨選択能力、鑑識眼が無いのでヤバい。)
    この記事ではだみ~氏のちゃんとした選書理由とともに、ちゃんとした本を読んだ感想がちゃんと紹介されている。*39
    私の記事より解説は丁寧だが難易度がバラバラなのと、あくまで過去の読書記録なので他人がいま真似するには内容のアップデート版に類する本、代替学習手段のある本が多い。*40

  • くにさんという方が『お世話になった本リスト』を出していた。(8月19日追記)
    掲載されているリストの内容はだいたいこのブログ記事と被る or 諸事情*41からこのリストから省いた本 + Cookbook系の本になっている。
    『数理統計学: 統計的推論の基礎(黒木, 2020)』は知らなかったので私も買った。
  • karaageさんが『ディープラーニング機械学習の初心者向けオススメ書籍』を書いていた。(8月19日追記)
    私は先端的なところは英語の情報を読むし、そうでないところもかっちりした専門書を読もうとするので、個人的には参考にならなかったが、私のような選択肢を取りたくない人、初心者にはオススメのルート紹介になっているのだろう。
    本を全然読まず、手も動かさず、専門性も実績も無いのにオススメ本リストとか出してる人*42も沢山いるが、それに比べればこれは信頼に足る情報だろう。

  • 他にはプログラミングスクールが出している「【2020年版・初心者向け】独学でAIエンジニアになりたい人向けのオススメの勉強方法」がある。内容は中川さんの記事とこの記事を足して5で割ったところにスクールが重んじている用語暗記や小手先テクニック集を足したような内容だった。Tier 4 入社を目指すならコチラの方が正解なのかもしれない。
  • 他にもググると出て来るが言及しない方が良い記事ばかりなので言及しない。

c. インターンの話

    こんな感じで入門コストは暴落しバブル崩壊前夜の今、DSのキャリアに入る難易度は未だ最高値を更新し続けている。
    それが一体どういうことなのか未経験文系とかには具体的に説明しないとわからない気がするので5年くらい前に私がインターンに潜り込んだ話をする。*43
 

 「私は確率統計や数学、科学哲学、ビジネスの知識・素養がめちゃくちゃあり実分析に応用した例もあります。またプログラミングで実現出来る革新的でお金になりそうなアイデアを見つけ、それを現実的な難易度に落とし込み短期間で実装しました。ビジネス・エンジニアリング・データサイエンス、どれもイケてる成長株です。GitHubはこれです」

 

    そんな感じの自己アピールをした。その結果、プログラミング入門から半年後には、有名データサイエンスチーム (Tier 2) のインターン選考を運良く(面白・ビックリ人間枠として)突破し、そこでなんとか結果を出し実績を積むことが出来た。客観的にはこのインターンに受かったのがターニングポイントに見えるだろう。運とはいえ私にとっては打算的に動いた結果だ。
    プログラミング入門から3ヶ月はコードを書くのが楽しくて、質の低いWebサイトを作ったり、しょうもない画像認識、IoT遊びや競技プログラミングごっこなど目に付いたオモチャを順番に試し学生の時間を無為に過ごした。しかし小遣い稼ぎに申し込んだデータ分析インターン(Tier 4)の選考ではオモチャ遊びは全く評価されず、その辺の雑魚未満とされ落選した。実際ゴミだったと思う。

    傷心で寝込みながら自らの立ち位置と比較優位を自覚し戦略を練った。その結果、そこから3ヶ月で目標は達成できた。(『データサイエンティストは3ヶ月で成れる!!』じゃん)

 

    当時でも他のインターンは実績で人を殴れるガチ勢ばかりだった。ガチ勢というのは高校の部活でプログラミングを習い始め、有名大に留学経験があり、コンピューターサイエンスや関連分野の有名研究室で優れた業績を持ってますが何か?みたいな奴らのことだ。
    若くして優秀みたいな話は大概、先天的文化資本チート野郎であり、
個人の能力 = (1 + 才能)× (1 + 希少性)× [文化資本] × (1 + 努力 × 効率 + 勢い + 運)
だと思った。左側のパラメーターの方が重要度は高い。
    この世界では先天的な文化資本はあればあるだけ強く、都内に自宅があり幼稚園の頃に親から500万円分の教育機会をプレゼントされる御家庭に生まれてやっと中流スタートが出来る。若い内に能力があると認められればCERNベイエリアで効率を上げたパワーアップも可能だ。そして「清く正しく毎日生きてきただけなのにトップスクールPh.Dナウ♪」とかSNSで呟いていられる。
    強い学生界隈には他に必要な努力を必要なだけ即するやつ、天才っぽいのや世渡りの巧さで実力を付けた奴とかが居た。高専出身の強い学生ルートというのもあるが、あの背後には強く成れなず踏み出いになった屍の山がある気がする。 

    つまり凡人、後発は挫折だ、不向きだ、様子見だ、とか言ってる暇ねぇから。やるならやれよ。各々の現在地から最短コースを最速で走って少しでも距離詰めてなんとか成り上がる or out だから。そんで上の資料集が最新版『地球の歩き方 ザコ編』になっている。目的地は自分で決めろ。*44

d. 就職の話

    就職の話もついでにする。

私が見積った就職・転職の際の市場評価関数は
市場評価 = 個人の能力 × 需要 × [経歴・見込み実績・伸び代] × (自己アピール + [性格・社風マッチ・学歴フィルター]) だった。
    転職回数、宴会芸、外見、性別などが加わる所もある。雑魚スタートアップでも40のおっさんプログラマーは企業文化に合わないとして落とされている。
    私は上位層との市場評価の差を少しでも埋める必要があったためインターンの経歴の他にも学内外の賞で経歴を埋めた。賞は稼ぐことを意識・執着し、かつトップ層のやり口を知っていれば労せず誰でも稼げると思った。なので時間も趣味コーディング、趣味の論文読み、分析のバイトにばかり費やしていた。

    Kaggleの公開データセットではよく遊んでいた。しかし競技の方は自身には比較優位のある感じがせず、参加し続ければ意欲は証明出来るのかもしれないが、業務が出来るアピールには結びつけられる気がしなかったので私はやらなかった。
    そんなこんなで就活ではそれまで縁のあったTier2からTier4の会社から声がかかった。大学に残りたかったが親の強い反対と金銭の都合で諦めた。Tier 1,2で活躍したいなら進学して結果を残す必要がある。(例外は少ない)

    勉強時間が圧倒的に足りてないのにCSトップ層とハードワークで渡り合っても辛い。社内で比較優位性を持てること、興味湧く業務が良い。ということで私はTier 3の会社に入社を決めた。

 

    自分語りし過ぎだろ、と思われるかもしれないが自分のような「ラッキーケース」でしか一流未満大卒、無能、文化資本無し男による皆さんが望む「未経験文系からデータサイエンティストで人生一発逆転エンターテインメント!! 倍返しだ!」は存在しないし、ほぼ無理だと思う。 *45 

e. 業界の話

  みんなデータサイエンティストに成れるとして業界の話をする。

 

データサイエンス部署の仕事・求人を以下のように分けて考えるとよい。

  • Tier 1 業務内容が研究業務。世界規模のデータを扱う。
  • Tier 2 業務の一部として最先端の研究・実装をする。国内最大規模のデータを扱う。
  • Tier 3 最先端ではないが、先行研究を素早く理解・実装する。国内大手企業のデータを扱う。
  • Tier 4 sklearnやTensorflowのAPIを叩く。有名企業のデータ分析をする。
  • Tier 5 Pythonにチャレンジ。Google Analyticsを活用する。

    他に会社の事業種(事業会社・受託会社・コンサル会社)、業績動向・ビジネスモデル、企業規模、担当する業務・求められているのは何か、どのような人が居るか、活躍・成長出来るか、自分とマッチしてるか、という会社毎の調査もした。ただ業界通のベテランに近づき聞いた評判や内部情報、優良企業情報が一番役立ち正確だった。
    2010年代中盤、DSバブル初期中期には「研究開発タイプ・アナリスト(ビジネス)タイプ・エンジニアタイプの3つから自分の好きな職種を選ぼう」とオーキド博士の言いそうな世迷い言が流布したが、バブル後は自称ビジネス系DS、半端者エンジニアから配置転換、レイオフされる(された)。

    Tierの話に戻ろう。
    Tier毎の業務には壁がある。例えばTier 2の会社の研究部署にインターンから入社した人柄が売りの友人は周囲のサポートで猛成長し国際学会の舞台で発表していたとき、私は極東で分析的雪かき業をし続けていた。
    またTierの違いはキャリアの違いでもある。Tier 1は常にトップランナーとしてキャリアを歩むことが出来、選択肢も多いように見える。そして交通事故で死ぬ。
    Tier 2はビジネス状況・案件状況、研究職と非研究職の配属の差によるキャリアの差が若干ある。担当業務と興味があってれば生涯それで良いと思う。技術トレンドを大きく読み違えると死ぬ。
    Tier 3は能力では優秀な後発にドンドン抜かれていくのでビジネス寄り、エンジニア寄りの強いアウトプット・経験を貯めてかないと景気悪化で死ぬ。
    Tier 4はDSとしての専門性はその辺の学生以下なのでビジネス技能、エンジニアリング技能との組み合せでデータサイエンス能力を発揮する必要がある。データサイエンス技能だけなら給料は並以下であり、景気悪化で無条件に死ぬ。
    Tier 5は一人月や営業職兼任として存在する。勉強してキャリアアップするか、データサイエンティストになるための情報商材販売やスクール講師などの副業をする必要がある。Google検索アルゴリズムの変更とかで死ぬ。
    ワナビー達は今一度、憧れの『DS版 逆転人生』はどこの世界の物語だったのか思い返してほしい。

f. 仕事に就く方法

    現実的な話をしたところでもう一度データサイエンス関連業務に就く方法の話をする。戦略の必要性や仕事のイメージが具体的に湧かなければ「業界本」やYouTube動画を参照しろ。

データエンジニア職

iPhoneアプリとサイトQAにAIを搭載したいのでAWS資格を持つTier4レベルのDSを募集します。AI、バックエンド、インフラ全部お願いします』

『東大発イケてるスタートアップです。Tier 2クラスの強い院生求む!!』


    最近はこんな感じの公開求人をよく目にする。*46
    後者のようなスタートアップ求人は採用人数が少ないのでマス向けには忘れるとして、前者の需要は行動するワナビープログラマーからの転職を消化しきれる程度にはあり、それなりに高給だ。
    実際に目指すならGreenなどのエンジニア求人サイトを見て応募可能な求人があるか、スキル不足ならどう満たすかの戦略を練るべきだろう。また一般的な要件の参考としてTJO氏が「実務の現場で求められるスキル要件」を書いている。

    こうした「データエンジニア(DE)」枠*47としてTier4などでデータ分析業務に携るための競争はDSの道に比べれば緩い。AWS*48の資格を取るだけなら独学でも2週間から半年あれば達成できる。とはいえ適性が無いければ辛い道程にはなる。

データエンジニア転職向け参考リンク

データサイエンティストに転職

・「関連学位の大学院卒、または旧帝大・私学上位並の学部卒などの学歴と数理科目、CS関係をちゃんと学んだ経験があります」のルート。あるいは「私には特殊能力・実績・業務に役立つドメイン知識のいずれかがあります」って自信持って言える感じじゃないとTier 2以上の「ちゃんとしたDS」に転身するのは現実的ではない。仮に入社できても他のDSと科学技術コミュニケーションが行えず仕事にならないだろう。

    しかし社会的、現実的な需要からTier 3, Tier 4の(実質アナリスト、またはDEポジション兼任の)DS職への転職求人は結構ある。*49 これは「ビジネススキルと分析経験と学歴と学生インターン以上のスキル」の組み合わせを満たしていれば可能だ。

データサイエンティスト転職の参考リンク

ビジネスマンルート

    DSでもDEでもなく職業としてAI・人工知能に携るにはTier 4にビジネスマンとして入るか、営業やコンサルタントから営業・プロジェクトマネージャー(管理職)としてTier 3,Tier 4に転職する方法がある。これは普通にハッピーな話だ。賢者に転職出来るのは仕事を積み重ねてきた者だけだ(嘘)

ビジネスマンルート向け参考リンク

無職転生

    どうしても無スキルから転職したい、という地獄を心にお飼いで甲子園*50からプロ入りするに厳しいお年ごろであれば専門学校に行って技能を身に付けるのはどうだろうか。(頼れる学費サポート|日本電子専門学校
    4年制大学は若いならアリだが一般枠だと無スキルおじさんは入っても鬱で退学になる。電気通信大学の夜間通信制の諸大学、放送大学なら年齢に関係なく可能だ。(留年しないとは言っていない)
    学士、または大卒程度の能力があるなら大学院大学、大学院でCSを学べる。無から研究計画書を錬成し、入試を突破するのはそこいらの資格試験突破より超難題ですが……
    学位が重要でなければおっさんの就職・転職対策は大学より専門学校、専門学校より独学、独学より大学院の方が効率は良いと思う。(独学が可能ならな)
    海外のオンライン大学、オンライン大学院に夢を見るのは止めた方が良い。YouTubeで大学講義を見るのとは異なり、興味がない講義も取らないといけないし定期試験の準備に膨大な時間がかかる。サポートも少なくオフラインの学位より評価されない。*51 

無スキル向け参考リンク

学生ガイドライン

高校生は偏差値が高くて大都市・大都市近郊、出来れば東京の大学の理系に進学しよう。入試はちゃんと手段をググって計画練って高速道路を走れば才能ない地方底辺でも、ある程度のチャンスはある。

未経験三流文系は普通どうやったってどうにもならんでしょ?(笑)

理系大学生は勉強して能力を付けてインターンや学会発表したら良いのではないのでしょうか、知らんけど。

あと地方の大学生は単純に不利だが、実力付けるとTier 2以上は給料も交通費・宿泊代も出してくれるので情報集めてインターン応募するか学会でHuntingに遭って夏休みに頑張って挽回してください。雑魚は自腹でキャリア積んでください

学生向け参考リンク

g. データサイエンティストになったら

 最後に見習いデータサイエンティストになれた後の話をする。

 最終的にどうなりたいのか、目標を持っていなければやってられない職業だと思う。曖昧だと転職も出来ない。
    『私はスーパー能力があるからアーリーリタイアのことしか考えてないです』と公言して憚らない人もいるし、底辺YouTuberとして成金アピールするのが生きがいの人もいるが、その辺は例外としよう…… 人生は冒険や!
    一般に動機や目標は具体的であった方が幻滅せず継続できると思っている。『「データサイエンス」って言葉の響きがかっこいいから』では言葉の響きと現実の差に直面すると死ぬ。(よくいる)
    遊びや趣味の週末データサイエンティストや他の技能で優位があるなら別だが、一般に職業としての「見習いデータサイエンティスト」には安定はなく、遊んでられる週末も高給もなければ未来もない。理由なしに選んで後悔しない道ではない。
    Tier 1, Tier 2のDSはデータサイエンスの話だけをしていられる場合もあるが、それ以下は『データサイエンティストのためのスキルチェックリスト/タスクリスト概説』 に書いてある諸雑務の遂行能力や営業スキル、コミュ力、世渡り能力が要求される。なければコストカットだ。また新卒のデータサイエンスの技能レベルは毎年、上がっている中、あなたの保有技能がそれを下回ればDSとして経験を積む機会は消える。


    一応、熟練データサイエンティストになれた後の話もする。
そのまま社内で管理する立場に回る、分析エース・分野の専門家としてビジネス実績を積む、論文やkaggleなどのコンペで対外成果を出す、OSSに貢献する。もしくは転職、VCに転身、起業、フリーランスになる、研究者を目指す、アーリーリタイアなどになるだろう。
先発優位が強い上に先行者の数は多いので、業界や会社が急成長しない限り今から普通の「見習い」が上まで登り詰めるのは難しい。どこでも良いなら別の山へどうぞ。

 

    どうなりたいか、に関係するが100点満点を目指すより自身の目的に特化した方が良い。DSかくあるべき論でよく聞く内容のうち、私は情報幾何や計算理論、渡辺ベイズはちゃんと理解してないし、Tensorflow・PyTorchの実装も見てないし、CSのトップジャーナルに論文は載っていない。C++FPGAで高速化チューニングが出来る訳でもなく、 Kubernetesは使い込なせず、NoSQLとRDBの違いも説明出来ない。*52

データサイエンティスト協会とやらによれば Associate Data Scientist以上Full Data Scientist 以下だが、スキルセットに記載されているセキュリティ技能やブロックチェインなどには興味もない。

    俺やっぱDSの紛い物だったわ 

    業務でもデータサイエンティストブラックホールになっているアドテクにほとんど興味がなく、画像認識、NLPの先端研究なんかにも関心が持てず使い込なす技能もない。そのため他の専門知識と実績を増やしてなんとかサバイブしようとしている。これが紛い者DSの現実だ。

 応援メッセージ

   
 そんなわけで、まぁ紛い物への成り方とノウハウは書いといたので未経験文系の皆さんとかも3ヶ月(?)で、でーた?カイエン?なんちゃらら?とかいうのになって人生逆転してみてくださいw

 

補足

        (この問題に対して noteで補足されたので先に紹介、追記しておく。「データサイエンティスト」という言葉の濫用について|note)

  1. ・「データサイエンティスト」が示す内容は、
    データサイエンス,CSのPh.D研究者「(マジの)DS」、研究従事者「DS(狭義)」、データサイエンス応用業に従事する人「DS(広義)」
    データサイエンス技能のこと「DS(技能)」、DS協会のいう雑務含めた諸技能「DS(協会技能)」、分析技能保持者のこと「DS(保持)」
    データを扱う業務に携わっている人「DS(関連業)」、資格を持ってる人「DS(ブロンズ・実装師)」、協会認定者「(協会認定)DS」、
    kaggleやってみた人「DS(titanic)」、Python触ってみた人「DS(Python)」、詐欺師の人「DS(情報商材)」などが混在している。

  • あとPython書けないデータ分析業務従事者のことを「データアナリスト」って呼ぶのマジで止めろ。「Python書けたらデータサイエンティスト」も違うからな。 

*1:『【年収1000万円】1.SQL 2.python 3……これらを3ヶ月ガチるだけであの高給取り職「データサイエンティスト」になれることが判明! MARCHと同じレベルとかお前らなら余裕よな? 』(出典:まとめサイト)や
『未経験からデータサイエンティストになる方法』(出典: note.comで売っている人気情報商材)、
嘘松で注目を浴びるインフルエンサーワナビー、人材紹介会社の煽りステマを念頭にしている。

*2:勉強し始めた理由もしょうもないもので、講義の課題レポートで出した仮説を否定され、『A』を取るため再反論する上でデータサイエンスを使う必要があったのが最初の動機だ。

まぁクソ文系の理由ってそんなもんだろ。

*3:確かにDockerは良いプログラミング環境の構築ツールとも言えるが、応用的で難しいのと特定のOS(家庭用Windows)だと最近のアップデートまでは動作しなかった。クソ記事書く連中は複数のOSの動作確認なんてしてないし、そういう問題には言及しない。

おじさんの半年分の進捗は『0』だった。

*4:Windows上ででプログラミングに適した別のOS(Unix)を疑似的に再現するソフト、あくまで疑似的であり制約やバグがある。

*5:Virtual Machineの略。PC上で仮想的に別のPCを動かすこと。負荷が2倍かかる。

*6:生のWindowsでプログラミングをするのはその目的のジャンルと知識量に依るが、概ねツラい。

*7: 最近公式から登場した別のOS機構がWindows上で動く仕組み

*8:運営側にマトモな人間が一人も居なかったのだろう

*9:有料動画配信サイト

*10:今は「データサイエンティスト 成り方」で検索してもアドテク企業による虚無キュレーションサイト、リクルート(とその周辺文化圏企業)による転職煽り、ゴミ溜めサロン(30万)・プログラミングスクールの勧誘、自称カリスマ執筆本の宣伝しか出ない。

マトモな情報は、これらの搾取ビジネスが邪魔して容易には手に入らない。そもそも情報を市民が大衆向けに発信する文化が育っていない。

その結果として環境に恵まれた者しか情報を享受することが出来なくなっている。これは解決すべき課題だ。

俺は多様性が生む化け物を見たいんだ。

*11:どうやって計算が動いているのか、このシステム制約の理由は何か

*12:海外の質問サイト

*13:みんなが技術を公開するところ

*14:それぞれの境界を厳密に考えるのは難しいが、個別のイメージがあれば技術選定で躓かずに済む。

*15:2020年7月前半時点

*16:あまり教えたくないが、価格がアホなPCもある。

*17:スラスラコードが書ける程度の人

*18:機械学習の第一人者

*19:Real Time Attack、3ヶ月以内に10年選手を追い抜き、そのポジションと雇用を奪う早さを競う競技のこと

*20:もちろん「どうしても時間が無い」、「体力が続かない」など困難であれば飛ばしてもよい。よくはないが…

*21:上のブログの著者、Google JapanのPVでDSとして登場したりしている。

*22:この「詳しくない」は実務家以上、専門家未満という意味だ

*23:TJOの2021年度版に少しでも反映して頂けたら嬉しい

*24:オンラインの分析コンテスト

*25:分析技術に関する教育を受けたことが無い人

*26:Natural Language Processing、自然言語処理。Chat Botやレコメンドの技術

*27:自動運転や物体識別、動作認識などの技術

*28:私は「機械学習における繊細な議題についてドヤ顔で半端な知識を語られても困ります。まず、この本でも読んで下さい(怒)」と上司に対しても発言し喧嘩になった事がある。

*29:空間分析、ネットワーク分析、異常検知、統計力学とか全編未タッチになってる分析手法、結構ある気がするが私がちゃんと勉強してないので紹介出来ない。

*30:本の内容をパソコンにタイピングしなおすこと。

*31:動作バージョンが固定されておらず、テストも無いため、参照しているDocker Imageであるdatascience-notebook に破壊的変更、使用しているライブラリAPIの変更、それらの依存関係間でコンフリクトが起きると発生する。気づいたらプルリクを送れば良いはず。

*32:math harassment、数学出来る奴が出来ない奴を追い詰めること。

*33:バージョン管理ツール

*34:ここでは文法を理解した人

*35:コーディングに苦手意識の無い人

*36:「JXUG 名古屋ハンズオンでの事実について」

*37:出禁

*38:私はPGではありませんが

*39:比較用に他人が書いたDS向け本リストをググると全然ちゃんとしてないクソ記事ばかり出てくるので私の心は過剰に荒んでいた。

*40:私もアップデート本はわざわざ全部読み直す体力がなく(未読)ってリストに書いて紹介してるだけですが

*41:代替の学習手段がある、初心者向けではない、誰もが読むべき本ではない、長期間読まれるような本でないなどの理由

*42:自分自身にも多少刺さる

*43:5年前、データサイエンティストブーム第二世代の終わり頃はTier 2でも「学生のうちからAIを良い感じに実装して実務の課題を解決出来るなら優秀」みたいな風潮があった。

しかし今(2020年)の第三世代はインターン選考で「専門性、広範なプログラミング能力、実績が備わっていないと一次審査落ち」まで競争率高いので怖い

*44:はてブ上で『 躓くことがムダにしか見えていない著者は未熟』というコメントに賛同者が集まっている。躓いた連中は消えた。

*45:最近は「大学入学と同時にKaggle、分析インターンに打ち込みました。文学部卒でもTier 2 DS!」みたいな戦闘民族も居そうだが。

*46:バイアスがある

*47:TJOブログにおける機械学習エンジニア枠

*48:Amazon Web Services, AI等を動かすパソコンリソース、インフラを確保するときに使うAmazon社のクラウドコンピューティングサービス(計算リソースのオンデマンドレンタル・従量課金制貸し出し)のこと。

*49:数年後に残っているかは疑問

*50:高校野球の聖地。年齢と性別に参加条件がある。

*51:体験記を集めた。

*52:実際これらを全て満たすのは現実的ではないが自分の専門に近い物は満たした方が良いとは思う。(私は二流以下なので出来てない)