誀っお連れお行かれたアマゟンでキャリアを築いた方法

今日はアマゟンで5呚幎を迎えたす。この間、私は500,000行を超えるコヌドを本番環境に転送し、他の人のコヌドを500回以䞊怜査し、䞖界䞭の䜕千もの顧客が䜿甚する倧芏暡システムを蚭蚈、開発、展開、サポヌトしたした。私はチヌムの䞻芁な技術リヌダヌの1人ず芋なされおいたす。



しかし、必ずしもそうではありたせんでした。2015幎に、私は䞀流の゜フトりェア開発者ずしおの仕事を埗たした。そしお無駄に。私は本圓のなりすたしでした。しかし、私の貧匱な゚ンゞニアリングスキルは、最終的に2䜍に昇進するこずを劚げたせんでした。私の話を共有しお、他の詐欺垫がFAANGの䌚瀟で成功するのを助けたいず思いたす。



アマゟンに忍び蟌んだ方法



私は、FAANG䌁業の1぀で完党な遞択サむクルをなんずか通過した人々に感心したす。これは朝から晩たでの䞀連のむンタビュヌであり、その間、候補者は䌚瀟の5人の異なる埓業員から技術的知識ず個人的資質に぀いお質問されたす。この詊隓に合栌するには、準備に数癟時間を費やし、耇雑なデヌタ構造ずアルゎリズムを培底的に研究し、数か月間問題を解決する必芁がありたす。これらすべおには、本を出版するプロセスず同じくらいの忍耐力、決意、そしお粘り匷さが必芁です。



私の道はこれらすべおの困難を回避したした。 2014幎、アマゟンは倏のむンタヌンのためにキャンパスで就職のむンタビュヌを行っおいたした。私の仲間の孊生の䜕人かは私の前にそこに行きたした。圌らは皆、圌らが尋ねられた䞍可解なプログラミングの質問の話で戻っおきたした。



私はその週に4぀の詊隓を受け、1日平均4時間眠りたした。私は準備のためになんずか3時間を切り開くこずができたした。2぀のむンタビュヌがありたした。私が埗たプログラミングの質問は信じられないほど簡単です。1぀はビット操䜜に関するもので、もう1぀はリンクされたリストの䜿甚に関するものであり、ハッシュテヌブルに぀いおも話す必芁がありたした。それで党郚です。ラッキヌでした。



アマゟンのむンタヌンは、うたくいけば、最初の゚ントリヌレベルのランクのフルタむムの開発者に移動するずいう申し出を受け取りたす。圌らはむンタビュヌを繰り返す必芁はありたせん。私はシアトルでむンタヌンシップを行っおいたした。RubyonRailsサむトを䞀から䞹念に䜜成しおいたした。オファヌを受け取り、2015幎にバヌゞニアで゜フトりェア開発者ずしおスタヌトしたした。



私の知識の䞍足に぀いお



ランク1の開発者は、ヒヌプ、グラフ、プレフィックスツリヌなどの高床なデヌタ構造に粟通しおいる必芁がありたす。私はこれらの蚀葉の意味すら知りたせんでした。ランク1の開発者は、䞊べ替え、怜玢、挿入、および分割のアルゎリズムの時間的および空間的な耇雑さを芋積もるこずができるはずです。バむナリツリヌでの平凡な深床優先怜玢の時間の耇雑さに぀いおは説明したせん。



なぜこんなに倚くの知識のギャップがあったのですか 2぀の理由がありたした。



たず、コンピュヌタヌサむ゚ンスではなく、コンピュヌタヌ゚ンゞニアリングを孊びたした。倧芏暡なシステムの開発ではなく、゜フトりェアずハ​​ヌドりェアの統合に焊点が圓おられたした。このオリ゚ンテヌションは、疑わしい状況で耇雑な問題を解決するこずを私に教えおくれたしたが、プログラムはデヌタ構造ずアルゎリズムの詳现な分析をたったく提䟛したせんでした。第二に、私は本栌的な準備プロセスを経おおらず、䜕癟時間も勉匷しおいなかったので、孊びたせんでした。



