ホームページ ウェブフロントエンド jsチュートリアル 練習問題で面接ゲームをレベルアップ

練習問題で面接ゲームをレベルアップ

Aug 21, 2024 am 06:18 AM

Level Up Your Interview Game with Practice Problems

導入

私のことを知らない人のために説明すると、私は 10 以上の YOE を持つフロントエンド エンジニアで、BigDevSoon - SaaS (初日からものを構築して学ぶ次世代のコード学習プラットフォーム) も作成しました。まもなく 10,000 ユーザーを超える/今月の MRR は $1,000 です。

私は React で最新の UI を構築するのを楽しんでいますが、長年にわたる「フロントエンド」の役割の変化により、私は何度もフルスタック開発者になり、BFF (フロントエンド用のバックエンド) を作成し、分析して熟考する必要がありました。大量のデータ構造とデータベースの操作。別の意味で、私たちはもはや「ウェブサイト」開発者ではなく、そのペースを保つためには、常に学習して適応する必要があります。

今日の市場が厳しい状況の中で、私は最新の仕事を見つけるまでに 1 か月以上かかりました。この道のりについては、ここで読むことができます。多くの場合 10 以上の段階にわたるマラソンのような面接をこなすことで、新しいパターンと、どのようにして就職を容易に適応させる必要があるかを理解しました。

私が気づいたパターンの 1 つは、コミュニケーションとソフトスキルです。 「歓迎ビデオを録画して、あなた自身について何か話してください。」または 3 回以上の行動/文化面での面接「x の状況であなたならどうしますか、そしてその理由を説明してください。」しかし、それは別の日のトピックなので、この投稿では取り上げません。

上記に関して私が言及するのは、まだ「インフルエンサー」ではない場合に行う価値のあることの 1 つだけです。それは、自分自身を録音しようとしたり、自分が作成したデモ機能、サイド プロジェクト、または紹介機能を実行しようとしたりすることです。あなた自身とあなたのキャリア (例: あなたの履歴書、経験、過去のプロジェクトを最長 3 ~ 5 分で要約してください)。これを聞いて、自分の声が小さすぎるか、カメラの前で緊張しすぎていることがわかるかもしれません。その恐怖を克服し、9/10の段階を突破し、それを実践しなかったという理由だけでCEO/TL/マネージャーと話すことができなかった場合を想像するのは良い練習になります。それは残念です。

もう 1 つのトピックはよく知られた練習問題ですが、信じてください。ダイクストラのアルゴリズムや赤黒ツリーなどを含む DSA 全体をマスターする必要はありません (次の面接で合格するのに役立ちますが)。

必要なのは、少しコツコツと準備をするだけで、不意を突かれることなく、最近多くの企業が候補者を選別し、長い面接で時間を無駄にするために使用している「小さな問題」を解決できるようになります。リソースを投資することによって (例: 面接が必要な人々など)

ブートキャンプやコースを受講した後の多くの「ウォーターフォール」開発者に欠けているのは、問題解決スキルです。これらのプログラムは多くの場合、あなたを手を取って自分で考えることをあまり許可しません。それが間違っているとは言いませんが、多くの人がより良くなるためにさまざまなテクニックが必要であり、プレッシャーにさらされた面接をうまく進めるためには、10 分前に認識していて、面接官は 1 時間以内に解決することを期待している問題に対する解決策をすぐに思いつくことができるかどうかは、大きな違いを生み出します。

私が経験した例の 1 つからこれについて詳しく学びましょう。その後、面接で役に立った毎日の習慣を共有し、価値のある問題解決の練習問題をいくつか提示します。

回文問題

つまり、回文とは、後ろから見ても前から読んでも同じ値であるということです。例えば。 Racecar は回文ですが、hello は回文ではありません。その値を逆にすると、代わりに olleh になるからです。

私は応募していた企業の採用担当者と電話をしており、その企業での最初の段階の一つだったので、冷たい雑談をしていました。そしてインタビューの最後の 10 分がドーンと出ました。「ねえ、最後に 1 つ質問ですが、回文問題の解決策のコードを書いてもらえませんか?」 ...そして私は少し不意を突かれました。

しかし、すぐに https://jsfiddle.net/ にジャンプして次のように書きました。

1

2

3

function isPalindrome(string) {

  return string.split('').reverse().join('') === string;

}

ログイン後にコピー

自慢ですが、採用担当者は「組み込みメソッドは使用しないでください」と言います。

わかりました、全く問題ありません。もうすぐ時間がなくなりますが、これを理解しました。

時間をかけて、次のようなばかげた解決策を考え出します。

1

2

3

4

5

6

7

8

9

10

11

12

function isPalindrome(string) {

 

  let isValid = true;

 

  for (let i = 0; i < string.length / 2; i++) {

    if (string[i] !== string[string.length - i - 1]) {

      isValid = false;

    }

  }

 

  return isValid;

}

ログイン後にコピー

そしてもちろん、採用担当者は Big O 表記について話し始めました。もう少し話しましたが、また不意を突かれてしまいました。

受け入れ可能な解決策は次のようなものだとしましょう:

1

2

3

4

5

6

7

