JavaRush /Java Blog /Random-JA /コーヒーブレイク#77。重度の詐欺師症候群に私がどのように対処したか。プログラミング面接に合格する方法 - 上級開...

コーヒーブレイク#77。重度の詐欺師症候群に私がどのように対処したか。プログラミング面接に合格する方法 - 上級開発者からのアドバイス

Random-JA グループに公開済み

重度の詐欺師症候群に私がどのように対処したか

出典: Medium 大学では、教育や知能レベルに関係なく、誰でもできると思っていたので、コンピューター サイエンスを専攻に選びました。また、テクノロジーを使用して現実世界の問題を解決できる可能性にも興味をそそられました。しかし、コンピューター科学者になるために何が必要かを事前に知っていたら、私は決してこの分野に参入しなかっただろう。私は無能であるという理由で自動的に失格になってしまいます。コーヒーブレイク#77。 重度の詐欺師症候群に私がどのように対処したか。 プログラミング面接に合格する方法 ~先輩開発者からのアドバイス~ 1コンピューター サイエンスを選択するほとんどの人は、自分には平均以上の知性があると信じているため、挑戦する用意があります。しかし、ほとんどの場合、問題は解決できません。私の大学では、コンピューターサイエンス専攻の中退率は 75% でした。しかし、コンピュータ サイエンスで成功した人たちは、本人がそれを認識していたかどうかに関係なく、例外的で非常に才能のある人々でした。私自身はかなり平凡だと思っていましたが、それでもコンピューターサイエンスを始めることにしました。大学 1 年目の後、夏の間にソフトウェア エンジニアリングのインターンシップを完了しました。お金が儲かったのは嬉しかったですが、詐欺師になったような気分でした。無能にもかかわらず採用されたことはわかっていました。そして、なぜプログラミングの仕方を知らない人を雇う必要があるのか​​理解できませんでした。夏が終わり、大学に戻る時期が来たとき、上司はインターンシップをさらに 6 か月間延長しました。彼は私の仕事が好きで、勉強しながら会社で働いてほしいと言いました。正直、嘘だと分かっていました。彼は私と話すのが好きで、私が会社の文化に合っていると感じたので、喜んで私をサポートしてくれました。このことから、多くの企業は上司が気に入る限り、無能な従業員を雇用し続けているという結論に達しました。今、私もその一人でした。2年目終了後、また夏のインターンシップに参加しました。数週間後、上司は私を技術マネージャーの研修生にしました。彼は私が他の練習生にとって素晴らしいリーダーになれると考えてくれました。このため私は彼の意見に懐疑的になりました。どうして彼はたった3週間で私がどのようなリーダーであるかを知ることができたのでしょうか?私はどんな仕事でも誰かを監督したことがありません。うまくいくことを期待してコードを書くのをやめました。そうすれば、彼には私を解雇する理由ができるでしょう。3年生の初めに、私はその学科の教授の1人の研究助手の職に応募しました。資格を取れるとは思っていませんでしたが、挑戦してみるのは悪くないと思いました。結局、私はその仕事に就きました。これは、国立科学財団 (NSF) から資金提供を受け、著名な教授と共同で行われた研究プロジェクトでした。彼のもとで働きたいと思った修士課程の学生の多くは断られた――彼は彼らを無能だとみなしたのだ。でも彼は私を選んだのです。学部3年生。これが私の不安発作をさらに悪化させました。最初の週には絶対にクビになると確信していました。何をしているのか分かりませんでした。私はコンピューターサイエンスの研究については何も知りませんでした。宿題のために良いコードを書くことさえできませんでした。彼らが私を雇い続けたので、私は本当に嘘つきになったと99%確信していました。研究を終えてすぐに、予備の計画が必要だったので、インターンシップに応募し始めました。いくつかの申請書を送りました。過去数年、私に折り返し電話をかけてくるのは小さな会社だけでした。今回はすべてが奇妙でした。Google、Facebook、ブルームバーグや他の多くのテクノロジー企業が、申請からわずか最初の週に提出されました。通常、人々はそのようなニュースに大喜びします。しかし、私はそうではありません。とてもパニックになりました。結局のところ、それは私ではありません。履歴書を飾りすぎたので、人々は私を別人だと思っているように感じました。私が書類上で見たほど賢くないことがこれらの企業にバレて、すぐに解雇されるのではないかと非常に怖れていました。そのため、大手企業の面接はすべて断りました。小さなスタートアップ企業で面接を受けた後、そこでも私を雇ってもらえないことに気づきました。面接中に私が書いたコードはひどいもので、バグが多く(バグがあるという意味です)、電話がかかってくるはずがないことはわかっていました。アルゴリズムを完了するために追加の時間を要求したこともありました。なぜ遅いプログラマーを雇うのでしょうか? 翌日、オファーのメールが届きました。仕事のオファーをもらったときはショックでした。面接をしてくれたエンジニアに、なぜ私を採用したのか聞いてみました。彼は、「あなたの履歴書は、この夏インターンとして私たちが受け取った中で最高のものでした。そして、あなたと話した後、間違いなくあなたを採用すべきだと確信しました。」と言いました。何?ずっと嘘をついていたような気がした。彼らは私を雇った後、私に何ができるかを探ろうとしていましたが、私は自分が何をしているのか知らずに嘘をつきました。しかし、私にはまだ仕事がありました。同時に大学でもアルバイトをしていました。数か月後、Google から再び連絡がありました。今回は卒業後の正社員就職でした。Google にフルタイムの仕事に応募したことはありません。なぜ彼らの採用担当者は、卒業後のソフトウェア開発者の仕事の可能性について私にアプローチしたのですか? 私は学校の最終学年さえ終えていませんでした。さらに、この求人への正式な応募すら受け付けていませんでした。採用担当者に、どうやって私を見つけたのですか?と尋ねました。私はこのポジションにはまったく応募しませんでした。同氏は次のように述べた。「グーグルは毎年、新卒エンジニアを採用するために特定の学校に採用担当者を派遣している。私はあなたの大学に任命されました。私たちは学生のプロフィール、LinkedIn、個人 Web サイト、公開履歴書を検討し、最適な候補者に連絡します。あなたの履歴書は来年の卒業生に特別に選ばれました。」ご興味がございましたら、こちらからどうぞ なぜ遅いプログラマーを雇うのでしょうか? 翌日、オファーのメールが届きました。仕事のオファーをもらったときはショックでした。面接をしてくれたエンジニアに、なぜ私を採用したのか聞いてみました。彼は、「あなたの履歴書は、この夏インターンとして私たちが受け取った中で最高のものでした。そして、あなたと話した後、間違いなくあなたを採用すべきだと確信しました。」と言いました。何?ずっと嘘をついていたような気がした。彼らは私を雇った後、私に何ができるかを探ろうとしていましたが、私は自分が何をしているのか知らずに嘘をつきました。しかし、私にはまだ仕事がありました。同時に大学でもアルバイトをしていました。数か月後、Google から再び連絡がありました。今回は卒業後の正社員就職でした。Google にフルタイムの仕事に応募したことはありません。なぜ彼らの採用担当者は、卒業後のソフトウェア開発者の仕事の可能性について私にアプローチしたのですか? 私は学校の最終学年さえ終えていませんでした。さらに、この求人への正式な応募すら受け付けていませんでした。採用担当者に、どうやって私を見つけたのですか?と尋ねました。私はこのポジションにはまったく応募しませんでした。同氏は次のように述べた。「グーグルは毎年、新卒エンジニアを採用するために特定の学校に採用担当者を派遣している。私はあなたの大学に任命されました。私たちは学生のプロフィール、LinkedIn、個人 Web サイト、公開履歴書を検討し、最適な候補者に連絡します。あなたの履歴書は来年の卒業生に特別に選ばれました。」ご興味がございましたら、こちらからどうぞ なぜ遅いプログラマーを雇うのでしょうか? 翌日、オファーのメールが届きました。仕事のオファーをもらったときはショックでした。面接をしてくれたエンジニアに、なぜ私を採用したのか聞いてみました。彼は、「あなたの履歴書は、この夏インターンとして私たちが受け取った中で最高のものでした。そして、あなたと話した後、間違いなくあなたを採用すべきだと確信しました。」と言いました。何?ずっと嘘をついていたような気がした。彼らは私を雇った後、私に何ができるかを探ろうとしていましたが、私は自分が何をしているのか知らずに嘘をつきました。しかし、私にはまだ仕事がありました。同時に大学でもアルバイトをしていました。数か月後、Google から再び連絡がありました。今回は卒業後の正社員就職でした。Google にフルタイムの仕事に応募したことはありません。なぜ彼らの採用担当者は、卒業後のソフトウェア開発者の仕事の可能性について私にアプローチしたのですか? 私は学校の最終学年さえ終えていませんでした。さらに、この求人への正式な応募すら受け付けていませんでした。採用担当者に、どうやって私を見つけたのですか?と尋ねました。私はこのポジションにはまったく応募しませんでした。同氏は次のように述べた。「グーグルは毎年、新卒エンジニアを採用するために特定の学校に採用担当者を派遣している。私はあなたの大学に任命されました。私たちは学生のプロフィール、LinkedIn、個人 Web サイト、公開履歴書を検討し、最適な候補者に連絡します。あなたの履歴書は来年の卒業生に特別に選ばれました。」ご興味がございましたら、こちらからどうぞ あなたの履歴書は来年の卒業生に特別に選ばれました。」ご興味がございましたら、こちらからどうぞ あなたの履歴書は来年の卒業生に特別に選ばれました。」ご興味がございましたら、こちらからどうぞ私の履歴書大学から。3年生のとき、卒業後は正社員に就職するのではなく、ITベンチャーを立ち上げようと考えていました。Google が再び私に連絡をくれたとき、私は立ち止まって真剣に考えました。もし私が本当に自分が思っているほど悪いプログラマーではなかったらどうなるでしょうか? もし私が他の人に見えるスキルを持っていたのに、私がそれに気づいていなかったらどうしますか? Google からの招待は、私にスタートアップを立ち上げるための最後の後押しと自信を与えてくれました。そのような会社が私が潜在的に優れた開発者であると考えるのであれば、チェックしてみる必要があります。私が関心を持っている実際の問題を解決する独自のビジネス ソフトウェアを作成します。これがどのように機能するかを見てみましょう。そこで私はGoogleの申し出を断りました。卒業後はスタートアップに取り組み始めました。顧客が私の製品に興味を持ってくれれば、私には実際に価値があると感じました。おそらく私は本当に才能があり、才能があり、信じられないほど優秀なのかもしれません。1 年後、私たちはアプリのベータテストを行いました。クライアントは時には最も厳しい批評家であり、最も気難しい人である場合もあります。しかし、対象となるクライアントのほとんどは私のソフトウェアに感銘を受けました。あるユーザーは、アプリの機能の 1 つについて「すごい、革新的ですね」とコメントしました。別の人はアプリをテストしてこう言いました。いくら支払えば使用できますか? で、いつから使い始められるの?」それから彼はビジネスパートナーに電話してこう言いました。私たちには彼女が必要なんです。」このようにして、私は詐欺師症候群をなんとか克服したことに気づきました。私の教授の一人は、大学4年生のときに詐欺師症候群について話しました。講演後、クラスの 80% 以上 (私もその 80% の一員でした) が、自分たちが愚かだと感じたため、このテーマについて話してくれたことに対して感謝の連絡をくれたと彼は言いました。私が称賛した、傑出した非凡な才能を持った学生たちのことを話しているのですが、彼らもまた劣等感に苦しんでいたことが判明しました。詐欺師症候群への対処法を学びました。私の自己認識は、他人と自分を比較することに基づいていました。しかし、私は自分自身を過去の経験と比較する必要がありました。自分の仕事に感謝することを学ぶことで、自分は自分の仕事で十分に能力があると認識することができました。最初のインターンシップでは、最適なコードの書き方はわかりませんでしたが、ユーザー インターフェイス (UI) デザインについては正しく理解できました。後で上司が私に語ったところによると、私がウェブサイトを更新するための優れたプロトタイプを開発し、それをプラットフォームの再設計に使用することにしたため、私を引き留めてくれたそうです。当時、私は適切なコードの作成方法を知りませんでしたが、優れたユーザー インターフェイスのデザインという、すべての開発者が持っているわけではない貴重なスキルを持っていました。私がインターンマネージャーを務めたインターンシップでは、私の上司は、私が代わりにインターンを調整する必要がなくなりました。そこで私は彼の仕事を楽にしてあげました。人々を管理して仕事をさせるのは素晴らしいスキルであり、私にはそれが備わっていました。自分の仕事はコードを書くだけだと思って自分を過小評価していました。他にも私が他の人より優れている要件がありました。私が一緒に研究を行った教授は、面接中に私のテクノロジーに関する知識と、私が仕事でどの技術に重点を置きたいかに感銘を受けたと言いました。「多くの学生が人気のあるアプリケーションの類似品を作ろうとここに来ていますが、あなたは自分が理解し、使い方を知っているものを作りたいと思ってここに来ています。」と彼は言いました。彼は感銘を受けました。大学在学中、私は多くの個人プロジェクトに取り組み、そこから多くのことを学びました。卒業までに個人プロジェクトや自主研究で 6 回のインターンシップを終えた大学生に出会うことは、毎日ではありません。これは、私が強い労働倫理を備えた意欲的な学生であることを示しています。Google が私に興味を持っているのも不思議ではありません。そのような従業員を望まない人はいないでしょうか?残業に費やした多大な努力と仕事のありがたみを本当に理解できるようになるまで、しばらく時間がかかりました。今ではそれが功を奏しました。自分を他人と比較する必要はありませんでした。私はすでにすべてに対処しており、人々はそれを見ていました。私も自分の目で見てみる必要がありました。今、私がプログラミングの旅を始めたばかりの初心者と一緒に座っていると、彼らは私が魔法のようにこれらすべてのことを知っていると思っているようです。しかし実際には、それらの研究に多くの時間を費やしただけです。私は過去 5 年間 (学習期間 4 年間を含む) で少なくとも 10 件のプログラミング関連のプロジェクトに携わってきました。結局のところ、私は非常に多くのことを試してきたので、この経験は開発においてより良い意思決定をするのに役立ち、「何かを知っている」ように見えるようになります。自分の仕事の結果を見て、自分自身に対する態度が変わりました。私の仕事が他の人に利益をもたらすほど、私は自分自身を信じるようになりました。私はただ、何年にもわたって解決できたすべての困難なことを思い出します。ここは私が死ぬ山ではない。必ず乗り越えて続けます。それを理解し、使い方を知っていること。」彼は感銘を受けました。大学在学中、私は多くの個人プロジェクトに取り組み、そこから多くのことを学びました。卒業までに個人プロジェクトや自主研究で 6 回のインターンシップを終えた大学生に出会うことは、毎日ではありません。これは、私が強い労働倫理を備えた意欲的な学生であることを示しています。Google が私に興味を持っているのも不思議ではありません。そのような従業員を望まない人はいないでしょうか?残業に費やした多大な努力と仕事のありがたみを本当に理解できるようになるまで、しばらく時間がかかりました。今ではそれが功を奏しました。自分を他人と比較する必要はありませんでした。私はすでにすべてに対処しており、人々はそれを見ていました。私も自分の目で見てみる必要がありました。今、私がプログラミングの旅を始めたばかりの初心者と一緒に座っていると、彼らは私が魔法のようにこれらすべてのことを知っていると思っているようです。しかし実際には、それらの研究に多くの時間を費やしただけです。私は過去 5 年間 (学習期間 4 年間を含む) で少なくとも 10 件のプログラミング関連のプロジェクトに携わってきました。結局のところ、私は非常に多くのことを試してきたので、この経験は開発においてより良い意思決定をするのに役立ち、「何かを知っている」ように見えるようになります。自分の仕事の結果を見て、自分自身に対する態度が変わりました。私の仕事が他の人に利益をもたらすほど、私は自分自身を信じるようになりました。私はただ、何年にもわたって解決できたすべての困難なことを思い出します。ここは私が死ぬ山ではない。必ず乗り越えて続けます。それを理解し、使い方を知っていること。」彼は感銘を受けました。大学在学中、私は多くの個人プロジェクトに取り組み、そこから多くのことを学びました。卒業までに個人プロジェクトや自主研究で 6 回のインターンシップを終えた大学生に出会うことは、毎日ではありません。これは、私が強い労働倫理を備えた意欲的な学生であることを示しています。Google が私に興味を持っているのも不思議ではありません。そのような従業員を望まない人はいないでしょうか?残業に費やした多大な努力と仕事のありがたみを本当に理解できるようになるまで、しばらく時間がかかりました。今ではそれが功を奏しました。自分を他人と比較する必要はありませんでした。私はすでにすべてに対処しており、人々はそれを見ていました。私も自分の目で見てみる必要がありました。今、私がプログラミングの旅を始めたばかりの初心者と一緒に座っていると、彼らは私が魔法のようにこれらすべてのことを知っていると思っているようです。しかし実際には、それらの研究に多くの時間を費やしただけです。私は過去 5 年間 (学習期間 4 年間を含む) で少なくとも 10 件のプログラミング関連のプロジェクトに携わってきました。結局のところ、私は非常に多くのことを試してきたので、この経験は開発においてより良い意思決定をするのに役立ち、「何かを知っている」ように見えるようになります。自分の仕事の結果を見て、自分自身に対する態度が変わりました。私の仕事が他の人に利益をもたらすほど、私は自分自身を信じるようになりました。私はただ、何年にもわたって解決できたすべての困難なことを思い出します。ここは私が死ぬ山ではない。必ず乗り越えて続けます。私の仕事が他の人に利益をもたらすほど、私は自分自身を信じるようになりました。私はただ、何年にもわたって解決できたすべての困難なことを思い出します。ここは私が死ぬ山ではない。必ず乗り越えて続けます。私の仕事が他の人に利益をもたらすほど、私は自分自身を信じるようになりました。私はただ、何年にもわたって解決できたすべての困難なことを思い出します。ここは私が死ぬ山ではない。必ず乗り越えて続けます。

