テックリーダーズの小松です。今回は、「転職を幾度と経験した僕が思う、フリーランスにとって「チャレンジしたい未経験の仕事」を大切にしたい理由」についてお話ししていきたいと思います。
アサインされたAI案件がもたらした転機
これまでの動画で、僕は自分の経歴について話してきたのですが、パチンコ開発の次に携わったのが、AIの開発でした。
特にAIの開発経験者でもないのに、やらせてもらえたことは、非常に貴重だったなと感じています。
この案件にアサインされた当初、僕はプログラミング言語のC++もできたのと、学歴が理系だったので、それが功を制したのかもしれません。
そこでは、SVM(サポートベクターマシン)と呼ばれる、いわゆる機械学習の分野を担当していました。
今日のAIと呼ばれるものは、主に機械学習のことを指していることが多いのですが、基本的にここの分野は数学の知識が必須となってきます。
教師あり学習と教師なし学習
機械学習の手法の一つに「教師あり学習」というものがあり、簡単に言えば、「読み込ませるデータの正解を機械に教えることで知能レベルと上げていく手法」というものになります。
これの反対で「教師なし学習」というものがあり、こちらは「読み込ませるデータの正解を教えずに自主的に判断させ、その知能レベルを上げていく手法」です。
で、僕自身は大学生の頃に授業の一科目として教師あり学習を専攻していた時期があったわけですよ。
それを面談の時に話したら、上手く案件元の採用担当者にアピールできたので、AI開発未経験者でも採用をいただくこととなりました。
この案件は僕の中で、「プログラミングの仕事ってやりがいがあるな」とはじめて思えたものだったので、人生の中で転機とも言えますね。
AI開発の内容
守秘義務があるので詳しくはお伝えできませんが、簡単に言えば、「AIを使って日本語を英語に翻訳するようなソフト」です。
その翻訳のデータをAIに学習させるときに使われたのが、SVM、つまり、教師あり学習の手法でした。
僕自身は特に英語が喋れるわけではないのですが、日本語と英語の翻訳ソフトを開発するという、ねじれ現象になっているのが、今思えば面白かったなという感じですね。
実際の開発では、既にC++で書かれているコードを解析していくのですが、今主流となっているRubyやPHPに比べると非常に可読性が低いんですよ。
それに加えてコードにもコメントが書いていないので、定義されている変数名が何を表しているのかを、理解するのにめちゃめちゃ苦労しました。
逐一ソースコードをデバッグしながら、変数名を解析して、なぜこの処理になっているかなどを読み解きながら開発していましたね。
人の書いたコードを解析するのが一番苦労するのですが、「こんなコーディングのやり方があったのか!」といったような感じで、かなり勉強にはなりました。(もちろん、早くコードを書き上げるのであれば、自分で0から書いた方がラクではあるのですが)
開発に正解はないけど、やりがいを感じられた
開発を進めていくと、初期の頃は開発精度が60%くらいだったのが、次第に上昇していき、93%までくらいまでになってました。
この開発自体に答えはありませんでしたが、コードを書きながら試行錯誤していくような、研究開発に携われたのは、かなり楽しかったです。
C++は正直コンパイルなどもあるので面倒くさい言語ですが、最近はPythonでやることが多くなってきていますよね。
AIを駆使したビッグデータ解析などの開発は、やりがいがあり、僕にとっては「エンジニアの仕事も捨てたもんじゃないな」と思えるものだったんですよね。
それまでは、「とりあえずプログラミングやっておけば、稼げるからいいかな」と思っていました。
まあ、実際に稼げてましたしね。単価でいうと、税別で75万とかだったので、収入としては80万くらい。
AIに関する数学的な学問の知識があるだけで、ここまで高単価になれるのかと、当時は正直驚いてました。
平均偏差値だけでいうと60くらいでしたが、数学だけは72前後だったので、得意ではありました。今でも、書こうと思えば学問的な数式などは書けるんじゃないですかね。
数学ができるというだけで、できる人がかなり限られてくるので、フリーランスの案件の中でも、必然的に高単価のものが多くはなります。
AI開発を通じて学んだこと
AI開発経験を通じて分かってきたのは、「その仕事をこなせる人が少ないほど、収入は高くなっていく」ということ。
一方で、「できる人がいない分、AI開発の案件自体も、まだまだ少ない」ということにも気がつきましたね。
次に携わる案件もAIがいいなと思い、エージェントに探してもらいましたが、マッチするようなプロジェクトはなかったんですよ。
案件にこだわりすぎて収入が途絶えるのも困るので、次に参画したのがweb系ですね。
当時はAIの開発をしつつも、Perl(パール)などのweb系言語の勉強もしていたので、運よくそっち方面にシフトできたのもあります。
今思えば、
行き当たりばったりで => 会社を辞めた後に上京 => 何と無く仕事を探していた
という、すごい無謀な状況でしたが、たまたま運が良かっただけというのも大きいですね。
ちなみに、みなさんは会社をやめるのは、次の仕事を決めてからの方がいいですよ。
ただ焦るだけですし、ストレスもたまりやすいと思うので。
ただ、それでも自分が求める
- やりがい
- 収入
- やりたいこと
- 生活
などを理想に近づけるために自主的に選択していった感覚はありますね。
それを日々試行錯誤して軌道修正した結果、いまに繋がっているという感じです。
このような意識を持つと、自分がイメージしている未来に近づけると思うので、参考にしてみてください。
最後に
最後までお読みくださり、ありがとうございました。
ここまでのお話を聞いて、
「自分もフリーエンジニアを目指したくなった!だけど、その前に色々と相談したいな。。」
「プログラミングをどのように学習すれば、最短でスキルが身に付けられるのか、その方法を教えて欲しい」
そんなあなたは、下記のボタンから私のLINE@に登録してみてください。一人一人の状況にあったアドバイスをしています。
それでは今回はこのへんで。ありがとうございました。