8

9

10

11

12

13

function isPalindrome(string) {

    const normalizedString = string

    .toLowerCase()                    // Convert to lowercase

    .replace(/[^a-z0-9]/g, '');       // Remove non-alphanumeric characters

 

  for (let i = 0; i < normalizedString.length / 2; i++) {

    if (normalizedString[i] !== normalizedString[normalizedString.length - i - 1]) {

      return false;

    }

  }

 

  return true;

}

ログイン後にコピー

ここでは 2 つのことを行います。まず、文字列を正規化して、A man, a plan, a canal: Panama の場合、amanaplanacalpanama を取得し、常に「文字列値の半分まで」を反復するのではなく、ループを早めに終了します。

これは単なる例ですが、何が間違っていたのかを見てみましょう。

  1. コミュニケーションが不足しており、採用担当者が疑似コードを意味しているのか、TypeScript のような厳密な型を作りたいのか、あるいはフィドルが適切な選択なのかどうかさえ尋ねませんでした。
  2. Google/ChatGPT を使用できるかどうかは検証しませんでした (解決するのは非常に簡単でしたが、時間がほとんどなく、ワンライナーを書いた後はさらに気が散ってしまいました)。
  3. 前回の解決策は改善できる可能性があると言いましたが、それを書き留める時間がありませんでした。たぶん、それは最終的に私を捕まえるための奇妙な面接の質問だったのかもしれませんが、「組み込みメソッドを使用できますか、ループを使用すべきか、疑似コードまたは実用的なソリューションを作成すべきか、グーグルで検索できますか」のような適切な質問をすることで、 /ChatGPT?」確かに時間を大幅に節約できるでしょう。

学んだ教訓から、私はリートコードの研究を開始しました。毎日常に 1 つ以上の問題がありますが、ほとんどの場合、難易度は簡単/中程度から選択し、採用担当者が通常これらを使用するため、「人間の性質」の問題に焦点を当てようとしています。株を売買するのに最適な時期 私は次に応募していた企業の 1 つで課題として与えられ、それを解決しました。私は、応募している会社について ChatGPT に質問し、関連する可能性のある練習問題を推奨し、追加のコンテキストとして採用担当者からのメッセージを追加するのが好きです。 (はい、面接中によく説明されない場合は、電子メールで質問することもできます)。

しばらくすると、パターン、配列の問題、文字列の問題、部分の接続が見え始め、テスト ケースが異なったり、問題の性質が異なる場合でも、これらの問題を解決するために使用する方法を共有できるため、より上手にできるようになります。全く違います。

チェックする価値のある問題

プラットフォームに機能をどんどん追加しているので、BigDevSoon で練習問題を恥知らずにプラグインしてみます。現在 41 個ありますが、物事をシンプルに保ち (KISS)、最も関連性の高い問題を厳選することに努めます。 + ウォーミングアップのためにさらにいくつか (簡単レベル)。

解決する価値があると思われる問題を以下に 10 個挙げます。

1.回文

2.マックスを見つける

3. 株式を売買するのに最適な時期

4. ほとんどの水が入った容器

5. 母音を数える

6. グループアナグラム

7. 文字列の圧縮

8. サブセット

9. よく使われる単語トップN

10. 配列内のすべての重複を検索する

まとめ

それで終わりです!これらの練習問題から学ぶべきことはたくさんあり、それぞれが脳を活性化する楽しい方法です。

プロジェクトベースの学習アプローチをコミュニティを通じて広め、過去 3 年間取り組んできたアプリ BigDevSoon を稼働させることが、私の長い間の目標でした。これは私たちにとって素晴らしい成果です。

コーディングを続けてください! ?‍♂️

以上が練習問題で面接ゲームをレベルアップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScriptの文字列文字を交換します JavaScriptの文字列文字を交換します Mar 11, 2025 am 12:07 AM

JavaScriptの文字列文字を交換します

カスタムGoogle検索APIセットアップチュートリアル カスタムGoogle検索APIセットアップチュートリアル Mar 04, 2025 am 01:06 AM

カスタムGoogle検索APIセットアップチュートリアル

例JSONファイルの例 例JSONファイルの例 Mar 03, 2025 am 12:35 AM

例JSONファイルの例

独自のAjax Webアプリケーションを構築します 独自のAjax Webアプリケーションを構築します Mar 09, 2025 am 12:11 AM

独自のAjax Webアプリケーションを構築します

8見事なjQueryページレイアウトプラグイン 8見事なjQueryページレイアウトプラグイン Mar 06, 2025 am 12:48 AM

8見事なjQueryページレイアウトプラグイン

' this' JavaScriptで? ' this' JavaScriptで? Mar 04, 2025 am 01:15 AM

' this' JavaScriptで?

ソースビューアーでjQueryの知識を向上させます ソースビューアーでjQueryの知識を向上させます Mar 05, 2025 am 12:54 AM

ソースビューアーでjQueryの知識を向上させます

モバイル開発用のモバイルチートシート10個 モバイル開発用のモバイルチートシート10個 Mar 05, 2025 am 12:43 AM

モバイル開発用のモバイルチートシート10個

See all articles