文系SEが未経験からデータサイエンティストに転職するまで

ポエム

先日データ分析の受託を行っている企業から内定をいただき、データサイエンティストとして働くことが決まりました。

自分の経験が少しでも誰かの役に立てばと思い、これまでの経過をまとめていきたいと思います。参考程度にご覧いただければと思います。

3行まとめ

  • 文系SE未経験でもデータサイエンティストに転職できた
  • 勉強開始~転職まで9カ月くらいかかった
  • Kaggleのメダルは大きなアピール要素だった

スペック

  • 年齢:28歳
  • 大学:法学部(学部卒、研究室はデータ分析系)
  • 職歴:ITベンチャーで社内SE(4年)→大企業の子会社で社内SE(1年)
  • プログラミング経験:ほとんどなし(GASを業務で少し、PHPを勉強として本1冊程度)

※GAS:Google Apps Script

大学時代は法学部でしたが、法律があまり好きになれなかったのでデータ分析をする研究室(経済学部と合同)に所属していました。そこで統計学には軽く触れていましたが、重回帰分析をするくらいでした。

社会人になってからはキャリアの大半を社内SEとして過ごしました。自分でコードを書くことは基本なく、コードを書くベンダーの方をマネジメントしたりする立場でした。

転職理由

端的に言うと、「大学時代から好きだったデータ分析の熱が、本格的に勉強をする中で再燃したから」です。

大学の研究室では「統計学を使って実証研究を行い、結果を政策提言論文としてまとめる」という活動をしていました。その時にデータ分析にすっかりハマりました。「データを使って複雑な事象を客観的に説明することができる」というのがすごく面白く、重回帰分析を最初に知ったときの衝撃は忘れないと思います。

ただ、新卒の就活時にはデータサイエンティストという職業の存在を知らず、コンサル系でデータ分析できたらいいなくらいの気持ちでした。(紆余曲折ありコンサルではなく社内SEのキャリアとなりましたが、、)社会人になってからもデータ分析をできたらいいなと思いつつ、業務として携わる機会はないまま社会人になって約5年が過ぎようとしていました。

その頃、業務で簡単なデータ分析(単なる集計レベル)に触れる機会があり、仕事もあまり忙しくない時期だったので、「本格的にデータ分析を勉強してみよう!」と思い立ちました。2019年2月のことです。社会人になって知ったデータサイエンティストという職業にずっと憧れがあってもやもやしていたこともあり、「データ分析に詳しくなって自分の気持ちをはっきりさせたい」という想いもありました。

勉強を本格的に始めてから1カ月くらい経つ頃には、「データ分析のキャリアを歩みたい」という想いが自分の中でとても強くなっていました。データ分析自体の面白さもそうですが、その先にある機械学習やAIの可能性を肌で感じ、スペシャリストになりたいと感じたのが理由です。

活動の流れ

1カ月目(2019年2月)

  • Udemy講座の受講(3つ)
  • SIGNATEの練習問題にチャレンジ

最初は興味の赴くままにデータ分析の勉強をしていました。最初はとにかく簡単な所から取り組もうということで、Udemyの機械学習系の入門講座をいくつか受けました。

【キカガク流】人工知能・機械学習 脱ブラックボックス講座 – 初級編 –

【キカガク流】人工知能・機械学習 脱ブラックボックス講座 – 中級編 –

【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門

これらの講座の中で初めてJupyterNotebookに触れて、データ分析の面白さを感じていました。どの講座も「実際に手を動かすこと」に重点が置かれており、コードを書くことに慣れていなかった自分にはすごくよかったです。

ある程度慣れてきたところで、実際のデータ分析課題に取り組んでいました。

SIGNATEというデータ分析コンペ等を行うサイトに練習問題がたくさん載っており、その中で「Jリーグの観光客数予測」に取り組んでいました。カテゴリデータの扱いなどが結構難しく感じ、とにかく調べながら取り組んでいました。順位は654/853で全然良くないですが、10h程度かけたところで一区切りとしました。

2カ月目(2019年3月)

  • SIGNATEの練習問題を解く(6個)
  • 機械学習の理論本を読む(2冊)
  • ブログでのアウトプット(4記事)
  • Twitterを始める
  • オンラインスクールを開始