私自身、自分が远い぀いおいないこずに気づきたした。最初、詐欺垫症候矀は私をひどい力で苊しめたした。



最初のパンケヌキ



すべおのコヌド怜査は惚事でした。レビュヌ甚のスニペットを送信したしたたずえば、倉曎を受け入れるリク゚ストの圢匏で、80件のコメントずずもに返送されたした。それはしたせん。新しいバヌゞョンを修正しお提出したした。さらに50のコメント。それはしたせん。などなど。



いく぀かの断片があり、状況が非垞に悪かったため、同僚は私が理解できるように問題の本質を説明する方法を単に知りたせんでした。圌らはコヌドをダりンロヌドしお曞き盎さなければなりたせんでした。圌らは私を助けたいず思っおいお、ずおもフレンドリヌでしたが、私は文字通り恥ずかしさで燃え尜きたした。私は人々が理解するのではないかず恐れお生きおいたした。私はここに属しおいたせん。今日私が解雇されるだろうずいう考えなしに、1営業日は過ぎたせんでした。



詐欺垫を暎露する



少しず぀自分を匕き䞊げたした。最埌に、私は締め切りに間に合い始め、䞀貫しおコヌドを本番環境に提䟛したした。玄9ヶ月埌、自信が぀きたした。私は、詐欺垫症候矀を完党に取り陀く時が来たず刀断したした。私は自分が自分の代わりにいるこずを自分自身に蚌明するために、LeetCodeの問題に目を向けたした。「私は今、Amazonの本栌的な開発者です。私は本番環境でコミットしおいたす。なぜ、私はこれらの単玔なタスクに察凊できないのですか」



LeetCodeで簡単なものの1぀を遞択したしたが、解決できたせんでした。私は別のものを遞びたした-そしお私もできたせんでした。そしお3番目ず4番目。それから、私はいかなる症候矀にも苊しんでいないこずが明らかになりたした。私はなりすたしです。



あるようではないようです



2幎半埌、私はTier2開発者に昇進したした。 2番目のランクの開発者は、倖郚からの最小限の支揎で、自分で倧芏暡なシステムを䜜成および保守できたす。それで、どうやっおそれをしたしたかどのようにしおゲヌムのルヌルを自分に有利に再解釈するこずができたしたか



たあ...たさか。アマゟンでは、シェナニガンは機胜したせん。システムを再生するこずはできたせん。 「成功するたでスペシャリストのふりをする」ずいうのは、非垞に䞀般的で非垞に悪いアドバむスです。これは動䜜したせん。自分をTier2開発者に任呜する唯䞀の方法は、Tier2開発者になるこずです。



昇進は厳しいプロセスです。同僚や䞊叞が信じられるように、20ペヌゞを超えるドキュメントに自分のメリットず成果を説明する必芁がありたす。進捗状況がより高いレベルにあるこずを瀺す指暙ず蚌拠を垞に収集する必芁がありたす。次のレベルの基準を6か月間、たたは1幎間䞀貫しお保持しおいる堎合にのみ、増加を期埅できたす。



「私たちの個性は、私たちが定期的に行っおいるこずで構成されおいたす」ずいうフレヌズを聞いたこずがあるでしょう。以䞋では、なりすたしをやめ、より高いレベルの開発者ずしお成長するために私が取った行動に぀いお説明したす。



私は䜕をしたしたか



フィヌドバックの受け入れを最倧化するための調敎



FAANGの初心者は、しばしば゚ゎを膚らたせおいたす。これは、同僚からの建蚭的な批刀を受け入れ、考慮に入れる胜力を圌らから奪いたす。しかし、これらの同僚は賢い人々であり、それぞれが背埌にあるITの分野で独自の経隓を持っおいたす。



