現在の技術職市場は大きな転換期を迎えている。74%の開発者が就職に苦戦する一方、企業の採用プロセスは時代遅れのままである。本動画では、企業の採用手法の問題点、経験豊富な開発者が成長を怠っている実態、そしてジュニア開発者が取るべき戦略を詳細に分析する。AI時代において成功するためには、従来の履歴書やコーディングテストに頼るのではなく、コミュニティでの有用性の発揮、実践的なプロジェクト構築、そして人間関係の構築が不可欠となる。特にジュニア開発者にとっては、AI時代特有のエネルギーと柔軟性を活かし、既存の開発者が持つ固定観念に縛られない新しいアプローチが最大の武器となる。

現在の就職市場の混沌
今の就職市場が異常だと言っても過言ではありません。正直なところ、異常という言葉でも控えめかもしれません。74%の開発者が就職に苦戦しているという驚愕の数字を目にしています。需要は上がっているにもかかわらずです。さらに驚くべきことに、現在雇用されている開発者の40%が1年以内に現在の職を離れる予定だといいます。企業における異なる経験レベルごとの人員配分を見ると、ジュニアエンジニアが激減している一方で、ミッドキャリアとシニアエンジニアが大幅に増加しています。
同時に、これと矛盾する数字もたくさんあります。最近の卒業生が仕事を見つけるのに苦労している割合は確かに少し上がっていますが、それは約1%の増加に過ぎず、2010年代初頭の不況時に比べれば全く大したことはありません。当時は新卒の約8%に近い数字でしたから。
では、これらすべては何を意味するのでしょうか?就職市場について少し違った考え方をする必要があるということです。今日利用できるアドバイスのほとんどは、良くて時代遅れ、悪ければ有害です。そして私はこれを可能な限り分解したいと思っています。
私の目標は、新しい仕事を検討している経験豊富なエンジニア、最初の仕事を得ようとしている新卒者や業界に入って間もない人々、そして適切なタイミングで適切な人材をチームに加えて素晴らしいものを構築しようとしている採用マネージャーにとって役立つ動画を作ることです。
これを正しく理解するためには、採用の仕組みや適切な人材をチームに迎える方法、そしてそもそも彼らが何をするのかについて、多くのことを再考する必要があります。私たちの役割は積極的に変化しており、それに伴って採用方法も変わるべきです。しかし変化は十分に速く起きていないと思います。
そのため、今日のスポンサーからのメッセージの後、これをすべて分解していきます。
告白があります。GitHub Actionsの使用をやめました。まあ、ある意味ですが。私たちはすべてをBlacksmithに移行しましたが、はるかに良くなりました。Mintifyがビルド時間とCIコストを半分に削減した話や、DockerレイヤーキャッシングによりDockerビルド時間を最大40倍短縮する話もできますが、そういった話はしません。
GitHub Actionsに本物のオブザーバビリティがあることがどれだけ素晴らしいかという話をします。これがGitHub自体では全く存在しないというのが笑えます。でもこれを見てください。実行中のすべての実行を確認できます。失敗した実行とその理由を確認できます。異なるテストの失敗率を見ることができます。
アクションで何が起こっているかを確認できます。つまり、GitHubでは全くできないことです。ですから、アクションを何か有用なことに実際に使っているなら、soyv.link/blacksmithで今すぐチェックしてください。
3つの核心問題
このすべての混沌を3つの核心部分に分解していきます。企業は採用が下手です。経験豊富な開発者は成長が下手です。そしてジュニアは一般的に下手ですが、それを受け入れるべきです。ジュニアの話は最後の方になりますので、最後まで見てください。しかし、これらすべては、今後この仕組みを再考しようとするあらゆるレベルの開発者にとって役立つと思います。
私のお気に入りのトピックの一つから始めましょう。企業は採用が下手だということです。これには非常に多くのレイヤーがありますが、私の個人的なお気に入りの一つから始めます。面接と候補者プロセスがどのように進む傾向があるかです。
もしあなたがここに初めて来たなら、おそらくそのチャンネル登録ボタンを押すべきです。何のコストもかかりませんし、あなたたちの半分は登録していません。最新情報を追うのに良い方法です。
しかし、もしあなたがしばらくここにいるなら、私のチャンネルの2番目の実際の動画としてDan Abramovと行った模擬面接を覚えているかもしれません。それはライブストリームで、ReduxのクリエイターでありReactのコアコントリビューターであり、冗談でReactのクリエイターと呼ばれることもあるDan Abramovと実際の模擬面接を行いました。
私はこれに本当に力を入れました。なぜなら、技術候補者の面接方法が根本的に欠陥があると思ったからです。この動画で多くの異なることを行い、人々が採用しやすくなるようにしました。その一つは、技術面接ドキュメントを公開で共有したことです。
面接プロセスの問題点と改善案
候補者を技術的な審査プロセスに招いて、その役割に採用されるのに十分技術的に優れているかを判断する際、私は候補者が成功するように最大限の努力をします。
そしてこれが面接で見かける最初の間違いです。面接があまりにも罠を仕掛けるために設定されているように感じられ、成功のためではないのです。面接の目標は、マネージャーとしてのあなたの目標と同じであるべきです。適切なツール、プロセス、システム、そして成功を容易にするものを使用させることで、チームができるだけ成功するように設定することです。
チームができるだけ成功できるようなものを使ってほしいはずです。そして面接でも同じことをすべきです。でも、彼らがClaudeやChatGPTやCursorを使ってカンニングしたらどうなるんですか?彼らは仕事でもそれらを使うべきです。それなら、あなたが懸念していることに対抗するような方法で彼らの能力をテストする方法を見つけてください。
なぜなら、あなたがそう言うとき、あなたの懸念は彼らが仕事でCursorを使うことではないからです。より成功するためにそのようなツールを使うべきです。あなたの懸念は、事態が悪化したときに、その穴から自分を掘り出すために必要な知識がないかもしれないということです。
そして過去10年半以上、私たちは彼らがホワイトボードでコードを説明する能力や、20分でツリーをソートするだけのしょうもないアプリを書く能力を、彼らが何を話しているか知っているかどうかを判断する方法として頼ってきました。明確に言うと、それは常に悪かったのです。しかし今ではかつてないほど悪化しています。なぜなら、誰かの技術能力を不適切に審査するために使用していた同じものが、エージェントが何の努力もなくすぐにできるものだからです。
Clueyがそれほど成功したという事実は、プロセス自体に欠陥があることの証明です。なぜなら、あなたの面接が粗悪なAIアプリでカンニングできて、あなたの仕事ではできないなら、仕事が期待するものと面接が期待するものの間にギャップがあるということであり、それはあなたが面接を下手にやっているということです。
だからこそ私は常にかなり違った面接を行ってきました。私は候補者に選択肢を与えるよう具体的に努めています。なぜなら、候補者は自分の能力を最もよく提示できると思う方法を選択すべきだからです。繰り返しますが、彼らを成功に導くのです。どのプロセスが成功する可能性を最も高めるでしょうか?明らかに、彼らが行う選択は私が彼らを評価する際に考慮するものです。
そして長期的には、リートコードのアルゴリズムパズルはおそらく面接に含めるべきではないと思います。なぜなら、それらは常に悪かったからです。私がここにこのオプションを主に含めたのは、これらのことに一生懸命取り組み、スケールアップに多くの時間を費やした結果、これに慣れていると感じた候補者のためです。なぜなら繰り返しますが、候補者を成功に導きたいからであり、快適であることはその成功の本当に大きな部分だからです。
ですから、これが彼らが快適に感じるものです。これが彼らが選ぶものです。私はこれらのタイプの問題がどこから来るかの例を示し、プロのヒントを述べました。私たちの問題のほとんどはおそらくAdvent of Codeに基づいているでしょう。なぜなら、チームは皆Advent of Codeのプレイヤーだからです。私たち全員がそれをあまりにも真剣に受け止めており、私の課題のほとんどはAdvent of Codeに基づいていました。
私たちが何をするかを説明します。私たちの目標は、あなたがどれだけ速く正しい答えを書くかを見ることではないと言います。私たちはあなたがどのように働き、コミュニケーションするかを学ぼうとしています。なぜなら、それがあなたを良い候補者にするものだからです。私はこの面接の一般的な構造を説明します。15分間の一般的な技術とチーム経験の質問があります。
直接的な例を示します。30分から45分のコードパズルがあります。疑似コードでも実際のコードでも、好きな方でいいと言えます。そして残りの時間は会社、役割の期待などに関する質問に使用されます。非常に明確な期待です。技術面接に来る人は誰もこれを読んで選択し、何に臨むのか分からないということはありません。
オプション2は、実用主義者です。これは、プロジェクトや仕様やAPIを提供して、この部分を実装してくださいと言う、より現実世界の仕事に近いことをしようとする私の試みです。面白いことに、これは今日私がエージェントを使用する方法とそれほど変わりません。仕様、期待、出力が何であるかを示して、候補者がそれを完成できるかどうかを確認します。
明らかに、今日の構造の仕方では、これはほぼ確実にエージェントが数秒で完了できる質問です。しかし、私は候補者に出てきたコードとそれがどのように機能するかについて質問することもできます。実際、私はこれらの候補者とこれらの問題に取り組んだときにすでにそうしていました。
彼らがコードを書いたとき、私は彼らに尋ねました。「ああ、なぜこのコンポーネントを分解したのですか?これをどのように再利用しますか?この部分を他の場所で再利用可能にするにはどうしますか?」と会話をしました。なぜなら、これらの面接で本当に重要なのはそれだからです。あなたは毎日一緒に働く誰かを雇おうとしているのです。あなたと一緒に会議に出る、Slackにいる、ランチを共にする誰かです。
彼らとコミュニケーションする能力は、彼らがどれだけ多くの行のスロップを生成できるかよりもはるかに重要です。そして私の個人的なお気に入りのオプション、現実主義者です。あなた自身のリポジトリまたはプロジェクト、理想的にはオープンソースのものを持ってきて、それから私たちはあなたが何かに取り組むのを見守ります。
ですから、プロジェクトに追加したい機能、構築または完成または取り組みたいもの、修正したいバグがある場合、リポジトリを送ってください。何をする予定かについての情報を送ってください。そして、これがあなたの技術スキルとコミュニケーションを審査する良い方法だと思えば、1時間から2時間一緒に取り組みます。そして一緒にというのは、あなたが運転してほとんどを行い、私は質問をし続けるという意味です。繰り返しますが、実際にあなたと一緒に働くのがどのようなものかを見るためです。
これがこれらのオプションすべての目的です。私のお気に入りのスペシャリストも含めて。ここでのポイントは、これらの面接方法が機能しないと思うなら、自分自身の方法を提案できるということです。
自分のスキルを披露する独自の方法があると思うなら、それを持ってきてください。私に見せてください。学ぶことに興奮します。悲しいことに、このオプションを選んだ人はこれまでいませんでした。しかし、通常、技術スキルをすでに証明していない人を雇うことはありません。なぜなら、本当に有用なもので満たされたGitHubがあるか、過去に異なるプロジェクトで私があなたと交流したことがあるなら、これらのどれも行う必要がないからです。
あなたがすでに優れていることを知っていれば、これらすべては捨てられます。私が世界最高のものの一つと考えている技術面接プロセスを持っていて、しかも技術面接をもうしないというのは皮肉なことです。なぜなら、すでに自分自身を証明した人しか雇わないからです。ですから、最高のプロセスの一つを持っているにもかかわらず、最も使わないことになります。
これが私がここに公開し続け、オープンソースで利用可能にし続けている理由の一部です。より多くの人々に、彼らの面接プロセスがあなたのリートコードスキルをチェックしているのか、それとも実際に誰かと働くのがどのようなものかを見ているのかを深く考えてほしいからです。なぜなら、それがあなたが採用すべきものだからです。
チームとの互換性です。ですから、現在の人々の技術面接のやり方はひどいものであり、再考されるべきだと確立したと思います。このようなものです。明らかに、もはやあまり意味をなさない部分がありますが、透明性、明確性、快適性、コミュニケーションに本当に焦点を当てることで、面接がはるかに良くなります。
候補者は、あなたが顕微鏡や拡大鏡を使って彼らが間違ったことをすべて捕まえようとしているのではなく、あなたが彼らのチームにいるように感じるべきです。なぜなら、この人はあなたのチームに加わるのですから。彼らをサポートしたいはずです。プロセスを通じて彼らをサポートしてください。
履歴書スロップと冷たい応募の問題
しかし、そこまで到達するためには、正直言ってかなりひどい他のことを通過する必要があります。ここで履歴書スロップについて少し話さなければなりません。
冷たい応募は今やゴミのようなものです。なぜなら、求人リストが掲載されるたびに、多くの人々が採用されることを期待してスパムするからです。人々はあらゆる種類のツールを使って履歴書を生成し、偽の情報や絶対的なひどい内容で埋め尽くし、10,000の名前の山の中で自分の名前がクリックされるのに十分な注目を得ることを期待します。
そのすべてを、会社の非技術的なリクルーターが読んでいます。このようなものはひどいものです。これではあなたは仕事を得られません。この巨大なPDFの山の中にあるあなたの履歴書が、コードについて何も知らないランダムなリクルーターがそれを読んで、あなたのものを見て、あなたを選ぶほど魔法のようなものだと本当に思いますか?これについて現実的である必要があります。
冷たい応募はもう機能しません。人の前に出る方法を見つける必要があります。理想的には技術的な人物の前に出ることです。そうすれば、彼らはあなたが本物の人間であることを知ることができます。なぜなら、本物であることと透明性は、AIがスロップを非常に一般的にしているため、今やこれまで以上に希少であり、それが持つことができる優れた角度であり、このすべてのひどいものに対して使用できるレバーだからです。
あなたが見ている会社のエンジニアからの投稿とやり取りすること。あなたがそのようなものがある場所に住んでいるなら、地元の技術ミートアップ。地元の技術の仕事は完全にひどい混乱ですが、あなたが話している会社の人々と対面の時間とやり取りを得る方法を見つけることは不可欠です。なぜなら、最初のラウンドを通過して技術的な人物の前に出る確率を本当に高めたいからです。そうすれば、彼らと仲良くなり、コミュニケーション能力を披露し、何かを学び、そして役割を得るチャンスが高くなります。
しかし、もしあなたが私のコメント欄に座って「仕事が見つからない。市場全体がひどい。500社に応募したが、一つも返事がなかった」と言っていて、応募の定義がオンラインでランダムな求人リストボードに行き、採用セクションを見つけて、PDFを提出し、会社に固有の何も追加しないことであれば、当然あなたは採用されません。
あなたよりも一生懸命努力している人々がいます。銀の皿に載せて仕事が手渡されると思わないでください。そういう仕組みではありません。そして彼らの名誉のために言うと、企業は主にここで過ちを犯しています。企業は採用がとても下手で、2000年代初頭のようにまだやっています。彼らはこれらの奇妙なリストをひどいボードに掲載し、誰も読まない特定の形式のPDFまたはdocxファイルを提出することを期待し、その後非技術的な人物がそれをすべて読みます。彼らはその結果として得ている従業員にふさわしいのです。
あなたはそれを回避する必要があります。もしあなたがこれらすべてのことを正しく行っていてもまだ仕事を得ていないなら、あなたが話した良くなかった会社があなたをひどい役割に誤って雇わなかったことに感謝すべきです。
経験豊富な開発者への助言
とは言え、あなたたち全員もコーピングをやめる必要があります。私のチャットですでにそれを見ています。ストーキングは今や本物の求職技術なのですか?あなたが興味を持っている会社で働いている人々と、共有された相互の興味に基づいてやり取りすることがストーキングだと思うなら、あなたは失業に値します。基本的な社会規範の理解がとても悪いので、あなたは仕事を得ることはできません。
そして、これを言うのは奇妙です。おそらくこれについてはジュニアセクションでもっと話しますが、基本的なレベルで社交する能力は、あれば良いスキルから、今日仕事を得たいなら境界線上で必須のスキルになりました。
企業が採用が下手である理由についてもっと多くの考えがありますが、経験豊富な開発者の部分に飛び込みます。なぜなら、これもたくさんカバーすると思うからです。
HackerRankからの情報のように、この74%の数字は彼らの聴衆と行ったインタビューです。そして明らかに、仕事を得るためのHackerRankのようなプラットフォームは、一般的にエンジニアをインタビューしている場所とは異なる数字のセットを持つでしょう。
ですから、これらの数字のどれを本当に信頼できるか分かりません。私が知っていることは、平均して役割を得るジュニア開発者が少なくなっており、平均して需要があるシニア開発者が多くなっているのを見ているということです。しかし、私が見ているのは、現在の役割と現在の仕事の両方で、また他の場所で仕事を得るための良い選択肢として自分自身を提示することで、多くの苦労をしている経験豊富な開発者が多いということです。
大学の直後に初めての面接を行い、10のうち1つの仕事を得て、そこにずっと留まっている人々がたくさんいます。本当に望んでいないので、離れることに煩わされたことはありません。そして今、彼らは外に出て面接を行い、スキルを全く磨いていないので、5年か6年前に最初に仕事を得たときよりもわずかに悪いパフォーマンスをしています。
そしてそれは彼らが磨いていない唯一のスキルではありません。しばらく仕事をしていると、学ぶ意欲はほぼ本質的に下がり始めます。あなたの仕事が社内でますます具体的になるにつれて、仕事の外で他のことを探求する可能性は本質的に下がります。そして、社内でAIツールを使用させない会社の一つにいる場合、おそらくその点でも遅れを取っています。これは恐ろしいことです。なぜなら、仕事を持たないジュニア開発者には、そのような制限が一切ないからです。
先を行くためにもっと努力する必要があります。別の考え方があります。ジュニアエンジニアが入ってくるとき、彼らはずっと多くのエネルギーを持っています。彼らは時間とともに人々が得る疲れた態度を持っていません。特定の考え方や行動方法に制限されていませんが、同じ能力を持っていません。
一般的な経験という意味で、どの言語にどんな妥協があるか、どのライブラリが意味をなすか、会社での障害にどう対処するか、そういったすべてのことを知りませんが、役割固有の能力や会社固有の能力もあります。彼らはあなたのビジネスがどのように運営されているかという組織的知識を持っていません。
一方、あなたの会社の既存のシニア開発者は多くの能力を持っています。彼らは物事がどのように機能するかという一般的な点と、あなたの会社がどのように機能するかという具体的な点の両方で、何年もの経験を持っています。しかし、その結果、新しいことを学ぶエネルギーと意欲が下がっています。ここには常にトレードオフがあります。
誰かが構築方法をよりよく知り、さらに重要なことに、あなたのビジネスでどのように働くかを知っているほど、他のことを試したり実験したり探求したりする能力は低くなります。そして、これら2つのバランスを取ることは、長期的に運営しようとするビジネスとして不可欠です。本当の勝利は、ジュニアからシニアへエネルギーを効果的に移転する方法を見つけたときです。
そしてトレードオフは、シニアエンジニアがジュニアエンジニアと一緒に働き、一緒にいることで興奮し、ジュニアに自分の能力の一部を本質的に伝えることです。ビジネスとしてそのタイプの関係を構築できれば、物事は本当にクレイジーになり始めます。シニアが能力をジュニアのエネルギーと交換し、すべてが供給され、成長します。
これがDan Abramovのような人々が自分自身を生涯ジュニアとしてブランディングしていた理由です。なぜなら、彼らは何よりもエネルギーを維持したかったからです。そしてより多くの経験を積むにつれて、これを切望している自分に気づくでしょう。私は15年の経験を持つ誰かの平均よりも高いエネルギーを持っていると思いたいです。なぜなら、私は新しいものが大好きだからです。それが私のあり方です。
だからこそ私はこのチャンネルを持っています。問題への新しい解決策を探求し、それらを最初に自分で見つけに行かなかったかもしれない人々に持っていくことが最も楽しいことの一つです。そして私のキャリアの早い段階でシニアエンジニアがそれを奨励してくれたことが、時間とともにそれを維持するのに役立ったと思います。
これは大企業が多く苦労していることでもあります。私は最初に見て以来、このクリップについてずっと考え続けています。
Netflixの最初の25年間、私が正しければ、使用された唯一のソフトウェアエンジニアリングレベルはシニアソフトウェアエンジニアでした。あなたは今、早期キャリアのソフトウェアエンジニアを雇い始めました。それがNetflixの文化をどのように変えたか教えていただけますか?
新卒者と早期キャリアの才能、そしてあなたが言及したインターンシッププログラムで素晴らしい経験をしてきました。私たちは他の多くの技術企業とは非常に異なる場所から始めていました。ですから、他の大規模な技術企業のいくつかでレベルや才能の分布を見ると、場合によっては30%、40%、50%が私がレベル3レベル4エンジニアと呼ぶものでした。
ですから、新しい技術シフトやそれらの企業が今行う必要がある作業について考えるとき、なぜ彼らが異なる才能の分布を必要とするかもしれないか理解できます。私たちはほとんどの場合0%から始めていました。私たちは主にレベル5以上の人口を持っていました。ですから、新しいスキル、新しい視点、チームへの素晴らしいエネルギー、そして今GenAIでの技術シフトで、多くのネイティブAI親和性をもたらす早期キャリアの才能でチームを補完する大きな機会がありました。
ですから、過去数年間に学校を卒業した人について考えると、彼らは製品開発、コード作成、データ問題の解決について考えるときにAIを使用することに非常に慣れています。実際、それはチームに新しいスキルと視点をもたらす有用な方法です。私たちはビジネスのさまざまな部分で付加的であったため、早期キャリアの才能へのその投資を絶対に維持すると思います。
しかし、すべてが適切な割合であるべきだとも思います。私たちが非常に経験豊富なエンジニアを必要とする問題もたくさんあります。
アイデアは理解できますね。ここで触れられた非常に興味深いことは、新しいキャリアの開発者、早期キャリアの開発者が独自のエネルギー、独自の視点、そして彼女がネイティブGenAIの態度と視点と呼んだものをもたらすというこの考えです。
その部分については多くの考えがあります。心配しないでください。しかし、まずシニアにもう少しアドバイスをしたいと思います。もしあなたがより多くの面接を始めているシニア開発者なら、しばらくそれらを行っていない可能性が高いです。私は何よりもまず、反対側で多くのことを行うことを強くお勧めします。
仕事があるという事実を利用して、面接プロセスにどれだけ関わることができるか見てください。はるかに多くの面接を行ってください。仕事を得るのに苦労している何年もの経験を持つ人と話すたびに、ほぼ毎回、面接を進行する経験がほとんどありません。より多く進行できるほど、反対側を見ることができるほど、良いまたは悪い面接がどのようなものかをより認識できるようになり、それに応じて変更を加えることができます。
今までよりも本当に内省的である必要があります。なぜなら、歴史的にコードは非常に希少で、コーダーは非常に価値があったので、開発者は彼らが言語的能力を持っていなかったかもしれない役割に許可されていました。コミュニケーションがあまり得意でなかったり上手でなかったりする人々も許されていました。なぜなら、ロックスター開発者の必要性がそれほど高かったからです。
今、必ずしも技術的に優れているわけではないが、コミュニケーションがはるかに上手な人々がいて、コミュニケーションスキルがこれまで以上に重要になったため、明らかに良い採用であることがはるかに明白です。そしてこれはAIに対するあなたの視点に関係なくです。すべてのAIコードはスロップであり、手書きのCだけが正しいやり方だと思うなら、あなたは正しいかもしれません。
しかし、誰も納得させることができなければ、どれだけ正しくても関係ありません。ですから、本物のコード行を書いたことがないこれらのClaudeコードキッズによって大量生産されるAIスロップと競争するつもりなら、なぜあなたのものが優れているかを説明できるようにならなければなりません。
コミュニケーションを改善し、アイデアを説明することは、これまで以上に重要になっており、歴史的には開発者としてそれほど価値がありませんでした。
今それがシフトしたので、自分自身を異なって提示する必要があります。社内でより多くのプレゼンテーションを行ってください。物事を文書化するためにより多くの時間を取ってください。物事について社内ブログ投稿を書いてください。それらのブログ投稿のいくつかがビジネスとしてのエンジニアリング学習について議論するために外部に公開できるかどうかを確認してください。コミュニケーションスキルを向上させる方法とインセンティブを見つけてください。そうでなければ、あなたが正しいことを適切にコミュニケーションできないため、AIが優れているかどうかに関係なく、AIに負けます。
そして、私がここで考えているほぼすべての人々を約束します。素晴らしいコードを作ることができて仕事を得るのに苦労している経験豊富な開発者は、100%の確率でコミュニケーションが下手です。それを乗り越えなければなりません。何をしているのか、そしてなぜそうしているのかを明確に説明できないことは、コードが十分に新しい性質のためにのみ許容されていました。
私たちはその時点を過ぎています。あなたのことを乗り越えてください。
ジュニア開発者への戦略
しかし今、あなたたちのほとんどがここにいる理由であることについて話す必要があります。ジュニア開発者。そこは厳しいです。そうでないふりはしません。経験豊富な開発者の注意を引いて検討されることさえ容易ではありません。物事を少し違ったやり方で行い、持っているすべてのレバーを使う必要があります。
しかし、物事を正しく行う前に、間違ったことをやめなければなりません。早期キャリアの開発者で見る最も一般的な間違いのいくつかを見ていきましょう。私はすでに冷たい応募について話しました。ChatGPTで生成したしょうもない履歴書でランダムな会社に冷たく応募してもどこにも行きません。そして、手作りのものでもそれほど遠くには行きません。
冷たい応募は死にました。入ってくるひどいものがあまりにも多すぎます。そこから目立つ何らかの方法が必要です。そして目立つ方法は履歴書に載せられるものではありません。人間です。もっと本物に感じられる必要があります。私はしばらくこれを言ってきましたが、すべて、特に採用における最大の差別化要因は信頼です。
信頼を構築する方法を見つける必要があります。もしあなたが早期キャリアの開発者なら、そこにないので職歴を信頼することはできません。ですから、信頼できる他のものが必要です。信頼できるものには、会社の誰かがあなたがかなり良いと思っていることが含まれます。誰かがあなたが使用するライブラリの一つを認識すること。誰かがあなたのブログ投稿の一つを読んで、それが彼らの仕事に関連していることに気づくこと。
信頼を構築するためにできることは何でも鍵になります。それを覚えておいてください。ですから、少し後で信頼についてもっと多く話します。冷たい応募はひどいです。それがあなたをどこかに連れて行くものになるとは期待しないでください。あなたの教授もひどいです。これは理解すべき本当に重要なことです。私が多く見てきたのは、早期キャリアの開発者や大学を卒業したばかりの人々で、彼らが知っている最高の開発者は教授でした。
厳しい現実は、あなたの教授はほぼ確実にあまり良い開発者ではないということです。なぜなら、ほとんどの教授は良い開発者よりも少ない収入しか得ていないからです。そして、もしあなたの教授が教えているなら、おそらく実践が好きではなかったか、実践がうまくいかなかったか、何らかの理由でそれに疲れたからです。
そして、大学で私の同僚が教授を周回していたのを何度見たか数え切れません。そして、私の教授がこれを大部分理解していたことに幸運でした。彼らは自分たちの経験が本当に、本当に遅れていることを知っていました。そして、彼らは最も興奮し、最も活力があり、これらのことを教える準備が最もできている学生に頼り、私たちが最も有用なものに向かって導いてくれました。
あなたの教授は問題について技術的に考える方法について多くを教えることができますが、仕事を得る方法は教えてくれません。業界で今日働くことがどのようなものかは教えてくれません。宿題を与えることを超えて、あなたがおそらくAIを使ってカンニングしているであろう方法で、同僚を上回る方法であなたを成功させる可能性を高める方法は確かに教えてくれません。
あなたの教授は仕事を得るために必要な部品と知識を与えてくれません。私が見るもう一つの一般的な間違いは、資格への執着です。そして、これがなぜ起こるか理解しています。そもそも大学に入るためには、あなたの申請書にこれらすべてのクレイジーな栄誉が必要でした。
学校で何らかのクラブの長だったとか、この特定の慈善活動で働いた経験があったとか、本当に高い成績を持っていたとか、SATで完璧なスコアを取ったとか、そういったすべてのことのように、そのようなことはもはや重要ではありません。以前もほとんど重要ではなかったし、今は重要ではありません。名声を追いかけること、栄誉を追いかけること、これらの資格を追いかけることは役に立ちません。
そして、Microsoftからランダムな認定を取得しに行くこと、あなたがAzure認定またはOffice認定であること。そのようなことは何も重要ではありません。過去10年間でそれらの意味での資格に基づいて誰かを雇った人を私は知りません。彼らはチームにとって潜在的に良いフィットであるという事実に基づいて採用しています。それだけです。
そして今、おそらくビデオの残りのほとんどの話題になるであろうもののために。AIを介した学習のアウトソーシング。または別の言い方をすれば、AIで学習を避けること。
AIとの正しい付き合い方
愚かな気分になるのは嫌です。人間はそれを避けるために人生を最適化します。そしてなぜそうなのか理にかなっています。生物学的に言えば、2つの食べ物の選択肢があり、一つはあなたが慣れ親しんでいて、たくさん食べたことがあり、安全だと知っているもの、もう一つは以前に見たことも試したこともないものなら、試したことがないものは有毒かもしれません。
ですから、明らかにそれを試したくありません。それを理解していないという事実は、本質的にそれに対して嫌悪感を抱かせます。しかし、ソフトウェアエンジニアリングについての厳しい現実は、あなたが愚かな気分になっているときが最高の状態だということです。それはあなたが経験、専門知識を超えて押し出し、自分自身を構築し、成長しているときです。
これはAIツールの使用を避けるべきだという意味ですか?いいえ。ここでの私の言葉遣いに注意してください。AIで学習を避けることが鍵です。AIで学習を避けるべきではなく、これはあなたがおそらく今やっていることです。問題に遭遇して理解できないとき、AIを使ってそれを回避したり、それを解決させたりして、自分自身の理解を全く改善しません。
不確かまたは無知な感じに逆らい、それを受け入れてその中で時間を過ごして解決するのではなく、その中で時間を過ごす必要がないようにアウトソーシングし、それが価値のあるスキルを構築することを妨げます。
ここで少し自分自身と矛盾させてください。HTMXは主に教授によるプロジェクトです。彼の名前はCarsonです。彼は素晴らしいです。Carsonは私たちがどのように学ぶかについて多く考えており、学生がAIツールを使用することを知っています。彼らにすべての宿題でカンニングさせるのではなく、実際には逆の方向に進みます。学生がこれらのタイプのAIツールを使用することを知っています。
ですから、代わりに彼らにagent.mdファイルを渡します。もし馴染みがなければ、agent.mdファイルまたはclaude.mdファイルは、コンテキストの開始時に何かを置くことで、どのように操作するかについての指示を与えることでエージェントを導きます。一般的に、これは言われたagent.mdです。
主な役割はティーチングアシスタントであり、コードジェネレーターではありません。AIエージェントは学生が説明、ガイダンス、フィードバックを通じて学習するのを助ける教育補助として機能すべきであり、問題を解決することではありません。
私はそのMダッシュを見ます。あなたはこれを生成しましたよね?あなたは狡猾な狐です。エージェントがすべきこと。学生が混乱している概念を説明する。学生を関連する講義資料または文書に導く。学生が書いたコードをレビューし、改善を提案する。修正を提供するのではなく、誘導的な質問をすることでデバッグを助ける。
エラーメッセージとそれらが何を意味するかを説明する。高レベルでアプローチまたはアルゴリズムを提案する。特定の概念を説明するための小さなコード例を2行から5行提供する。学生がアセンブリ命令とレジスタ使用を理解するのを助ける。それは少し無理がありますが、理解できます。そして尋ねられたときにメモリレイアウトとポインタ演算を説明する。
エージェントがすべきでないこと。関数全体または完全な実装を書く。課題への完全な解決策を生成する。課題コードのToDoセクションを完成させる。学生コードの大部分をリファクタリングする。クイズまたは試験問題への解決策を提供する。一度に数行以上のコードを書く。
要件を直接動作するコードに変換する。良いコード例の書き方について教育アプローチのガイドを提供し、次に古典的な、これは良いagent.mdまたはガイドファイルに属します。良い見た目の例と悪い見た目の例です。明確に言うと、彼はこれを彼のコースで強制していません。
彼はこれを書いて公開し、「見てください、ここにガードレールがあります。ガードレールを使うことを強制することはできません。しかし、良いプログラマーになりたいなら、これらのガードレールを使うべきです」と推奨して言いました。彼はAIで人々がカンニングするのを難しくするために、すべてを対面で紙の上に移しました、などなど。適応し、即興し、再適応します。
この特定のフレーミングが大好きです。これは私がCarsonについて好きなことの一つです。彼は何が機能して何が機能していないかを常に反映しています。そして、規範を拒否し、物事が向かっている場所を拒否するのではなく、彼の役割である学生を成功に導くためにそれらをよりよく適合させる方法を見つけます。彼のような教授がもっといればいいのにと思います。
彼はこれが本当に、本当に上手です。しかし、ここで彼に少し矛盾します。彼や彼のような人からコースを受講しているなら、すべてのコースワークでこのようなAsian MDを使用し、それに応じてルールに従うことを強くお勧めします。これはあなたが成功する可能性をはるかに高くします。
しかし同時に、あなたは今使える本当にユニークなレバーを持っています。やるべきことの代わりにすべきことについて話し始めます。しかしそれをする前に、私の個人的なお気に入りのタンジェントの一つに行きたいと思います。少しモバイルアプリケーションについて話します。
もしあなたが若い、つまりGen Zで大学を経ている、または今終えようとしているなら、私がこれから述べるポイントのいくつかは私を多く疑わせるかもしれません。私が自分自身をひどく時代遅れにしようとしていることは分かっていますが、聞いてください、いいですか?
モバイル開発の教訓とAI時代への適用
昔を想像してください。携帯電話が突然本当に良くなるのを見ます。歴史的に、私たちはすべてにコンピューターを使っていました。あなたたちは今大学でコンピューターの使い方を学んでいることは知っていますが、私たちは小学校でそれをしなければなりませんでした。そして、私はChromebookについて話しているのではありません。私はフラッシュドライブやフロッピーディスクを差し込むファイルを持つ実際のコンピューターについて話しています。
突然、携帯電話が非常に強力になり始めました。より多くのことができるようになりました。メールを送れるようになりました。ウェブを閲覧できるようになりました。本当に強力になりました。そしてそれは本当に速く起こりました。そしてここに明白なトレンドがあります。未来を知っていますよね。それは明らかです。コンピューターをより少なく使い、携帯をより多く使うことになります。バッグの中の巨大なラップトップに手を伸ばす必要があるのに、携帯を取り出してそのことができるのになぜそうするのでしょうか?そしてあなたは未来に賭けたい。
遅れを取ることを恐れており、これが起こることを知っています。ですから、どれだけの経験があるか、どんな仕事をしているかに関係なく、モバイルに全力投球する時だと決めます。ですから、Nokia Sidekick用のJavaアプレットを構築するためにすべてを投げ捨てます。
ええ、これは今振り返ると少し面白いですが、当時はかなり明確で、より多くのことがモバイルに移行することになりました。そして遅れを取りたくなければ、携帯電話用の物を構築することにすべての努力と時間を注ぐことは非常に理にかなっていました。
ですから、SidekickやBlackberryまたは当時人気があったもののために構築します。それらすべてを合わせても、グローバルな携帯電話市場シェアの5%未満でした。なぜなら、私たちが知っているような、これらのタイプのデバイスであるスマートフォンはそれほど人気がなかったからです。
希望は長期的にはより人気になるだろうということでした。そしてそうなりました。しかし、それらは非常に異なる方法でより人気になりました。それらはこのようには見えませんでした。それはあなたがこれを見ている電話、iPhoneのように見えました。iPhoneはすべてを変えました。そしてiPhoneが最初に登場したとき、彼らはアプリストアさえ持っていませんでした。
彼らが持っていたのはHTML5と、本質的に非常に限られたウェブアプリだけでした。iPhoneが登場してから約1年半後、彼らは本物のアプリを構築させる必要があることに気づきました。ですから、SDKとアプリストアを出しました。しかしこれについて少し考えてみてください。Sidekickは2002年に登場し、次の数年間に多くの新しいバージョンが登場しました。
オリジナルのiPhoneは2007年、5年後でした。今、あなたがSidekick開発、BlackBerry開発、Nokia開発に5年間全力投球し、これらすべての奇妙な独自のプロプライエタリなオペレーティングシステム用のアプリを構築したと想像してください。そしてiPhoneが登場し、市場の半分を取り、あなたが可能だと思っていたものの50倍になりましたが、あなたのすべての経験はこれらの古い時代遅れのアーカイックなプラットフォーム用のアプリを構築することです。
タッチスクリーンキーボードと適切にインターフェースする方法さえ知りません。言語を切り替え、エコシステムを切り替え、オペレーティングシステムを切り替え、ユーザーエクスペリエンスを切り替え、期待を切り替え、すべてが変わります。Nokia開発からiPhone開発に移行します。ですから、そこで効果的に起こったことは、あなたが何年もの経験を無駄にしたということであり、それを忘れるにはさらに時間がかかります。
ですから、これについて考えてみましょう。どちらが良い状況ですか?10年の経験を持つ開発者で、死んだプラットフォームのために3年を費やし、そのすべてのBSを新しいもののために忘れなければならない人、または大学を卒業したばかりで、間違ったことを学んだことがなく、正しい新しいことに全力投球することに興奮している人。
これらの人々のうちどちらが良い状況ですか?非常に明らかにこれらの人々です。過去にやっていた奇妙な方法を忘れる必要がなく、新しいやり方に完全に飛び込むことができる人々。
ですから、これは明らかにモバイルについてですが、AI開発について話しましょう。10年間コーディングしている開発者を想像してください。彼らは大きなSublime Textの人でした。VS Codeに移行し、今はVimに全力投球しています。彼らはハードコアなNeovimの人になりました。
彼らは仕事でさまざまな異なることのために構築しており、このAIのものがおそらく重要だと気づきました。ですから、彼らは古典的なCo-pilotのようなものをVimで動作させようと、カスタム設定に多くの時間を費やしました。Vimでそれを動作させるために本当に一生懸命働きました。Supermavenのようなものを使い始め、最善を尽くしました。なぜなら、彼らは開発者体験とエディターの使用を非常に大切にしていたので、すべてをVimのレンズを通して行いたかったからです。
今突然、私たちはターミナルやIDE、その他すべての場所でエージェントを使用してそのすべてのコードを生成しており、彼らは必死に抵抗し、それが重要ではないふりをし、彼らがまだはるかに優れているふりをしています。しかし今、彼らはそれに対処しなければなりません。おそらく6ヶ月前はそうではありませんでしたが、今これらのツールは十分に良いのです。
もしあなたがそれらを使っていなければ、ある程度確実に遅れを取っています。長い間やってきた方法をすべて忘れて、これらの新しいことを受け入れるのに十分な時間、彼らの意欲ははるかに低いのです。彼らが持っている10年以上の経験が今彼らを傷つけています。そして誰もが私がPrimeをこっそりディスっていると言っています。
いいえ、実際、私はこの理由でPrimeが大好きです。Primeは自分の概念に挑戦し、伝統的に物を構築する方法が新しいことを試すことを妨げないようにする素晴らしい仕事をしていると思います。実際になぜ私たち全員がそんなに興奮しているのかを理解しようとしているPrimeのような人一人につき、全く興味がなく、誰もがスロップをやっていて自分だけが正しいことをやっていると主張して円を描いて走っている100人以上の人々が文字通りいます。
そしてその同じ人もコミュニケーションが下手なので、ほとんど無視できます。しかしあなたはその人ではありません。あなたは大学を卒業したばかりです。これらすべての新しいことを試すことに本当に興奮しています。新しいものを試しています。自分自身のもの、アイデアを加速するためにできることは何でもやっています。部分的にはお金を稼ぎたいのでコードに入りましたが、部分的にはコンピューター上で物を構築することが楽しそうだったからです。
少なくともそう願っています。もしあなたがただお金のためにここにいるなら、他の場所に行ってください。私のチャンネルはソフトウェアを使ってお金を稼ぐだけの人のためのものではありません。私たちはこのようなものが大好きです。そして私がプログラミングが好きなことは、多くの人々に私がこのAIのものが好きな理由を疑問に思わせます。私がプログラミングが好きなのは、問題解決の側面が好きで、自分自身と他の人のために有用なものを構築することが好きだからです。
そしてAIで、それらすべてがはるかに良くなりました。ですから、BlackBerryを愛している、BlackBerry用のアプリを構築している、BlackBerryエコシステムに人生を捧げている人を想像してください。明らかに、その人は会社が電話アプリを構築する必要があるときに役に立たないでしょう。それが今私たちがいる場所でもあります。
使用するソフトウェアスタックの各個別部分、構築するエディター、それらすべてのことに深く愛着を持つ、10年間のレガシーな構築方法を持つこれらの人々。
その人はそうするための多くのインセンティブなしにこのようなことを受け入れるつもりはなく、キャリアの早い段階であらゆる種類の新しいことを試していたので、おそらくこの時点でエネルギーも少ないでしょう。彼らはゆっくりと自分が持っているものに落ち着き、今は新しいものを試すことにあまり興味がありません。それはここではそうではありません。
大学を卒業したばかりの人は、新しいエディターを試すことを望まないということはありません。これらの新しい開発ツールをチェックアウトすることを望まないということはありません。これらのことを探求することを望まないということはありません。実際、全く逆です。彼らはそれらに興奮しているかもしれません。彼らはあらゆる種類の新しいものを試しているかもしれません。
そしてそれは私が奨励したいことの一つです。一方で、あなたがコースワークをしているとき、カンニングするためにAIを使うべきではありません。このゲストを強くお勧めします。リンクは説明に載っています。心配しないでください。クラスでAIを正しく使いたいなら、しかし厳しい現実は、クラスワークのためだけにコーディングしていて、それ以外に何もしていないなら、おそらくあなたはひどいことになります。
ですから、ここに戻ると、代わりにすべきことは、新しいツールを使ってクールなことをすることです。あなたの仕事でカンニングするために使うべきだという意味ではありませんが、クラスでの課題の一つが本当にクールで、それをより徹底的なものに構築したいなら、これらの新しいAIツールのいくつかと協力して、より大きなものを構築するためにさらに押し進めることができます。
学校で本当に好きなクラブがあって、残高、予算、クラブのために人々が何をしているかを追跡するより良い方法が必要な場合。これらの新しいツールを使ってアプリをバイブコーディングして、それを有用にしようとしてください。
私は実際に仕事、チャンネル、会社、製品のために物事を座ってやっている平均的な仕事の日に、アイデアを実験し、問題を解決し、バックグラウンドで物を構築しようとするために、1日に1つから2つの新しいアプリをゼロからバイブコーディングしています。
今でも、ストリーミング中でも、HNやSimon Willisのブログのような場所に投稿されているものに基づいて、プロジェクトのアイデアやビデオのアイデアを見つけて特定するのに役立つプロジェクトに取り組んでいます。そして、それを私のチャンネルと比較し、AIエージェントを使用して比較対照し、まだカバーしていないアイデアで私のチャンネルの良いトピックになる可能性があるものを見つけます。
理論やアイデア、または答えたい質問があるとき、このようなランダムなものを常に構築しています。ここで話したことすべてに不可欠なもう一つのことがあります。大学では特にそうですが、大学にいない場合は特に、コラボレーションです。
あなたのコースワークのほとんどは、テストや宿題のように、独立して自分自身で取り組む個別のものになるでしょう。うまくいけばコラボレーティブなコースワークがいくつかあるでしょうが、それは学校、プログラム、その他多くのことによって大きく異なります。あなたの仕事は問題を取ってコードを書くだけではありません。
あなたの仕事はチームのメンバーであることです。そして他の人々と協力することはこの分野で成功するために不可欠です。コラボレーションが上手になることが鍵です。コラボレーションはあらゆる種類の異なることになり得ます。早い学生を指導して宿題を手伝うことかもしれません。あなたが参加しているクラブに有用なものを友達と構築することかもしれません。
あなたがプレイするビデオゲームの統計を追跡するのに役立つプロジェクトを数人の友達と作ることかもしれません。ハッカソンに行って、そこでゼロから物を構築することかもしれません。ハッカソンは一般的に本当にクールです。コラボレーションする機会を見つけることは、開発者としてのスキルをレベルアップするのに役立ち、実際に仕事を持つことがどのようなものかを理解できます。
さらに重要なことに、それは将来仕事を得るために不可欠なつながりを作るのに役立ちます。今日まで、私は15年間コーディングしてきたという事実にもかかわらず、私の最もクールな機会のかなりの部分は、大学で一緒だった友達から来ています。
私のCTOでルームメイトのMarkのような人々。大学で彼に会いました。実際、大学では彼とあまり交流しませんでした。私たちは他のことからお互いの大まかな友達グループの一部でしたが、お互いのネットワークの他の人々と協力することを通じて、お互いと、お互いが何が得意かを非常に認識するようになりました。
ですから、彼がここに引っ越してきたとき、彼は場所を探していました。私は彼をかなりよく知っていました。私の余分な部屋を検討するように提案しました。それ以来、私たちは最高の友達で、一緒に構築するすべてを一緒に構築しています。これらは大学を通じてコラボレーションを通じて直接的および間接的に作ったつながりであり、これらのタイプのつながりは長期的に成功するために不可欠です。
なぜなら、あなたが最終的に仕事を探しているとき、大学から一緒に物を構築した友達の一人が雇っているチームにいて、彼らがあなたと一緒に働くのが楽しいことを知っているなら、履歴書のひどい山全体をスキップして、面接に直接行くことができます。そのようなことは不可欠です。あなたが知っていることではなく、誰を知っているかが一般的なフレーズですが、それは非常に本当です。
そして、あなたはクラスで誰を知っているかを構築し始めています。そしてこれがコースを持っていない場合、コラボレーションする方法を見つけ、有用なものを構築し、有用なものを構築している他の人々を見つけ、彼らと協力する方法を見つけ、これらの人々と一緒にいるDiscordサーバーを見つけ、あなたが有用である可能性があるプロジェクトを見つけることがさらに重要である理由です。
ただ人々と物を構築することはとても役立ちます。Mickeyがチャットにいます。もしあなたがまだ彼のチャンネルをフォローしていないなら、ぜひ見てください。彼はConvexを含むいくつかの本当にクールな仕事をしてきました。Convexは私のスペースでお気に入りの会社の一つです。そして彼が言ったように、彼はTempoでもConvexでも面接しませんでした。
彼が飛び込んだスペースで目立ったので、彼が仕事を望むかどうか尋ねて会社が手を差し伸べました。それらが最もクールな機会になるでしょう。そしてあなたはずっと早く有用であり、人々と信頼を構築することでそれらを得ます。そして、あなたはこれらのつながりの一つ一つが出てきて有用になることを期待してこれを行うのではありません。
あなたが一緒に働く10人から50人ごとに、おそらく1つだけ有用なものがあるでしょう。しかし、目標は再び物事があなたにとってうまくいく確率を高めることです。デッキを積み上げようとしています。引くカードが多ければ多いほど、デッキに入れるカードが多ければ多いほど、その中に存在する肯定的な結果が多ければ多いほど、良い結果を得る可能性が高くなります。
大学で2人の友達を作り、どちらも仕事を得なかったり、雇っているチームにいなかったりしたら、あなたはひどいことになります。大学で20人の開発者と友達になり、そのうち3人または4人が雇っているチームにいたら、本当の仕事をすぐに得る可能性ははるかに、はるかに高くなります。
そして、フットボールチームにいて、コーディングの仕方をほとんど知らなかったが、大学を卒業してすぐに仕事を得た、その超社交的な人をうらやましく思っているなら、これが理由です。彼らはつながりと友情を作り、楽しく、信頼しやすく、一緒に働きやすかったです。
仕事が悪かったとしても、彼らはそれを簡単にしました。一緒に働きやすければやすいほど、仕事を得るチャンスが良くなります。私はラックサーフェスエリアについて全体のビデオを持っていて、このアイデアについてさらに深く掘り下げていますが、幸運なことが起こる可能性を高めることに本当に集中する必要があります。なぜなら、最終的に、仕事を得ることはある程度運だからです。
ですから、その幸運なことが起こる機会が多ければ多いほど、成功する可能性が高くなります。そのトピックで、これは説明するのが少し難しいですが、非常に、非常に価値があるものがあります。有用であること。これは難しいです。なぜなら、それには2つの側面があるからです。有用である部分がありますが、さらに重要なことに、どのように有用であるかを理解する部分があります。
反対側で経験するまで、有用とは何かを知りません。そして、物事を行うことによってそこに到達します。あなたが持っている、または持っていない経験があり、どちらに該当するかは、あなたがどこにいるかについて多くを教えてくれます。
プロジェクトに取り組んでいます。この特定のライブラリを使用すると、奇妙なエラーが発生します。何が起こっているのか全く分かりません。ですから、Googleで検索します。最初の2つの結果は役に立ちませんが、3つ目は人が問題を報告した古いランダムなGitHub issueで、3ヶ月後に他の誰かが「ねえ、私もこの問題があります。これが私がそれを解決した方法で、今3年が経過し、彼らの答えはある程度機能しますが、古くなっていてサポートされていません。
しかし、少なくとも、それを見ることで自分自身のブロックを解除しました。もしある時点でそのような経験をしたことがないなら、十分に構築していません。もっと多くを出荷する必要があります。学ぶことは、あなたに似たものを構築し、あなたに似た問題に遭遇し、あなたに似たテクノロジーを使用している他の開発者からのウェブ上の多くの価値ある知識と情報があるということです。
そしてここがポイントです。それらの人々もあなたに似ています。そして、もしあなたが彼らと関係を持ち、彼らを理解できるなら、非常に迅速に彼らにとって有用になり、最終的に彼らの友達になることができます。ですから、もしそのような問題があるなら、使っているツールに問題があって、それらの古いスレッドの一つを見つけて、その中の情報がほとんど正しいが少し古くなっているなら、それを理解し、修正し、次の人のブロックを解除するコメントを残してください。
私は、私が抱えていた問題を解決したGitHubスレッドから彼らのユーザー名を認識したという理由で、誰かを文字通り雇ったことがあります。クレイジーに聞こえることは知っていますが、実際にそうしました。あなたの名前を認識した、あなたは仕事を得るというほど直接的ではありませんでした。しかし、彼らが私と一緒に働く可能性について私に連絡したとき、彼らのTwitterのユーザー名がGitHubのユーザー名と同じで、私が彼らを認識したとき、私は「ああ、あなたはこのライブラリを使っていますか?」と言いました。彼らは「ええ、私は常にそのissuesにいます」と言いました。
それは大きな信頼構築者でした。なぜなら、それはこの人がランダムな冷たい履歴書で私に連絡しているだけではないことを意味したからです。彼らは実際に現場にいて、ことをやっていて、私が理解しているのと同じことを理解しています。彼らは私と同じ場所で時間を過ごしています。
私がエンジニアとして雇うとき、私は本質的に私とは非常に異なると感じる人々を探しているわけではありません。ですから、私のスペースにいて、私がすることと同じことをし、言ってみれば私が呼吸するのと同じ空気を呼吸できればできるほど、その仕事を得るのが簡単になります。
ここで私が言わなかったことに注意してください。プルリクエスト。私はあなたがランダムなGitHubリポジトリにあらゆる種類のスロップを貢献する必要があるとは言っていません。実際、今日では、それはちょっと悪い兆候です。
私はまた、あらゆる種類のランダムなオープンソースプロジェクトで0から1のスターでGitHubを埋めるとも言いませんでした。私が非常に明確に言ったことは、issuesタブで時間を過ごすことです。issuesで有用であることは、開発者から見ることができる最高の緑の旗の一つです。
もし私があなたのGitHubプロファイルをチェックしに行って、私が見るのが、あなたが抱えていた問題について詳細なissuesを開いていて、誰かがそれを解決できるように問題の明確な再現があり、あなたが有用な情報で既存のissuesにコメントしているのを見て、それからあなたがこれらのプロジェクトのDiscordコミュニティでぶらぶらして人々の質問に答えて、彼らを正しい情報源にリンクしているのを見て、それからあなたが私のTwitchチャットでぶらぶらしているのを見て、これらの人々の多くが本当に有用なリソースを落としているように、ここのMariaはここで私が参照していたビデオを誰かにリンクしています。私のビデオに基づいて書かれた記事に基づいています。
有用であることは驚くほど簡単ですが、有用とは何かを理解する必要があります。そして、有用とは何かを知る唯一の方法は、あなたがことをやっている場合です。一つがあなたを助けて、一つが助けなかったのを見るまで、有用なissueと役に立たないものの違いを知りません。Discordサーバーで起こったのを見たり、自分で1つか2つ尋ねたりするまで、質問に対する良い答えとは何かを知りません。
塹壕にいる必要があります。塹壕を理解するために。そして、それらを少し理解すれば、どれだけ早く有用になれるか驚くでしょう。私のDiscordで起こったお気に入りの相互作用の一つは、おそらくRoyです。Roy、ありがとう、Chris。伝説。繰り返しますが、ここに多くぶらぶらしていて、名前が定期的に有用なものと関連している人々は、私のお気に入りの人々になります。
Chrisが仕事を必要とする瞬間、私は興味がある会社に彼を渡します。なぜなら、彼は入ってきて、もし私が考えを完成させることができなければ、彼はできるからです。なぜなら、彼は理解しているからです。アイデアは理解できますね。ですから、与えたい例は、Royという私のコミュニティの誰かです。Royは、ソフトウェア開発の仕事を持っていなかったという事実にもかかわらず、非常に迅速にコミュニティで最も役に立つ人々の一人になりました。
彼は効果的に半技術的なカスタマーサポートをやっていて、楽しみのために側で物を構築していました。これがRoyです。このように呼び出して申し訳ありませんが、あなたはここで私が説明している文字通り黄金の例です。Royがキャリアシフターだったことも注目する価値があります。私が思い出す限りでは、彼はソフトウェア開発のために学校に行っていませんでした。
彼は他のスペースで働いており、側でコーディングの仕方を自分に教え、それを通じて私のコミュニティを見つけ、いくつか質問があり、私たちが構築している方法が本当に好きで、非常に迅速に私のDiscordでナンバーワンの質問回答者になりました。
そこで数週間過ごした後、彼は私たちが構築したものと、なぜそのように構築したかを理解し始め、これらの概念を内面化し、単に質問に答えることができることにすぐに気づきました。
最終的に、あなたたちがYouTubeで見たかもしれない別の開発者、Melkyも私のサーバーでぶらぶらし始めました。なぜなら、彼は私のスタック、T3スタックを使い始めていて、それについて質問があったからです。特に、TRPCでやりたい奇妙なこと。Royは私のサーバーで彼の質問に非常に迅速に答えました。その後、Melkyは、さらに進みたかったので、Royに質問をDMし始めました。Royがとてもクリアで簡潔で有用であることに気づいたからです。
Melkyは1週間か2週間後にランダムに私に連絡してきて、「くそー、Royは私が今まで話した中で最も有用な人の一人だ。彼はとても役に立つ」と言いました。それに対して私は「ええ、彼がまだ開発の仕事を持っていないのはクレイジーではないですか?」と返しました。これに対するMelkyの反応は、私が今まで受け取った最も面白いメッセージの一つでした。ドットドットドット。
冗談ですよね?待って、冗談じゃないの?何てことだ。彼は少なくとも私より10歳年上だと思った。彼が経験豊富な開発者ではないとはどういう意味ですか?彼が仕事を持っていないとはどういう意味ですか?何てことだTheo?
それを私はスクリーンショットして、Clerkで雇っていた友達に送りました。そして確かなことに、Royは今そこで働いています。Clerkで働いた、または働いている人にRoyについて尋ねれば、彼らの反応はこのようなものになるでしょう。彼は今Clerk内の知識の井戸です。誰もがRoyと一緒に働くのが大好きです。なぜなら、彼はただ役に立つことを気にかけているからです。
そして彼はコミュニティが学ぶのを助けてくれたことに非常に感謝していたので、それを100倍返し、今ではこれをどのようにするかの黄金の例です。彼は私のスペースを学ぶために使用し、そのプロセスを通じて、他の人々がまだ完全には学んでいないことを学び、それを有用であるために使用できました。
彼はMySpaceから得たものの10倍をすぐに前払いしました。彼はいくつかのクールな技術の名前以外にはほとんど何も得ていないと主張しますが、非常に、非常に迅速に言われたコミュニティの最も重要な人々の一人になりました。そしてそれはそれほど難しいことではありません。
Royへの大きなエール。彼は自分のすべての成功を十分に値しますが、私や他のYouTuberよりも、Royは速く変化する技術環境でうまくやる方法のモデルとして見るべきだと思います。
ですから、これをするのはどのように見えますか?明らかに、人々はますますAIに質問をし、Stack Overflowにはますます質問をしません。ですから、これらの機会の多くは以前ほど目に見えませんが、信じてください、まだたくさんあります。多くのissuesを持つリポジトリがたくさんあり、良い再現がありません。
もしあなたがツールを使って作業していて問題に遭遇し、そのツールのためにすでにカットされたissueを見つけたが、再現がなく、それを複製する方法を示しておらず、あなたが持っていたのと同じことについての曖昧なエラーメッセージだけを示しているなら。
再現を持ってそこに行き、StackBlitzで立ち上げるか、問題を示す非常にシンプルで最小限の例である新しいGitHubリポジトリを作成してください。これは非常に多くの異なるスキルを示します。このissueを見つけたので、あなたがリソースフルであることを示します。問題を解決しやすくしようとしているので、人々の時間を無駄にしようとしていないことを示します。
ランダムなドライブバイPRを得ようとしているだけではないことを示します。なぜなら、PRの提出はマージされることを目標にしているかもしれないからです。誰もクレジットを得るためにissueにコメントしていません。彼らはissueが解決されるようにissueにコメントしています。そして、それは問題空間を同じ問題の非常に見やすいバージョンに減らすのに十分に理解していることも示します。
もしあなたが入ってきて「ねえ、これを見ました。これらの3つのことはそれを解決しませんでした。これが問題を示すシンプルな例です」と言えるなら。あなたはそれを見るそのプロジェクトのすべてのメンテナーがあなたの名前を覚えて、あなたを好きになることに賭けることができます。そして、それをするのはそれほど難しいことではありません。
または、もしあなたがTwitterにいて、誰かが何かに問題を抱えているのを見たら、彼らに返信するか、DMして助けを提供してください。または、あなたがDiscordサーバーで質問をしている誰かを見たら、あなたがちょうど自分で解決しなければならなかったことについて、あなたがどのようにそれをしたか彼らに伝えてください。あなたが問題を抱えるたびに、他の誰かが同じ問題を抱えることになります。それを覚えておくために最善を尽くし、奇妙な考え方ですが、あなたにその時間を節約してくれたであろう2つの文を書き留めようとしてください。
何かを理解しようとして1日か2日を費やし、最終的にそれを理解したら、それを理解したばかりの質問の瞬間にまだいるときに、学んだことを取り、数日前に最初に問題を抱えたときに助けてくれたかもしれないその最小バージョンを見つけようとする本当に新しい機会があります。
これを試してみてください。そしてもしかしたら、もしかしたら、それを書き留めてみてください。なぜなら、将来、他の誰かが同じ問題を抱えているのを見るからです。そしてもしあなたが助けを提供するなら、あなたは突然はるかに信頼でき、はるかに協力的で、はるかに有用で、はるかに記憶に残ります。私のチャットで私のために質問に答えてくれる、私に有用なリソースをもたらしてくれる、私に有用なものを構築してくれる人々のユーザー名を覚えています。
しかし、記憶に残る必要があります。ひどいものの山の上のもう一つの履歴書であることは、あなたに仕事をもたらしません。しかし、ここで物事は本当に楽しくなります。もしあなたが特にこれらすべてを行い、クールなことをするためにこれらの新しいツールに本当に頼り込み、他の人に有用であると見られるなら、あなたはすべてのレバーに対して勝つことができます。
技術について何も知らない採用マネージャーは、あなたが資格を持っていて、CursorとClaude Codeを本当に上手に使う方法を知っていることを見ます。それはAIです。彼はAI対応です。クールです。そして、チームの実際のエンジニアは「ああ、私たちが使うもののGitHub issuesで彼がポップアップするのを見ました。私たちのスペースで彼が有用であるのを見ました。それは素晴らしい」と言います。そして、会社の幹部は「ああ、私たちはAIネイティブエンジニアを雇っています。これらのツールを使って育った、私たちの会社を近代化できる人々」と言います。
それはひどいことですが、それに頼ることができます。彼らが与えているレバーを使ってください。Netflixのctoがここで作った奇妙な声明、つまりジュニアがAIネイティブであるということを利用してください。それは愚かですが、それを利用してください。そして私はクラスでカンニングするために言っているのではありません。あなたが構築したいものの学習、成長、完成を加速するためにこれらのツールをあらゆる種類の異なることに使うために言っています。
最後の一つ、これをもっと持ち出すべきだと気づいたので、あなたたちの多くが何に取り組むかについてアイデアを思いつくのに苦労するからです。特に、問題が今あなたが構築できる解決策であるという方法で脳を配線していないときの早い段階では。あなたの質問をプロジェクトに変えてみてください。最初は奇妙に感じるでしょう。
簡単な例として、私が持っていた質問は、どの異なるAIモデルが書くことが上手だったかということでした。もし私がホームページのコピーを生成したり、エッセイを書くのを助けるためにモデルを使いたいなら、どのモデルがこれが上手で、悪いですか?
確かにここやそこにいくつかのベンチマークがありますが、私はそれらのベンチマークが好きではありませんでした。それらは私がモデルを使用した経験と一致しませんでした。そして、私はまた、彼らがフィードバックをどう処理するかについても興味がありました。もしあなたがモデルに書いたものをレビューして、それに応じて調整するように伝えたら、それをどれだけうまく処理するでしょうか?
ですから、私はプロンプトに基づいてエッセイを生成するモデルを持つローカルで小さなアプリをバイブコーディングし、他のすべてのモデルにフィードバックを与えさせました。それからエッセイを更新し、それからそれらすべてを比較できました。そしてそれは本当に楽しかったです。私はたくさん学び、書くシナリオで異なるモデルがどのように振る舞うか、そしてそれらがお互いにどのように比較されるかについて実際の新しい発見をしました。
それは本当に楽しいプロジェクトで、たくさん学び、スペースの他の会社や人々と話すときに話すべき楽しいことがたくさんあります。このような質問があるときは、自分自身の解決策を構築してみてください。SolidとSveltがReactよりどれだけ速いか知りたいなら、それを理解するために何かを構築してください。
C++プロジェクトをscaffoldするのがなぜそんなに難しいかを理解したいなら、自動的にそれを行うためのスクリプティングを構築して、欠点と落とし穴がどこにあるかを確認してください。人々がRustがGoよりもずっと優れていると思う理由を見たいなら、両方で同じことをバイブコーディングして、それぞれの利点と欠点を確認してください。
あなたの質問に答えるために物を構築してください。そうすればたくさん学びます。
興奮を保つことの重要性
オーケー、嘘をつきました。もう一つあります。興奮してください。私はこれが難しいことを知っています。特にあなたがその恐ろしい、ああ神様、学校がもうすぐ終わる。まだ仕事がない瞬間にいるなら。
あなたの一生の間あなたの仕事であったものがあったなら、小学校にいて、次に中学校、次に高校、夏の間、あなたの仕事はリラックスすること、そして大学の間、あなたの仕事は学ぶこと。それが終わったとき、もしあなたが次のものを持っていなければ、怖いことがあります。その感情を勝たせてはいけません。
興奮は成功に不可欠です。今までよりも。そしてこれは、それらの経験豊富なエンジニアに対するあなたの最大のレバーです。あなたが持ち込むエネルギーです。分野全体が変化しているという事実は怖いです。絶対に。しかしそれはまた地獄のように興奮します。成功するために10年間の知識を捨てる必要はありません。
この側の人々の多くは、これらすべての変化を生き残るために10年以上の知識を捨てなければならないでしょう。あなたの問題の解決策を構築する方法を学ぶために10年間コーディングする必要はありません。それはとてもクールです。そして、あなたの脳の働き方が異なるので、あなたは物事を異なって見るでしょう。
Nokiaに、Blackberryに本当に夢中だった人々は、長い間タッチスクリーンキーボードでスマートフォンを使う方法を知らなかったし、彼らのアプリをその周りに構築する方法を理解できませんでした。なぜなら、彼らの考え方は古いやり方に非常に深く焼き付いていたからです。そして物事も速く変化しています。
それらは私が育ったときとはすでに非常に異なっており、1年後にはさらに異なるでしょう。それを利用してください。あなたが考えることができるものは何でも、あなたはあるバージョンを構築できます。数百万ユーザーの年間10億ドルの製品を構築できないかもしれません。すべてのプラットフォームで無限にスケールします。しかし、犬のためのTwitterを構築したいなら、それほど多くの経験なしでそれをすることができ、プロセスを通じて多くを学びます。
好奇心を持ち、興奮し、協力的であり、塹壕にいて、ことをやってください。そして、あなたが私たちとここにいて、私たちとぶらぶらしていて、毎日コードで働く人々と話している限り、おそらくかなりうまくいくでしょう。
誰かが与えられた週に話す開発者の数と、仕事を見つけるのにどれだけ苦労しているかに対してかなり良いお金を賭けることができ、それはかなり線形的な関係になるでしょう。
もしあなたがより多くの開発者とやり取りし、他の開発者と協力し、彼らと話し、彼らが何をしているかを聞き、彼らが何に苦労しているかを聞き、彼らと協力して自分自身の解決策を構築し、彼らの質問に答え、彼らに質問をするなら、あなたはほぼ確実に物事を理解するでしょう。しかし、そこにいて、有用であることを始める必要があります。
あなたがどれだけ尋ねるか対してどれだけ共有するかのバランスを取ることもここでの重要な部分です。あなたの目標は、できるだけ早く、取るよりも多く与えることであるべきです。尋ねるよりも多くの質問に答えることです。使うよりも有用であることです。
これらの技術面接の一つであなたができる世界で最高のことは、面接を行っている人が知らない、または理解していない質問に答えることです。
協力的であり、有用であり、活力があり、準備ができていてください。そして最終的にあなたは成功するために必要なタイプの信頼を構築し始めるでしょう。そして最後の一つ、私は自己中心的に、私が世界最高のエンジニアを割引価格で得ることができるほど採用が下手な会社に感謝したいと思います。私はあなたたち一人一人に感謝しています。
明確にするために、私は自分のチームに公平に支払いますが、大企業が彼らに面接する方法さえ知らないので、これらの伝説が私のために働いてくれるという事実は大きなエッジです。そして、もしあなたが何か有用なものを構築し、自分自身のスタートアップを作ることに興味があるなら、あなたもそれを利用すべきです。
もしあなたが自分の会社を始めるなら、誰もが面接が下手であるという事実を利用してください。素晴らしい会社から人々を引き抜いてください。競合他社よりも優れた採用をする機会を取ってください。なぜなら、あなたの競合他社はほぼ確実に採用が下手だからです。
私はここで言うべきことをすべて言ったと思います。言うべきことがたくさんありました。これが誰かの役に立つことを願っています。私が長い間ジュニアではなかったので、これらのものが異なる可能性があることは知っています。そして、私が入ってきて「数字を見て。あなたたちはとてもひどい。悪い気分になるのをやめて」と言うことを期待していた人が多いことは知っています。
私はそのようなことは何もしたくありません。あなたたち全員に、なぜ人々があなたを特に雇いたくないのかを理解してほしいだけです。それはかなりの熱弁でした。これが有用かどうか、そして次回何をもっとうまくできるか教えてください。


コメント