本格的に転職を決意したので、かなりの時間を投入していました。一番時間をかけていたのがSIGNATEの練習問題で、1つを5~10hくらいで解くことを繰り返していました。ただ解いていても勉強になりづらいので、それぞれの問題に対して「ロジスティック回帰で解く」「ランダムフォレストで解く」という風に手法を決めて取り組んでいました。各手法について全然分かっていなかったので、Pythonではじめる機械学習Python機械学習プログラミングなどを読みながら概要は把握するようにしていました。

問題を解くのを繰り返したおかげで、テーブルデータを扱うことにだいぶ慣れていきました。学んだことは積極的にアウトプットしたいと考えていたので、練習問題に取り組んだ過程をいくつかをブログにまとめたりもしました。ブログに書くことは復習にもなるので、やってよかったなと思っています。

初心者がデータ分析コンペにチャレンジしてみた!【SIGNATE】【ワインの品種予測】

 

また、情報収集としてTwitterも始めました。データサイエンティストを目指している方やKaggleを強い方などをフォローさせていただき、情報収集だけでなくモチベーションの向上にもすごく寄与したと思います。#100DaysOfCode というタグで勉強記録を発信している駆け出しエンジニアの方が多くいて、自分もそれを真似して勉強記録を呟くようにしました。勉強記録は今でも続けており、サボると呟くことがなくなるのでいいプレッシャーになっていると思います。

また、オンラインスクールの受講もこの時期に始めました。スクールをメインに勉強するというよりは、「独学で知識が偏ることを防ぐため」という目的だったので、あまり時間はかけずに参考程度で利用していました。

3カ月目(2019年4月)

  • Kaggleを始める(Santander)
  • SIGNATEの練習問題(1つ)
  • ディープラーニングの勉強を開始
  • 転職エージェントに登録

SIGNATEの練習問題もだいぶ取り組んだので、Kaggleに参加することにしました。当時自分でも取り組めそうなコンペがSantanderしかなく、締め切りまで2週間を切っていましたが参加しました。Kaggleのメダルが転職時にアピールになるということはかえるさんのブログ を見て知っていたので、無謀ながら「何としてもメダルを獲りたい!」とかなり本気で取り組んでいました。

しかし、実際に取り組んでみると公開カーネルの内容が全然理解できず途方に暮れたのを覚えています。本当に1行1行分からない部分を調べては実行してを繰り返しながら、理解を進めていきました。睡眠時間を削って取り組みましたが、結局メダルには届きませんでした(上位30%くらい)。目標は達成できませんでしたが、コードを読む力と書く力は参加前に比べてかなり上がったと感じました。

Santenderが終わった後は、別のコンペ(Jigsaw)に参加するためにディープラーニングの勉強をしつつ、転職エージェントに登録して情報収集をしていました。転職市場の状況や未経験で転職した方の事例などを聞きつつ、自分はどのように活動をしようかイメージするようにしていました。明確に軸は決まっていませんでしたが、データ分析力を示す実績が必要だと強く感じたので「Kaggleのメダル」をとって転職活動をしようと決意しました。

4カ月目(2019年5月)

  • Kaggleの別コンペを始める(Jigsaw)
  • ディープラーニング&自然言語処理の勉強

5月はJigsawコンペでのメダル獲得を目指してディープラーニングの基礎から勉強していました。自然言語というジャンルも初だったので、初めてのことばかりで苦労していました。肝心のコンペのスコアは伸び悩んでいましたが、勉強になる部分は多かったです。

仕事の忙しさがピークに達していたこともあり、トータルで見て勉強時間があまり確保できていませんでした。

5カ月目(2019年6月)

  • 退職の意思表示&最終出社を終える
  • Jigsawコンペ引き続き
  • オンラインスクールの数学講座を受講
  • 勉強会への積極参加

月の始め頃に退職の意思を伝え、下旬から有給消化に入りました。30歳手前でのキャリアチェンジということもあり、業務の合間の勉強で長引くよりも短期集中で終わらせたいという想いから、退職してから転職活動することにしました。

まずはおろそかにしていた基礎部分を勉強したいと思い、オンラインスクールの数学講座を一気に終わらせました。「どの程度の数学ができればデータサイエンティストとして十分なのか」は今でも分かっていませんが、講座という形で線形代数や確率など一通り学べたのはすごくよかったです。数式に対する苦手意識が少し薄れました。

5月に時間をかけて取り組んでいたJigsawコンペについては、メダルを獲得することはできませんでした。6月上旬の仕事の多忙さと、BERTが主流となったあたりからついていけなくなっていたのが理由です。2度メダル獲得に失敗することとなり、今度こそはという想いが強くなっていました。

また、勉強会にも積極的に参加していました。同じような境遇の方と話すのはすごくモチベーションがあがりますし、現場の人の話を聞くことでキャリアのイメージが明確になっていったと思います。

6カ月目(2019年7月)

  • Kaggle犬コンペ参加(のちに撤退)
  • CNNの勉強
  • 勉強仲間を見つける

7月はKaggleの画像系コンペに参加するべく、CNNの勉強を中心にしていました。当時は画像系のコンペしかなく、メダルを獲るためには画像系のスキルが必要でした。一番締め切りが近かった犬コンペに参加していましたが、ルールに納得がいかない点が多く最終的には撤退しました。(先進的なコンペだったので、仕方ないと思っています)

また、Twitterやイベントで知り合った方と数人で勉強会をしたりもしました。一人で勉強していると詰まる部分も多いのですが、議論をしていると解決できることも多く、ディープラーニング周りの勉強がかなり捗りました。

↑こんな願望をツイートしたら声をかけていただき、言ってみるものだなと感じました。

7カ月目(2019年8月)

  • LINE AI RUSH参加
  • Kaggle APTOSコンペに参加

8月は、LINEが主催している AI RUSH 2019というコンペに参加していました。詳細は別の記事に譲りますが、5位(100チーム中)に入ることができ、大きく自信になりました

AI RUSH 2019(LINEコンペ) に参加してきました

一緒に勉強会をしていた方とチームを組んで参加しましたが、意見交換をするのはすごく勉強になりました。また、Kaggleと違ってカーネルがないので参考にするようなものもなく、0から考えてモデルを作っていく力は養われたかなと思っています。

LINEコンペの合間にはKaggleのAPTOSコンペを進めていました。シンプルな画像分類のタスクということもあり、初心者の自分にとっては比較的取り組みやすいコンペでした。メダル圏内には届いていませんでしたが、今まで参加したどのコンペよりも時間的・精神的に余裕をもって取り組めていました。

8カ月目(2019年9月)

  • Kaggle APTOSコンペで銅メダル獲得
  • 転職活動開始

9月の上旬はAPTOSコンペに注力していました。勉強会で知り合った方とチームを組ませていただき、銅メダルを獲得することができました。公開カーネルを含むアンサンブルでスコアを伸ばしたのであまり褒められた内容ではないかもしれませんが、勉強開始当初から目指してきたKaggleのメダルだったのすごくうれしかったです。

目標としていたメダルを獲れたので、9月後半から早速転職活動を開始しました

9カ月目(2019年10月)

  • 内定の獲得

転職活動を開始してから約3週間して、第一志望の企業から内定を獲得することができました。未経験からの転職ということで苦戦は覚悟していたのですが、想定よりも早く活動を終えることができました。

転職活動について

概要

大手の転職エージェント2社と、IT系に強い(らしい)エージェント1社を利用して活動をしました。

  • 書類応募:約35社
  • 面接に行った企業:10社
  • 内定:1社

離職していたこともあり、多めに書類を出して色々な企業の面接を受けさせていただきました。第一志望の企業より内定をいただけたこともあり、非常に魅力的ながらも途中で辞退させていただいた企業がいくつかありました。売り手市場かつ成長市場ということが関係しているのだと思いますが、非常に恵まれた転職活動でした。

企業選びの軸

「データサイエンティストとして一番スキルを伸ばせそうな会社はどこか」という点を軸に活動していました。28歳というタイミングでのキャリアチェンジということもあり、細かな待遇などは気にせず自分がデータサイエンティストとして一番早く成長できそうなところを選びました。

最終的に選んだ企業は、

  • データの受託分析を専業で行う会社
  • データサイエンティストを数十名単位で抱えており、困ったときに聞ける環境がある
  • 大企業相手の導入実績も豊富で、先進的な取り組みも多い

という願ってもない環境でした。

ちなみに、データサイエンティストと近い職種としてAIエンジニアがありますが、私はエンジニアリングよりもビジネスサイド(課題の定義など、分析の上流工程)に興味があったので、データサイエンティストを目指すことにしました。(転職活動の初期では、どちらも見ていました)

評価された点

