ShogoTagami未経験でもGoogleからオファーがもらえたポイント先日、こんな記事がバズって各所で話題になってましたよね。ポーカー界隈でもとても有名な方で、ちらっと伺ったことがある程度ですが、「ほあ〜すごいな〜」という感想しか湧いてきませんでした。医師を退職し、ソフトウェアエンジニアに転職します。自分にとって大きな転機であったのと、とても大変な道のりであったので、私という人間が辿った道筋を最初から最後までちゃんとまとめておきたいと思い、転職エントリを書きました。2019しかし、この記事を読んで感じたこと、そして第三者から聞いた話と合致する重要なポイントがあったので、今回それをお話しします!いまプログラミング学習中の方、未経験からエンジニアになろう!という段階の方は、「なんだただの天才か」と思わずに、素直に受け止めたほうが成長すると思いました。はじめにLillianさんの記事をもとに経歴をカンタンにまとめさせていただきます。卒業後は医師として働くポーカーで活躍する傍ら、Pythonに出会う競技プログラミングに興味を持つエンジニアを志し、転職活動Googleに入社ご覧のとおり、一般人では想像つかないような経歴なので、話すこともはばかられるのですが、、ただこれを「天才のお話」として片付けるのは勿体無いと思いました。私たちでも十分に学べること、参考にできることがありました。わず企業から求められるエンジニアの共通点」があると思っていて、これを突き詰めたひとが結果として転職市場でも強いと感じました。“圧倒的な”吸収力、自走力があること低レイヤーの技術、アルゴリズムに強いことLillianさんは元々プログラミングに触れていたという経験や、地頭の良さばかりが評価されていますが、その根源には上記のような資質が影響しているように思います。いまからそのような資質を身につけることは決して簡単ではありませんが、それと同等程度の行動を起こすことはできるのでないでしょうか。好奇心が揺さぶられることはなに?プログラミング学習が楽しい!という期間がずっと続き、モチベーション高くいられる間に様々なことを吸収できることが望ましいです。一般的に独学でプログラミング学習を続けることはなかなか難しいのではないでしょうか?エンジニアになれば日々の仕事のなかで学ぶことが出来て、独学も捗るかもしれません。プログラミング学習に限らず、勉強をモチベーション高く継続させるポイントは3つあると思います。これは実際に弊社の東大卒の先輩エンジニアからもお話いただいたこととも被ることがあったので、信用できると思います。第一に楽しむこと、そして自ら好奇心を掻き立てること見える化すること、達成感を覚えること人に評価させること、たとえ非難されてもくじけないこと最初の「好奇心を掻き立てること」はプログラミング学習でも大事なことです。「フレームワークの中でどんなロジックが走っているんだろう?」「CPUのメモリってどういう仕組みなんだろう?」と、自分が学んだことの裏側や関連することをどんどん学んでいくこと。すると、受け身な学習姿勢から、積極的に自分から情報を取りに行くようになりますよね。プログラミングスクールで覚えが悪い人がいましたが、その人は自分で調べたり悩んだりすることを拒んで、人に教えてもらってばかりいました。「好奇心」を自分で掻き立てることで、モチベーション高く情報を取りにいくことができます。いまの仕事、学習内容で好奇心を掻き立てられることはありますか?もしあればそれをより拡大していけるといいですね!なければ、それを見つけるよう努力してみましょう。どんなに小さなことでも構わないと思います。私は春頃よりLillianさんと同じくAtCoderで競プロに好奇心を揺さぶられ続けては挫けてばかりいますw好奇心をかきたてる努力をする普段の仕事や、かんたんな勉強においてもその裏側を調べるようにすると、好奇心をかきたてることが当たり前になってきます。義務的に調べようとするのではなく、「これってなんだっけ?」という疑問から始める。すると、自然とそれを調べるようになります。簡単な例でいえば、Rubyの組み込みメソッドってなに?どこに定義されてるの?これをすらっと答えられるならOKですが、Rubyを勉強中の方や、それなりに使い慣れている方のなかにもすこし迷うことがあるのではないでしょうか。答えることができなければ、少し調べてみましょう!定義元を調べる方法から調べる必要があるかもしれません。吸収して、行動にうつすことLillianさんは医師の仕事が今度10,20年後も同じようなことばかりであることに不安を覚えて、エンジニア転職を志されました。その後にやったことは、プログラミングスクールに入ったり、プログラミング勉強ではなく、Linkedinなどを通じた転職活動でした。初めはカジュアル面談も無視されていた、とのことですが、そうした経験をはじめにしたことが大きな一歩だったように思います。準備をしてからエンジニア転職しよう!と思う人が多いのですよね。笑でも、実際に企業からどんな人、スキルが求められているのか?ということは分からないものです。未経験エンジニア転職の場合なおさらです。そこで、ある程度コードをかける状態になったら、いきなり企業に会いに行くことで自分を客観的に評価してもらる機会を得たほうがいいです。LillianさんはそこでGoogleからメールをもらったことがキッカケで次に進むことができました。そんなこと普通の未経験エンジニアはそうそうある話ではないのですが、Twitter経由でエンジニア募集中の企業から面談オファーをもらうくらいならよくある話です。それがダメでも、なぜダメだったのか?何を伸ばせばいいのか?を知ることができます。それを改善すれば、ゴールまで最短距離で到達することができます。第二新卒くらいの年齢のエンジニアの場合、2社目をどうやって探すか、転職活動をするかということは難しい問題です。いまの自分のスキルが転職市場においてどれくらい評価されるのか?ということはやはり一度面接、面談をいくつか受けないと分からないものです。最初に入った会社で得たスキルが実は外では評価されない...という話はよくあることです。SIerからコーダーへの転職が難しいという話も同じことだと思います。外に出よう!言えることはそれだけです。どんな技術でも共通することはなにか?エンジニアという仕事柄、技術の変遷についていく必要があります。低レイヤーの知識や、アルゴリズムに関する知識は比較的長い間変わらなず評価される傾向にあります。新しい技術を開発するような会社、事業の場合はそういった知識は「前提」として人を選びます。一般的な開発現場においても同様で、それらの知識がある/ないでは書くコード、技術選定力にも大きな差が生まれるのは事実です。具体的にはLilianさんも勉強されていましたが、アルゴリズムに関する勉強だったり、システム設計の分野ですね。このあたりはいくら勉強しても足りないくらいですが、基礎知識として勉強しておくといいかもしれません。コーディングテストがあるような会社の場合、このあたりが分かっているかどうかを見ることが多いです。やって勉強すればいいか?最低一つの言語をかけるようなレベルであれば、競技プログラミングだったり、本を読んだり、オンライン教材を学習するのがいいかと思います。Lilianさんが読まれていた本や教材をまとめておきます。共通して、アルゴリズム、Pythonあたりを集中して勉強されていたのが分かると思います。これらに興味があったから学習されていたのですが、このあたりが「強いエンジニア」の基盤になることは間違いありません。数学ができないんだけど...これは私も同じなので気持ちは分かります。笑しかし、実際にいま数ヶ月ほど競技プログラミングをやってみて、数学の知識が必要になることは全体の2,3割ほどです。上の人はそうではないのでしょうが。数学の公式を使って解きなさい、みたいな問題は全くないので、アルゴリズムを知っておけばなんとかなります。結論このあたりの学習において数学を知らなくても問題はありません!まとめLillianさんは元々努力されていたこと、経歴、地頭がよかったことなどが評価されて未経験からでもGoogleに入社されていましたが、そこから学べることはたくさんありました。今日からできることは自分が好奇心を掻き立てられることを探して、深堀して勉強していくことだと思います。いえば、競技プログラミングはいま参入者が増えている時期なので、始めるなら早いほうがいいです!目に見えてアルゴリズムの学習が進みます。私はAtCoderというサイトを使っていますが、簡単な本を一冊読んでみるだけでもいいかもしれません。あり】いまWEBエンジニアに人気転職サイト4選まだプログラミングスクール選びで悩んでませんか?現役エンジニア、フリーランスエンジニア、個人事業主が語る、プログラミング初心者〜エンジニア就職のアドバイスをまとめました。いう方へオススメする、最強の転職法は以下よりお読みいただけます!未経験からエンジニアになる方法をみるプログラミングスクールをでてもエンジニアにはなれません!残念ながら、プログラミングスクールを出れば誰でもエンジニアになれるわけではありません。【経験者が語る】仕事ができないならさっさと辞めた方が幸せな理由RECOMMENDこちらの記事も人気です。ひびのあおい(WEBエンジニア)本ブログメディアを運営しているWEBエンジニアです。短大卒からブラック企業に入ってしまい、うつ状態...。そこからプログラミングにハマってエンジニアとして自社開発企業にジョイン。