プログラミング面接に合格する方法 - 上級開発者からのアドバイス

出典: Free Code Camp 技術面接は、技術職に就職する際に最も緊張する部分の 1 つです。面接官がどんな質問をするかわかりません。提示された問題を解決するのに問題があるかもしれません。正しい答えを選択する最善の方法がわかりません。多くの意欲的なプログラマーは、コーディング面接の質問をすべて暗記しようとして気が狂ってしまいます。あなたも私も、このアプローチが持続不可能であることを知っています。私は最近、Stitch Fix のシニア ソフトウェア エンジニアである友人の Michelle に会いました。彼女は、インタビューに招待する開発者に求める資質について共有しました。コーヒーブレイク#77。 重度の詐欺師症候群に私がどのように対処したか。 プログラミング面接に合格する方法 ~先輩開発者からのアドバイス~ 2

好奇心を持ってください

開発者候補者に対するミシェルの最も重要なアドバイスの 1 つは、好奇心を持つことです。明確な質問をしてください。あなたが直面している問題についてあなたの考えを共有してください。面接官は単に適切な解決策を探しているわけではありません。彼らはあなたの考え方を理解したいと思っています。自分の考えを示す最良の方法は、質問することです。面接官が文字列に数字が含まれているかどうかを確認するように求めたとします。質問を自分の言葉で説明する必要があります。たとえば、「一連の文字に数字が含まれているかどうかを確認する方法を見つける必要がありますか?」これを言うことで、面接官にあなたの論理を理解する機会を与えることができます。また、あなたが問題を気にかけていることを彼らに示します。そして、明確な質問をすることを恐れないでください。上記と同じ例を使用して、いくつかの質問をすることができます。
  • 「探している数字には小数が含まれていますか?」
  • 「文字を確認する前に、何らかの方法で文字を並べ替える必要がありますか?」