想像になる部分が多いですが、面接での感触などから、主に以下の点を評価いただけたのかなと思っています。

  • 継続的に勉強を続けており、成果を出していること(Kaggleのメダルを獲得など)
  • 基本的なIT知識があること(情報処理資格の取得や、社内SEとしての業務経験)
  • 前職や前々職での実績(自分で考えて行動した成果)
  • 資料作成やプレゼンの実務経験があること

特にKaggleのメダルは話題に上がることが多く、評価された大きなポイントかなと思っています。やはり勉強してきた結果を目に見える成果として出せていることは大事なのだと感じました。

それ以外で言うと、ビジネススキルに関することは多く聞かれました。データサイエンティストは基礎的なデータ分析スキルがあった上で、コミュニケーションや資料作成、問題解決の考え方などが大事になってくるのだろうと思います。

足りなかった点

反対に、以下の点はマイナス評価になったと思います。

  • SQLの経験不足
  • Linuxの経験不足
  • GCPやDocker等の経験不足
  • 仕事を辞めてから転職活動をしたこと

特にSQLの利用経験は多くの面接で聞かれたので、勉強しておけばよかったと思いました。Kaggleばかりやっていておろそかにしていたので、転職活動をしながら勉強していました。

また、エンジニアリング周りのスキル不足もマイナスポイントになったかなと思っています。特にAIエンジニアを目指す方は面接でかなり聞かれるのではないかと思います。未経験の場合は作ったモデルをアプリケーションに組み込むなど、実装力まで示せないと辛いのかなと感じました。

仕事を辞めてからの転職活動についても面接で聞かれることが多かったので、懸念されているのかなと感じました。

やってよかったこと

  • とにかくコードを書く、問題を解くことを重視したこと
  • Kaggleのメダルという明確な目標を設定して取り組んだこと
  • 勉強記録をつけること

不完全でもとにかくコードを書くことは大事だなと感じました。ひたすら書いていくうちに、いつの間にか慣れているということが多かったです。

Kaggleのメダルという明確な目標を早い段階で設定できたのも良かったと思っています。があってこそ日々の勉強もモチベーションを維持しつつできたのかなと思います。

勉強記録もやってよかったと思っています。Twitterでは勉強記録を呟くbotみたいな感じでしたが、色々な方と交流させていただきモチベーションの維持することができました。

こうすればよかったこと

  • SQLを早めに勉強しておくこと

SQLは必須なので、転職活動前にきちんと勉強しておくべきでした。。入社前に少しでもできるようになろうと、勉強しているところです。

これから

データサイエンティストとして働けることが決まり、ひとまずほっとしています。

ただ、これはあくまでスタートラインであり、転職が成功か失敗かを決めるのは自分の頑張り次第です。成果をきちんと出していけるよう、さらに勉強を続けていかなければと思っています。Kaggleに引き続き取り組みつつ、早くExpertになりたいなと思っています。(ゆくゆくはMasterに。。)

 

最後に

この度の転職にあたっては、本当にたくさんの方にお世話になりました。

  • 無職になることを許してくれた妻
  • 転職エージェントの方々
  • 面接をしていただいた企業の皆様
  • コンペに一緒に取り組んだメンバー
  • Twitterや勉強会でお会いした方々

感謝の気持ちを忘れず、データサイエンティストとして早く1人前になって少しでも恩返しできればと思っています。

ご覧いただきありがとうございました。

参考

転職エントリ

化学系研究者が完全未経験からWeb系自社開発企業に転職するまで

→転職に当たっての目標設定などが細かく書かれており、すごく参考にさせていただきました。同世代ということで親近感もありました。

営業マンが1年でSEになって機械学習エンジニアに転職する話

→同じく未経験からAI系へのキャリアチェンジということで、すごく共感する部分が多かったです。すでにKaggleMasterになられていて遠い存在ですが、少しでも追い付きたいです。

Pythonではじめる機械学習

機械学習プログラミング 達人データサイエンティストによる理論と実践

はじめてのディープラーニング

ゼロから作るディープラーニング

PythonとKerasによるディープラーニング

Kaggleチュートリアル

そのほか

事業会社と受託会社・コンサル会社の違いについて

→企業選びの時に参考にさせていただきました。

<実践>はじめてのKaggle体験記

→Kaggleに挑戦する過程が細かく書かれていて、すごく励みになりました。

コメント

タイトルとURLをコピーしました