paiza開発日誌

IT/Webエンジニア向け総合求人・学習サービス「paiza」(https://paiza.jp ギノ株式会社)の開発者が開発の事、プログラミングネタ、ITエンジニアの転職などについて書いています。

開発経験ゼロの営業がPythonと機械学習に挑戦してみた話


有吉です。昨年入社したpaiza(ギノ) の営業です。

paizaはITエンジニア向けの転職サービスですが、最近は「機械学習関連の求人を募集したい」という企業が増えてきたなと感じます。もちろん、エンジニア側にも「機械学習関連の仕事がしたい・勉強がしたい」って人は多いですよね。営業をやっていてもそれは感じます。

私はエンジニア職ではないので、最初は「機械学習なんて超難しいんでしょ~自分には絶対無理」などとと思っていました。でも、営業としてお客様とお話ししていると、「やっぱpaizaの営業ならもっと知識がないとダメでは…?」と感じることが多くなってきて、9月ぐらいから少しずつ勉強をしています。

今回は、営業の私がなぜ機械学習を勉強しているのか、実際に学習した内容と方法、勉強してわかったこと・役に立ったことなどを書いていきます。

■営業なのになぜ機械学習を勉強したのか

一言で言うと、「営業先によりよい提案がしたいから」です。

エンジニアを募集している企業へ行くと、最近は本当に人工知能・機械学習・ディープラーニング・自動振り分け・ビッグデータの分析…などなどのワードをよく聞くようになりました。もちろん、そういったスキルを持ったエンジニアを採用したいという話も。

勉強を始める前はこれが結構しんどくて、まず、採用担当者の方からお聞きしたお話や技術的な用語が理解できませんでした。まあ、聞いた話を持って帰ってただ書き起こすだけでも求人票の形にはなりますから、知識がなければ完全に成り立たないわけではありません。

ただ、それだけでは「どんな要件の求人を出すべきか」「どんな応募者にアピールすべきか」といった、よりよい求人作成・ひいては採用活動における提案もできないまま終わってしまいます。そこでまず、「もっと勉強して、もっといい提案ができるようになりたいなぁ」と思いました。

加えて、私はこの仕事を通して「専門性の高い職種の人や優秀な人たちを、そのスキルを正しく評価してくれる企業と結び付けたい」と思っているのですが、最近は「これを実現するためには自分自身の知識の幅ももっと広げないといけないなー」と悶々とする場面が多かったんですよね。

そんな中、paizaラーニングPython×AI・機械学習入門編が公開されたので、これを使って勉強してみることにしました。

実際に何をやったのか

paizaラーニングのPython入門編

Python×AI・機械学習入門編」はPython入門編が理解できているぐらいの人を対象にしているそうなので、まずはPythonの基礎を学ぶためにここから始めました。私みたいなプログラミング初心者の方は、同様にPython入門編から入っていくのがいいと思います。(逆にある程度プログラミング経験がある方はいきなり機械学習入門に入ってもいいのかも)

以前paizaラーニングの「Ruby入門編」をやっていたおかげか、Pythonの使い方自体にそこまでつまずくことはありませんでした。

私が初めてプログラミングを勉強したときの話は、こちらの記事に書いています。
paiza.hatenablog.com

paizaラーニングのPython×AI・機械学習入門編

Python入門編をやってから、paizaラーニングのPython×AI・機械学習入門編をやってみました。(現在Python入門編は常に全編無料paizaラーニングのPython×AI・機械学習入門編は11/1(木)まで全編無料なので、興味のある方はぜひ見てみてください)

こんな感じで声優の上坂すみれさん演じるスヴェータ先生のもと、動画と演習課題を通して、初心者でも手を動かしながら機械学習の基本を勉強できます。

初心者ながら、Ruby入門編Python入門編Python×AI・機械学習入門編というのは、少しずつレベルアップしていくのにいい流れだったかな?って気がしています。一応、教師あり学習による画像分類までは実践することができました。

ちなみにPython入門編Python×AI・機械学習入門編を終えるまで、平日週2×2時間(+土曜日数時間)を1ヶ月半ぐらいかけてやりました。(もちろんプログラミング経験がある人なら、もっとずっと早く終わるはず…)

勉強をしていて難しいと感じたこと

初めて触れるJupyter Notebookや、Numpyなどのライブラリが出てきて、最初は少し戸惑いました。ただ、そのへんは動画講座なので、何度か繰り返し見ることで少しずつ理解を進めることができたと思います。

あと、私は見本のコードや使っている関数が何をやっていて何を意味しているのか、逐一理解しようと立ち止まってしがいがちで…。

でも、以前初めてプログラミングを勉強したときに、「コードの書き方の意味をすべて理解しようとすると止まってしまうから、ある程度"これはこういうものなんだ"と思って先に進んだほうがよろしい」「自分の手を動かしてコードを書いて結果を見て、何度か使ってみたほうが理解につながる」といったことがわかったので、今回はそれを意識して進めていきました。

先にRubyを勉強していたからか、Pythonの書き方自体はそれほど難しいとは思わずに済みました。

初めてPythonと機械学習を学んでわかったこと・役に立ったこと

複数のプログラミング言語(RubyとPython)の違いを実感できた

RubyをやってからPythonをやったので、プログラミング言語によって書き方に違いがあるのを実感できました。

Rubyは割と自由に書けるからその人の癖が出やすいけど、Pythonはインデントが重要で、誰が書いても同じコードになりやすいんですね。個人的にはPythonのほうが、すっきりしていて読みやすい&書きやすいと感じます。

ただ、エンジニアから「RubyやPythonは初心者でも書きやすいLL言語だけど、C言語やJavaなどのコンパイラ言語になると記述量がかなり多くなる」という話も聞いたので、今後はその辺の言語も勉強してみたいです。コンパイルしてみたい!

Pythonライブラリの使い方がわかった(機械学習で使われる理由もわかった)

Jupyter NotebookやNumpy、Matplotlib、scikit-learn、Pandasなどをひととおり触ることができたので、とりあえずこれらが何者なのか、どうやって使うのかがわかりました。(もちろんまだまだすべてを使いこなせるレベルではないですが)

これらの計算やグラフ描画、データの取り扱いなどに便利なライブラリが揃っていることもあって、機械学習ではPythonが人気なんですね。今までは、ただ「機械学習はとにかくPython」が一般論だと思っていました…。

入門レベルの内容を知っておくだけでも、営業先でライブラリや専門用語の話が出てきても怖くなくなったので、よかったなと思います。人間、わからないものって怖いですからね…。

教師あり学習の基本的な概念がわかった

勉強する前は、教師あり・なし学習、分類・回帰などの用語を聞いたことある程度で、実際にどんなものなのかは全然わかっていませんでした。

今は、とりあえず「漫画の画像に特定のキャラクターがいる・いない」を分類するところまではできたので、教師あり学習による画像分類の基本的な仕組みは理解できた…?と思います。

自分で画像分類をやってみた感想なんですが、「これってどれだけのデータを学習させて、結果の精度をどれだけ向上させるか、求め出したら果てしないよな…」と愕然としました。(どこかで天井に当たるのかな?)

私は学生時代の選考が生物系で、主に植物の研究をしていたのですが、そういった実験や研究にも通じる部分はあるなーと思います。ただ、ちょっと抽象的な話ですが植物って個体差としてグレーゾーンとして丸めざるを得ないケースもよくあるんです。その点、データが相手だと黒か白かでグレーはないから抜け道がないし、これを仕事にするのって本当に大変な道だろうなと思いました。

機械学習やってる人たちのすごさがわかった

上の続きにもなりますけど機械学習を仕事にするのって、Webサービスなどプロダクトの開発業務とはまた違ったマインドが必要ですよね。ほぼ研究だし、実験だし…。

私も一度は大学院に進んで研究の道を選んだものの、やっていくうちに「研究結果やデータと向き合い続けるのは自分には向いていない…」と思って中退した身なので、そういう道を選んだ人を本当に尊敬しています。

加えて、こうしたスキルを持っている人たちは絶対にもっと評価されるべきだと思うので、今後もエンジニアの皆さんを正しく評価してくれる企業と結びつけるお手伝いをしていきたい、と改めて思いました。

まとめ

というわけで、開発業務経験のない私が機械学習に入門してみた話でした。

もちろん難しいアルゴリズムまでが理解できたわけではありませんが、それでも入門的な内容を知った上で、機械学習についてイメージができるようになったのは大きいと思っています。

特に機械学習で人気のPythonライブラリを使ったり、教師あり学習による画像分析を実際にやってみたことで、具体的にどんな技術がどんなふうに使われているのかがわかってよかったです。

エンジニアの皆さんからすると「まだ入門の手前レベルじゃん」って感じかもしれませんが…それでも、何も知らなかった未経験の営業からすると、大きな一歩を踏み出せた気がします。

もちろんまだまだなのでこれからも勉強は続けたいです。数学とかも勉強し直したいな…。

paizaラーニングのPython×AI・機械学習入門編は、開発業務経験のない私でもできたので、現役エンジニアの方やプログラミング経験のある方ならさらにわかりやすく機械学習について学ぶことができると思います。CV:上坂すみれさんですし、11/1(木)までは全編無料ですから、興味のある方はのぞいてみてください。(宣伝)

詳しくはこちら





paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。





※このブログで紹介しているキャンペーンやイベント、およびサイト内の情報については、すべて記事公開時の情報となります。閲覧されたタイミングによっては状況が変わっている場合もございますのでご了承ください。

ITプログラマー・エンジニア転職・就活・学習のpaiza

プログラミング入門講座|paizaラーニング

PHP入門編Ruby入門編Python入門編Java入門編JavaScript入門編C言語入門編C#入門編アルゴリズム入門編

エンジニアのためのプログラミング転職サイト|paiza転職

プログラミング スキルチェックエンジニア求人一覧

未経験からエンジニアを目指す人の転職サイト|EN:TRY

プログラミング スキルチェックエンジニア未経験可求人一覧

エンジニアを目指す学生の就活サイト|paiza新卒

プログラミング スキルチェックエンジニア求人一覧

ブラウザを開くだけで エディタ、Webサーバ、DB等の開発環境が整う|PaizaCloud