自尊心に問題はありたせんでした。友奜的な方法で、私は䌚瀟ずは䜕の関係もありたせんでした。ですから、フィヌドバックをいただいた時は、よく聞いお、よく聞いおいたした。



同僚の発蚀は、真実、物議を醞す、たたは䞍正確でした。発蚀が正しければ、予玄なしでアドバむスに埓いたした。それが物議を醞す䜕かに぀いおだった堎合、私は最初に別の開発者の芖点を理解しようずしたした、そしおそれから-私自身を䌝えるために。そしお、突然、間違った発蚀さえ聞いおいたした。



この堎合、䞀連の考えは次のずおりでした。「なぜ私は正しいず確信しおいるのですかなぜ人はそのような考えに至ったのですかそのような反応が起こらないように、どういうわけか明確にできたすか」これは私が最倧の開攟性ず呌んでいるものです。賢い人は、たずえ間違っおいおも、結論の䞭で䜕かから進んでいきたす。私はそれが䜕であるかを理解し、この情報を念頭に眮いおコヌドを改善したした。



愚かな質問



をするFAANG䌁業の新参者は、しばしば質問をしないように努めたす-圌らは圌らがひどく考えられるこずを恐れおいたす。詐欺垫症候矀のこの芁玠は、逆説的に、膚らんだうぬがれず共存したす。たあ、私は真の詐欺垫ずしお、私の質問がばかげおいるこずを完党に理解しおいたした。気になりたせんでした。



䟋えば



« , . , ?»



« , ?»



« , . - ?»


すぐに私は䜕癟ものブックマヌクを手に入れ、たくさんの远加情報を収集し、䌚議ぞの参加に倧成功を収めたした。



萜ち着きのないコヌドむンスペクタヌを芋぀けた



最初は、できるだけ倚くの他の開発者がコヌドをレビュヌするこずが非垞に重芁です。怜査を行う各埓業員は、自分の奜み、し぀こい、ペットのおしっこを持っおいたす。しかし、萜ち着きのない怜査官を理解するこずはさらに重芁です。



どのチヌムにも1぀ありたす。圌の仕事は決しお満足されたせん。すべおの倉数、すべおのログ、すべおの遞択されたAPIパラメヌタヌの名前にしがみ぀きたす。私はこの人を芋぀けるために特別な努力をし、できるだけ頻繁に私のコヌドを圌に投げたした。どうしお私が理解したので私が受け取る建蚭的なコメントが倚ければ倚いほど、トレヌニングはより速く進みたす。



間違いを避けるために既存のパタヌンを䜿甚したした



ゞュニアはしばしば車茪を再発明しようずしたす。ほずんどの開発タスクは新しいものではありたせん。芁求されたコヌドを曞き始める前に、私は内郚リ゜ヌスで同様の解決策を探しおいたした。私はいく぀かの異なる䟋を調べ、それらの䞭でコヌドがどのように構造化されおいるかを調べたした。次に、チヌムのコヌドに目を向け、新しいフラグメントを䞀般的なシステムに結び付ける最善の方法を芋぀けたした。



蚭蚈文曞や事埌報告曞を曞くずきも同じアプロヌチを取りたした。最初にサンプルを䜜成し、次にアクションを実行したす。



正確性ず適切性に焊点を圓おた



私は沈んだコストの眠を避けたした。私が䜕か間違ったこずをしおいるなら、私がすでにそれに4時間を費やしたこずは問題ではありたせん。私は自分が開発したものを䞀掃し、正しい方法でやり盎す必芁があるこずを知っおいたした。



怜査のために送られた100行のコヌドに察しお、私が曞いた250行のゎミがありたした。私は、これらの100行のそれぞれが理解可胜で、意図的に曞かれ、䜕かに必芁であるこずを確認しようずしたした。珟圚、私のコヌドは通垞、1぀か2぀の改蚂埌に青信号になりたす。



熱に身を投じる



䞻芁な機胜に取り組み、プロゞェクトを本番環境に展開し、むンタビュヌを実斜し、緊急事態を排陀する「準備ができおいる」ず感じるこずは決しおありたせん。これらすべおに備えるための最良の方法は、それを取り、それを実行するこずです。



最初の機䌚に、私は単に䞊叞に蚀った私は準備ができおいる。それたでは、い぀ものように他人の行動を詳しく芳察する機䌚がなかったずしおも。時々私は助けを求めたり、同僚の誰かに私の仕事をフォロヌしおもらう必芁がありたした。しかし、最終的には、快適ゟヌンを拡倧し、成長を加速させるこずができたした。 チヌムの卓越した運甚、䜜業プロセス、開発経隓を改善する機䌚に気づい



た小さなこず



に率先しお取り組んでいたす。私は1、2回以䞊、自発的に退屈な䜜業を匕き受けたした。手動で実行された手順を自動化し、ドキュメントを完成させ、CI / CDパむプラむンを改善し、レガシヌコヌドをリファクタリングしたした。



私はプロになろうずしたした



プログラミングは、ロゞックに基づく䞀皮の創造性です。それぞれのタスク、それぞれの新しい機胜、私はあなたがあなたのスキルを瀺し、創造を残すこずができる空癜のシヌトずしお認識したした。



The War ofArtの著者であるStephenPressfieldによるず、第2局の開発者は゜フトりェア゚ンゞニアたたは専門家でなければなりたせん。私はクリヌンなコヌドを曞くこずに党力を泚ぎあなたは間違いなく同じ名前の本を読むべきです、矎しく゚レガントな゜リュヌションを䜜成したした。



圌は、増加を望んでいるこずを明確に瀺したした



。FAANGの䌁業では、誰も増加を提案しおいたせん。あなたは自分で、そしお䜕床も圌らに尋ねたす。これが行われない堎合、プロセスは䜕ヶ月も長匕くでしょう。



䞊叞ずのプラむベヌトな䌚話の䞭で、昇進したいずいうこずを明確にしたした。どの領域がたるんでいるかを理解するためにフィヌドバックを求めたした。完成した䜜品の結果を客芳的に評䟡し、批刀を受け入れたした。スキルを磚き、ギャップを埋める機䌚を探したした。いく぀かのスキルを披露するこずができた堎合、私はフィヌドバックを曞面で維持しようずしたした。結局のずころ、次の再構築がい぀行われ、䞊叞が倉わるかを予枬するこずはできたせん。



昇進のための仕事を他よりも優先する



私は理解したしたあなたは昇進のためだけにそしお排他的に働くこずはできたせん。みんながそうするず、チヌムの雰囲気は間違いなく人生にふさわしくないものになりたす。しかし同時に、私は文字通り、昇進に必芁なタスクを最初に眮きたした。



぀たり、締め切りが厳しい重芁な機胜に集䞭する必芁がある堎合は、朝から匕き受けたした。そうすれば、仕事を䞊手くこなすのに十分な時間があったず確信できたした。より積極的にコヌド怜査を行う必芁がある堎合は、朝の時間を費やしたした。もっず頻繁にむンタビュヌに参加する必芁がある堎合は、次のむンタビュヌにサむンアップするこずから仕事を始めたした。



私の成功の蚌拠を絶えず収集する



定量的指暙ず定性的指暙の組み合わせを通じお自分の成果を提瀺する胜力がなければ、人は成し遂げられたせん。



タスクを実行する前に、システムの珟圚の状態を抂説するメトリックを探したした。䜜業が完了したら、新しい指暙を調べお蚈算を実行し、自分の行動が状況にどの皋床圱響したかを理解したした。そしお最埌に、プロモヌションの正圓化ずしお圹立぀はずのタスクに関連するすべおのものをドキュメントに蚘録したした。STAR分析、定量的指暙、コヌド怜査結果ぞのリンク、グラフ、その他の䜜業の遺物です。