ソリューションを提供する

提案をよりオープンに受け入れるための 1 つの方法は、面接官に興味を持ってもらうように努めることです。あなたの論理を言葉にして、問題解決の旅を彼に案内してください。上記と同じ問題を使用します。最初からロジックを表現する方法をいくつか紹介します。
  • 「では、文字と数字を分離する方法を見つける必要がありますね?」
  • 「エンドツーエンドの文字セット列挙を作成することを考えています。」
  • 「プログラムを使用して文字を反復処理することもできますが、数値にこだわりましょう。」
あなたが提供する情報が多ければ多いほど、対話者は助けてくれる傾向があります。

共に働く

開発者が常に一人で作業するという考えは誤解です。ほとんどの場合、共同作業が必要なバージョン管理ツールやプロジェクト管理ツールを使用します。自分のアプローチを表現し、重要な質問をし、面接官の興味を惹く必要があります。こうすることで、より早く意思決定に至ることができます。また、他の開発者と効果的に協力できることを会社の代表者に示すこともできます。面接官に興味を持ってもらうには、次のような方法があります。
  • 「for ループはこのソリューションには単純すぎるか、複雑すぎるでしょうか?」
  • 「浮きがあるかどうかを判断することはどのくらい重要ですか?」
  • 「どの解決策を考えていますか?」

