冒頭に書かれたゴシップ
2020年が過ぎました。多くの人にとって、今年は経験が多すぎます。過去10年間の記憶では、比較的強いストロークかもしれません。昨年は「煮る」がこの段階での私のキーワードです。あきらめなければならないのは事実です。幸い、「煮る」ことで、新しい2021年にとても良いスタートを切ることができました。お気に入りを手に入れました。提供。
簡単に言えば、タイトルと同じように、今日もヴェルサイユが欲しいです。大きな工場でのインタビューは想像していたほど難しくはないことがわかりました。Bytedance3面+ Tencent 6面、1回限りのパスです。以下に詳しく説明します。インタビューを行う友人に体験を提供したいと思って、大きな工場での私の経験について話しましょう。
PART1:Bytedance3ラウンドのインタビューシーンを再現
-バイトビートの最初の側面:
最初の側面は比較的単純でなければならないので、プロセス全体の中心的な状態は比較的安定していて、緊張はあまりありません。このラウンドは主に基本を調査し、プロジェクト関連の質問をすることです。
①TCPの基礎知識
- 質問1:スリーウェイハンドシェイクとフォーウェイウェーブのプロセスを詳しく説明してください(スリーウェイハンドシェイクとフォーウェイウェーブのメカニズムに精通している必要があり、状態図を描きます)
- 質問2:4つのウェーブがあるTIME_WAIT状態の目的は何ですか?(4つの波の状態図を描く必要があります。そうすると、質問が拡張され、なぜ4つの波が2回ではなく4回になるのでしょうか?)
- 質問3:信頼性を確保するためにTCPはどのようなメカニズムを使用していますか?(この質問は単純ですが、より包括的に回答する必要があります。ACK確認メカニズム、タイムアウト再送信、スライディングウィンドウとフロー制御、さらにはフロー制御メカニズムの4つの側面から詳細に回答する必要があります。)
②言語の基礎知識
- ByteDanceはGoに基づいているため、バックエンドの位置ですが、Goについてどれだけ知っているか、他の言語についてどれだけ知っているかについても尋ねられます。
- Java構文の基本
③ネットワークプログラミングの基礎
- 質問1:ネットワークIOモデルとは何ですか?(5つのネットワークI / Oモデル、ブロッキング、ノンブロッキング、I / O多重化、信号駆動型IO、非同期I/O。I/Oデバイスからカーネルモードへのデータから、カーネルモードからプロセスユーザーモードまでを個別に説明します。これら5種類の違い。)
- 質問2:I / O多重化のselect / poll / epollの違いは何ですか?(selectのメカニズムとselectの3つの欠点から、epollメカニズムとepollがselectの3つの欠点をどのように解決するかを説明します。epollでの水平トリガーとエッジトリガーの違いについても説明します。)
④HTTP関連の基盤
- 質問1:サーバーへのURLにアクセスするとき、クライアントはどのように経験しますか?(7層ネットワークモデルから、HTTP-> TCP-> IP->リンクのプロセス全体がメッセージの生成と配信のプロセスを説明します)
- 質問2:HTTPSとHTTPの違いを説明してください(ポートの違い、およびHTTPSがSSLと暗号化にどのように基づいているかから)
- 質問3:HTTPプロトコルの要求メッセージと応答メッセージの形式(要求メッセージと応答メッセージのコンポーネントについて非常に明確にし、特定のケースを記述する必要があります)。
- 質問4:HTTPステータスコードとは何ですか?(一般的なコードの例を示すために、2xx、3xx、4xx、5xxから、インタビュアーは301と302の違いを尋ね、シーン500/503/504がそれぞれ表示されます。)
⑤キャッシュとデータベースの基礎知識
- 質問1:redisのデータ構造を説明してください。(基本的なデータ構造は5種類、高度なデータ構造は4種類あります。インタビュアーは、ジャンプテーブルを中心に、ブルームフィルターの原理とZsetの実現原理についても質問しました。)
- 質問2:MySQLシナリオのトピック(インタビュアーはシナリオを提供し、クエリSQLの記述を要求し、共同ステートメントを調べ、複雑なステートメントをページングして最適化する方法を示します。)
⑥裸の書き込みアルゴリズム
- ツリーの非再帰的な事前注文トラバーサル。
-バイトビートの2番目の側面:
①プロジェクト経験
双方の質問は基本的に個人的なプロジェクトの経験に基づいており、プロジェクトに応じて一連の質問が提起されます。他社への通常の面接と大差ありませんが、面接官から先に自社のプロジェクトを紹介してもらいます。紹介の過程で、詳細に基づいて質問をします。プロジェクトの難しさと構造。たとえば、プロジェクトで遭遇した難しさや解決策を伝えたい場合は、より良い解決策があるかどうかを尋ねます。
- 分散プロジェクト、テストポイント:分散トランザクション、分散整合性。
- APIビジネス、テストポイント:(1)負荷分散、CDN、DNS、およびその他の問題。(2)HTTPバージョン間の違いの説明など、HTTP関連の問題。
②裸の書き込みアルゴリズム
- 後列行列走査
-バイトビートの3番目の側面:
①プロジェクト経験
- プロジェクトの経験を調査することも同じですが、2番目の側面とは異なり、3番目の側面はシステム設計の側面により多くの注意を払っています。一般的な状況では、両者とは異なるプロジェクトの経験を説明し、プロジェクトの計画、欠点、および改善について詳細を尋ねる必要があります。
- モジュール化が必要:現在のシステムをマイクロサービスアーキテクチャにする場合、サービスを分割するにはどうすればよいですか?分割のルールは何ですか?
- マイクロサービスマイクロサービスアーキテクチャの知識を確認する:サービスガバナンス(電流制限、ダウングレード、サーキットブレーカー)
②裸の書き込みアルゴリズム
- 二分木の複数ノードの最も近い共通の祖先
PART2:テンセント6シーンを再現
-テンセント側:
①マイクロサービスについて質問する:
- マイクロサービスアーキテクチャ
- フレームワークの実装
- サービスガバナンス
- 分散整合性
②ログ監視システム:
- 転置インデックスの原則など、ELKのアーキテクチャの原則のいくつかに焦点を当てて、アーキテクチャとELK関連の知識を調査します。
③メッセージキュー:
- Kafkaのメッセージは複数の消費者が利用できますか?
- 選挙メカニズム
- HWメカニズム
④DatabaseとRedisは関連しています:
- インデックスの原則
- いくつかのトランザクションの違い
- データ構造
- 遅延キューを実装する方法
- 分散ロックの原理
⑤その他の未解決の問題:
- 未解決の問題ですが、プロジェクトで発生した問題など、あまり説明しすぎないでください。どのように解決しますか?製造プロセス中に実行中の問題を説明し、トラブルシューティングの問題を説明します。
-テンセントの両面(筆記試験):
特定の投稿のテクノロジースタック言語の基本的な知識を調査するため、トピックは難しくなく、しっかりとした基盤と幅が必要です。テキストは詳細には触れず、一般的なトピックはpdfファイルにまとめられます。
-テンセント3面+4面(テクニカルリーダー側):
Tencentの3つおよび4つの側面はすべて、技術チームのリーダーによるものです。この段階は比較的緊張しています。インタビューの内容は、主に問題解決のアイデアとプロジェクトの経験に関するものです。技術の個人的な習得の幅を調べ、比較を行います。マルチアーキテクチャの設計。
- 事業
- 未解決の質問:問題解決のアイデア、同僚間のコラボレーションの問題。
- 負荷分散
- アルゴリズム
- ngnixはどのように電流を制限しますか?
- 4層LVSと7層Ngnixの違い
- マイクロサービスアーキテクチャの設計アイデア
-テンセント5面+6面(テクニカルディレクター側):
この2つの面接官はテクニカルディレクターであり、面接の難しさはこの一連の手順の中で最も難しいはずです。主に、システム設計とアーキテクチャ設計を含む面接官の2つの側面を調べます。面接官は技術的な知識と理解のより深い理解。
①システム設計に関する質問:
- スパイクシステムを設計する方法は?アクセスレイヤー、インターフェースレイヤー、メッセージキューレイヤー、ロジックレイヤーの4つの側面で説明されています。アクセスレイヤーは、サービス管理に関連することを実行できます。インターフェースレイヤーは、スナップスイッチ、白黒リスト、およびランダムを処理します。ロジックレイヤーは特定のスナップロジックを実装します。これには、redis分散ロックとDBとRedisの一貫性が含まれます。
- 分散トランザクションのいくつかの実装。これらの実装の違いに焦点を当てて、インタビュアーは、信頼できるメッセージサービスベースのメッセージキューに基づく分散トランザクションアーキテクチャの図を描き、次にアップストリームサービスとダウンストリームサービスのメッセージの信頼性と一貫性を確保する方法を尋ねました。
②マイクロサービスアーキテクチャについて質問します。
- サービス分割の原則
- RPCフレームワークの原則
- 構成管理(etcd)コンセンサスプロトコルラフト選挙の原則
③その他:
- サービスガバナンス
- サービス電流制限アルゴリズム
- サービス劣化インジケーターと回復インジケーター
- サービス融合
④未解決の問題:
- プロジェクトでは、遭遇した最も印象的な問題をどのように解決しましたか?
- 面接で一番印象に残った質問とその理由を教えてください。
- あなたはあなたの人生で何か困難に遭遇しましたか?
パート3:面接の準備はどのように行いましたか?
①履歴書を準備する(足がかり、履歴書を詰めることができないプログラマーは外注しかできない)
プログラマーは、特に「熟練した、なじみのある、理解している」などのいくつかの単語について、履歴書にもっと一生懸命取り組む必要があります.3つの違いを明確に区別する必要があります。もちろん、パッケージ化されません。参考のために履歴書をお渡しします。それでも不十分な場合は、次の履歴書テンプレートから選択できます。
②面接会社を理解し、宿題をし、何を聞いたらいいかを知る
また、大手インターネット企業の面接サイトについて、以下の要約を作成しました。
- アリババ、バイドゥ、テンセント
- ByteDance、Meituan、JD
③知識システムを整理し、お互いから推論を引き出すことを学ぶ
実際、知識システムを組み合わせるのが最も簡単なことですが、多くの開発者は常に混乱しています。実際、2番目のポイントのインタビューサイトから、何を学び、習得する必要があるかを要約して整理することができます。私の方法は「Dachangインタビューサイト」です。 「+「就業年数」で、次の学習と能力開発のロードマップを整理します。
その後、ロードマップの要点に従って的を絞った学習を行う必要があります。学習プロセスでは、類推から学ぶことを学び、メモを書くことを学び、要約を作成します。
ここで私は私の個人的なメモのいくつかを共有します:
- Java開発のコアノート
- Redis研究ノート
- SpringBootコアテクニカルノート
④面接の質問にブラシをかける
ブラッシングの重要性についてはあまり考えていません。新卒者や実務経験の少ない方は、面接の質問をスキャンすることで、ある技術的なポイントをすぐに理解できます。一方、面接では、同じ質問や質問を受ける可能性があります。同様の質問。さらに、面接への自信を多かれ少なかれ高めることができます。これは、適切な質問を適用する必要があることを示しています。
最後に書かれた要約
最後に言いたいのは、2021年のゴールドスリーシルバーフォーワンが瞬く間に到着するということです。多くの人が転職する良い機会です。大手企業へのインタビューはそれほど難しいことではありません。私たちが思ったように。あなたの考え方を設定し、あなた自身を準備します。はい。
また、面接で問題が発生した場合は、プログラミング能力ではなく論理的思考を表現する能力に問題があるため、自分の考えを話してみてください。最後に、自己分析と自己分析を行う必要があります。評価し、キャリアプランを立て、継続します。プログラミングスキルと抽象的な思考スキルを探求し、向上させます。
上記の記事では、言及されているすべてのメモ、インタビューの質問、その他の資料を無料で共有して、誰もが学ぶことができます。記事の後にアシスタントvx:bjmsb10を追加してください。