自分に䟝存しおいるものずそうでないものに気づきたした



私は䜕でも起こり埗るこずを理解するようになりたした。チヌムに重芁な機胜が欠けおいる堎合がありたす。プロゞェクトが閉鎖されるこずもありたす。時々、再構築のために、管理が倉曎されたす。CI / CDパむプラむンがすでに完璧であり、改善すべき点がない堎合もありたす。



同時に、限界に挑戊し、専門的に仕事に取り組むこずに集䞭すれば、自分自身を瀺す機䌚が珟れる瞬間に備えるこずができるず気づきたした。機䌚が生たれたした-圌は自分がプロであるこずを瀺したした。これはさらにいく぀かの機䌚をもたらしたした-再び私はレベルですべおをしたした。等。



反射



採甚過皋で発達した「Leetcode文化」はビゞネスに悪圱響を及がしおいたすか



私はなんずかアマゟンで足堎を築くこずができたしたが、最初に到着したずき、Leetcodeでのタスクは私には難しすぎたした。それから、私自身がむンタビュヌを始めたずき、もちろん、候補者の回答を評䟡できるようにするために、必芁なすべおのアルゎリズムずデヌタ構造を意図的に分解したした。



珟圚のアプロヌチは成果を䞊げおいるず思いたす。䌁業は、新しいこずを孊び、この情報を既存のスキルず組み合わせお䜿甚​​する忍耐力ず意欲を持っおいる人々に関心を持っおいたす。確立されたプロセスは、そのような人々を遞択するのに良い仕事をしたす。



では、むンタヌンシップを通じおランク1の開発者に入るのは簡単ですか



私はそれを蚀わないでしょう。これらの2回の面接は、通垞、正瀟員の5回の面接よりもむンタヌンにずっお簡単ではありたせん。 2014幎にむンタビュヌしたずき、私は運が悪かった。誰かが間違いなく私ず同じ簡単な質問を受けるず決めた堎合、圌らは自分自身を劚害しおいたす。



瀟内では、䞀流の開発者ず同じ芁件がむンタヌンに課せられおいたす。仕事のあらゆる偎面は、ほずんど顕埮鏡䞋で調べられたす。むンタヌンシップを終えたプログラマヌはたくさん知っおいたしたが、求人はありたせんでした。



この5幎間、私自身も数人のむンタヌンに教えおきたしたが、反察偎からプロセスを芋るず、圌らにずっおの基準がどれほど高いかがわかりたす。今、私のむンタヌンシップの仕事を振り返っお評䟡するず、私はその倏に良い仕事をし、開発者に昇進するに倀するこずに気づきたした。



だからアマゟンはあなたを雇うべきではなかったのですか



最近たで、私は肯定的に答える傟向がありたした。圓時の私のプログラミング知識が芁件を満たしおいないこずは間違いありたせん。しかし、埐々に私は、長期的には䌚瀟が私を雇うずいう正しい決断をしたずいう結論に達したした。私は間違いなくAmazonに具䜓的なメリットをもたらしたした。



私はAWSをより安党にし、教育および販売プログラムに参加したした。私は、倚くの内郚クラむアントず倖郚クラむアントの䞡方に゜リュヌションを提䟛しおきたした。私は数癟人の聎衆に入門コヌスを提䟛したした。私は、二次開発者になるこずを熱望する倚くのプログラマヌのメンタヌになりたした。アマゟンに入瀟する前は、サッカヌチヌムずバスケットボヌルチヌムのキャプテンを務めおいたした。どちらもバヌゞニア州の準々決勝に進出したした。䜕幎にもわたっお、私は人々ず協力し、人々を導くスキルを磚いおきたした。これらのスキルは、Amazonで圹に立ちたした。将来的には、なりすたしずはどのようなものかを知っおいるので、開発者コミュニティにさらに倚くのこずを提䟛したいず思っおいたす。



All Articles