それを乗り越える準備をしてください。

最後に、Michelle 氏は開発者候補者に対し、目の前の問題を確実に解決するようアドバイスしました。候補者にとって最も一般的な状況の 1 つは、行き詰まったときです。これは理解できますが、この状況では誰も勝者はいません。あなたがどれほど素晴らしいかを示すことはできませんし、面接官はあなたを助けることはできません。これにミシェルは「試してみて」と言った。たとえ間違ったコードを書いたとしても、まったく書かないよりはマシです。ボード/コード エディターに何かを投稿すると、ディスカッションが生まれ、自分の考えを共有する機会が生まれ、問題を尋ねた人から正しい答えを見つける機会が生まれます。失敗を恐れるな!それは単にあなたが成功に一歩近づいたことを意味します。:) 「とにかくやってみよう」というフレーズにはさまざまな意味があります。ただし、次のような例が考えられます。
  1. ホワイトボード、紙、またはコードエディターに疑似コードを書きます。
  2. 自分の論理のどこで行き詰まっているかを正確に認識してください。
  3. あなたが考え出したい解決策を口頭で説明します。

思考を使う

面接のプログラミングは恐ろしいもので、固まってしまうのではないかという不安が常にあります。この恐怖の一部は、どんな質問が待っているのかわからないことから生じています。素晴らしいのは、コーディングの質問と解決策を暗記する必要がなくなったことです。代わりに、ここで読んだ主要な面接行動を使用して思考の基礎を構築してください。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION