ハイライトのインタビュープロセス

先週、私は、3〜5年間で集中的ないくつかのJavaバックエンドの仕事の経験のために候補者をインタビューしました。私の標準は本当に複雑ではありません。最初は働くことができる、第二のJava基盤が優れている、そして第三は、分散フレームワークの一部に精通していることが、私は他の企業がジュニアの開発者を募集する場合、この標準は輝く表面であるべきと考えています。

 

また、私は知っている多くの候補者の能力に実際には悪くないが、準備ができていないか、そのような人が実際に仕事にチームの後の期待に達するかもしれないが、それは面接に合格していないかもしれないが、インタビュアーは常に、インタビューの中で言っていませんのみ面接の状況に基づいて判断します。

 

しかし、現実には、ほとんどの人は、おそらく面接前の準備、または方法が扱われてはならない準備していなかった、です。あなたは私たちが通常のアルゴリズム、データ構造の数が多いと接触することはできませんが、ビジネス上のより多くの仕事、知っている、基礎となるコードなどのインタビューは言い換えれば、面接の準備のマッチポイントで、疑問点を聞いてきますし、通常の主なポイントは非常に小さいです。

 

インタビュアーとして、私は唯一の候補者が答えるインタビューの結果に応じて決定することができます。しかし、自分の利便性を容易にする人々と、そう、この記事では、私は一般的な問題の数によって面接のスキルを準備して紹介します。我々は間違いなくため息の後になります。正しいアプローチはあまりいないと、最初のインタビューのために二回目を調製することは困難ではありません。

 

1、フレームワークが鍵ですが、あなただけの人々がコテージ誰か他の人のコードを感じさせません

 

面接の前に、私はプロジェクトの経験、プロジェクトの候補の一部の導入の枠組みの中で候補者を見るために履歴書を読みますが、私は候補者の経験のための最近の枠組みに焦点を当て、より人気がSSMです。

 

しかし、候補者は、通常、5年間で働き、それらのほとんどは、唯一の「コテージ」他人のコードすることができ、それは、プロセス、新しい機能モジュールの拡張を書くために他の人によると、既存のフレームワークの基礎となり得ます。例えば、機能モジュールの保留中の株式を書くために、バックアップして、データベースに、スーツは、コード関連の機能を取り除くためのポイントまで、再び書き込み従うことを、フロント、既存の注文プロセスを模倣します。

 

実際には、私たちのそれぞれがとてもオーバーですが、インタビューで、あなただけのような能力を示した場合、ほとんどの人は少なく、同じレベル、および、この時点であなたの利点を反映できなくなります。

 

私たちは、あなたがSSMフレームワークをしたい場合は、ほとんどのプロジェクトは、痛みのポイントがあることを知っています。たとえば、データベースのパフォーマンスが悪い、またはサービスモジュールは、ジャンプのニーズを満たすことができないコントローラでのSpring MVCを使用してより高い同時実行複雑です。だから私は、通常は尋ねるためのイニシアチブをとるでしょう:あなたは、既存のフレームワークに従う場合を除きビジネスコードを書くのですが、また、変更内容をやって?

 

頻繁に同じデータの一部と呼ばれるを避けるために、Redisのキャッシュを増やす:私は答えを聞いたことがあります。また、条件のISNULL、すなわち値が、これは、ISNULLのないクエリの増加が声明を避けるだろう、条件が増加しているselect文でXMLをMyBitasたときに、着信パラメータnullの場合、全表スキャンを実行します。それとも、単にバックエンド非同期から返された大量のデータは、長い時間が、私はこのプロジェクトの最大時間非同期見返りに上げたり圧縮処理を行うための情報、スループットの向上とネットワークのパフォーマンスを返します、と述べました。

 

さらに言えば、私は、私が唯一の論理的な答えと一致しない文字を気にどのような答えを聞くために気にしません。限り一般的な答えとして、私はそうでない場合、私は唯一の「与えるだけフレームワーク自体について多くを知るために、プロジェクトマネージャーのリーダーシップの下フレームワークのコードを書くことができ、「一定の理解があり、フレームワークレベルでの独自の経験を持っている」与えます。 "

 

実際には、面接の準備のために、彼が主なポイントのフレームワークは難しいことではありません、私はその蓄積されたプロジェクトのすべてを行う際に、限り、あなたはそれを言うと、この点であなたは競争の約7%をロールアップしている、と言うことができるしていないとは思わないまとめ人。 

 

 

2、単にいくつかの適切な理解が分散し、フレームワークのスタンドアロンバージョンを見ていません

 

また、あなたには、いくつかの分散技術と、再び、技術の枠組みの中でプロジェクトを記述する最高インチ 私は、分散技術のいくつかを列挙されているの下には、我々は準備することができます。

 

 

  1. このようスティッキーセッションを設定する方法、Luaの言語でルールを設定する方法として、リバースプロキシ、基本的な設定nginxの、。もしそうなら、そのようなプロトコル、クラスタセット、フェイルオーバーなどの基礎となるのnginxの一部を見てみましょう。

  2. リモートコールダボの側面は、ダボ下の下のトランスポートプロトコルとシリアル化を理解するためにダボ飼育係と知識の統合、そして深いステップを見ることができます。

  3. メッセージキュー態様、使用カフカルックまたは任意のアセンブリポイントが簡単な構成、ワークグループの設定、その後さらにポイントを見てもよい、カフカ、永続的な方法、および送信メッセージを見ることができるクラスタが長いです接続または短い傍受。

 

これらは一例として、わずか3構成要素であり、我々はまた、Redisのキャッシュ、ログフレーム、myCatサブライブラリサブテーブルなどを見ることができます。二つのカテゴリーの準備への道、最初は設定ファイルが機能モジュールに組み込むことができて、これは、比較的簡単で、使用方法を言うことであり、第二には、いくつかの基本的なコードで適切に本契約に基づいて理解し、読むことができ、クラスタ高度な知識とフェイルオーバーなどが挙げられます。 

 

あなたがインタビューの中で、基礎となる分散コンポーネントのリズムで取得した場合のラインも建築家などを面接している場合でもので、評価が良くなる、と「味付けフレームワーク」または「基本的なフレームワークの深い理解」高度な開発は言うまでもありません。

 

 

3、データベース、CRUDを知らない、あなたは、パフォーマンスの最適化を理解する必要があります

 

実際のプロジェクトでは、ほとんどのプログラマたちはMyBatisのを使用する場合、この状況は、より一般的であり、唯一のCRUDかもしれ使用しています。あなたはこのインタビューのパフォーマンスを持っている場合しかし、あなたの能力を推定し、競合他社とほぼ同じにします。

 

この点では、次のスキルを準備することができます。

 

  1. SQLは、(のある)を有する、左接続、サブクエリによってグループ、ライン転送列およびその他の高度な使用法として、側面を進めました。

  2. 構築されたフォームの条件の下で、あなたのプロジェクトは、3または抗パラダイムパラダイムを使用することであると考えることができ、その理由は何ですか?

  3. 特定の最適化では、あなたは先に行くことができますし、道による計画ポイントの実装、または(など、インデックス、など)SQLのパフォーマンスを改善するための他の方法を改善するためのSQL文を表示する方法。

  4. あなたが能力を持っていると感じた場合、あなたはまた、いくつかのMySQL Clusterの、MyCATサブライブラリサブテーブルのスキルを準備することができます。例えば、LVS + keepalivedの通過MySQLをロードバランシングを達成するために、構成されMyCAT。可能な場合にも、また、関連する基本的なコードの一部を参照してください。

 

あなたはSQLの最適化に非常によくやった場合は特に、あなたがインタビューの高度な開発であり、その後、少なくともほぼ一般的な候補者を越えて、一般的には3点のパフォーマンスを転送する場合でも、データベースレベルでは最初のも、あなたならば、規格外である必要がありますフォーポイントも非常に良い答え、その後、お祝い、データベースへのあなたの能力であるとさえ主要なアーキテクチャのレベルに達しました。

 

 

4、Javaコア側面質問に直面する準備ができた構造とパフォーマンスの最適化に関するデータ

 

Javaコア部分、顔オンラインの質問に多く、これを超えて、我々はまた、コレクションに焦点を当てるべきである(すなわち、データ構造)及びこれら二つのマルチスレッド、これに基づいて、我々はいくつかのデザインパターンと仮想マシンを準備することができますレトリック。

 

私は通常の列を尋ねる質問のいくつかの部分の下に:

 

  1. 列A = "123";列B = "123";結果は何B ==?これは、メモリ、知識、文字列の格納方法の多くを含んでいます。

  2. この方法でのHashMapと同じハッシュコードメソッドは、私が書き直しする必要がありますか?あなたは何が起こるか書き換えない場合は?この点で、我々は、基礎となる実装のHashMapの(偶数のConcurrentHashMap)についての詳細を学ぶことができます。

  3. 違いはあるものの実装の基礎となるのArrayListとLinkedListは?それぞれの機会は何に適用されますか?我々はまた、関連する基本的なコードの下にこれを理解することができます。

  4. volatileキーワードの役割は何ですか?このように与え、私たちはメモリとヒープメモリのスレッドの下の違いを理解することができます。

  5. JDK1.8の新機能は、どのようにそれによってマルチスレッドの同時実行制御を実現するためにどこCompletableFutureが、これは何ですか?

  6. JVMは、新しいオブジェクトがどの領域に出ていますか?さらに綿密な外観、JVM仮想マシンのメモリを表示し、最適化する方法を尋ねます。

  7. 静的および動的なJavaプロキシプロキシの違いは何ですか?基礎となるコードの最適な組み合わせのために。

 

 

上記の問題を通じ、実際には、私だけではなく、「使用」レベルにとどまる、例えば、私は、ArrayListの中に要素を配置する方法を要求しません。あなたは、上記の問題点は、「マルチスレッド」、「JVMの最適化」を含む、「データ構造物基礎となるコード」やその他の詳細を見ることができるように、あなたはまた、いくつかの他の同様のインタビューの質問を準備するために、いくつかの高レベルの知識を見ることで、類推によって学ぶことができます。

 

私たちは、現在のJavaのWeb開発フレームワークをベースとしていることを知っているので、なぜそれがJavaコア知識を頼みますか?私はこれの個人的な経験を持っています。

 

私のチームの前に、私は特定のパフォーマンスは、Java基本APIを使用するコアであり、1は動作しますが、二人を見てきましたし、希望のない深い理解がありません、別の(推定値は理解する方法がわかりません)通常、特に同時Java仮想マシンなどのいくつかの高度な知識を見ていきます。すぐに非常に徹底的に理解することにより、Javaコア知識に、高度な開発へのアップグレード、そうは大きな問題を達成しないために、基礎となる分散コンポーネントのいくつかを見て、後者の能力後半年以上。前者は、能力が唯一の「働く」レベルの作業の重複立ち往生されています。

 

あなたはJavaコアの知識に精通していない場合は面接現実には、高度な開発は、推定値はおろか、就職の面接アーキテクトレベルの免疫で上昇しました。 

 

5、Linuxの用語は、少なくとも問題をトラブルシューティングするために、ログを見て方法を学びます

 

候補者は、彼は間違いなくプラスポイントである「トラブルシューティング」および「問題を解決」する能力を持っていることを証明することができますが、証明するためにどのようにか?

 

ほとんどのインターネットプロジェクトはLinux上で展開され、そのログは、いくつかの実際のLinux OSの下にまとめ、Linuxではある、と言うことです。

 

  1. 以下のコマンドを通じて、ファイルの末尾に到達するには、Shift + Gを介してファイルを開くには、その後、?+キー方法によってキーの情報を検索します。

  2. キーワード2 --color |あなたは二つの言葉で結果を見たい場合は、キーワード検索でのGrepの方法は、具体的な使用方法は、grepのキーワードファイル名は、grepのファイル名のキーワード1を使用します。最後に、キーワードを--color強調表示されます。

  3. VIでファイルを編集します。

  4. chmodコマンドによってファイルのアクセス権を設定します。

 

もちろん、より実用的なLinuxのコマンドがありますが、実際の面接の過程で、多くの候補者であっても、Linuxのコマンドを知りません。それとも、いくつかの非常に基本的な、だけでなく、平均的な人よりも強いがわかっている場合でも、この文です。 

 

図6に示すように、基礎となるコードは、ボーナス・アイテムとして、セクションを読ん

 

どのように説明するための基礎となるコードするよりも?非常に理解の知識を証明します。私は多くの人々はそれが難しい見つけ、通信の5年以内に仕事の経験やプログラマの多くのでしたか?確かに、あなたは、分散コンポーネントを読み取ることによって、基礎となるコードを理解し、難易度は小さくありませんが、理解することは困難ではない、の一環として、基礎となるコードであればということにしたい場合。

 

 

  1. ArrayListに、LinkedListのの基礎となるコード、我々はこの展開をクリアできるかどうかなど、「列挙子が通過する」、アレイベースの実装とリンクリストが含まれていますが、確かに自分自身を証明することができます。

  2. HashMapのハッシュテーブルのデータ構造に直接対応し、コードのHashMapの根底にあるのは、さえのConcurrentHashMapで、ロジックはまた、ロックが含まれている、GET操作と同様に、プット・ハッシュコードが含まれています。私はインタビューの中で誰もが、ConcurrentHashMapの面で見てみるならば、彼は紙の上に絵を組み合わせて、インタビュアーを征服することができなければならないと述べたと信じています。

  3. 静的および動的プロキシエージェントの実装を見ることができ、さらに綿密な外観、あなたは春AOPの実装コードで見ることができます。

  4. おそらく、重要なプロセスの下でSpirngを理解することがIOCとMVC実装コードがより困難基礎となるが、我々は、キーのクラスを言うことができ、それらの実装に応じて語りました。 

 

 

実際には、基礎となるコードが準備以上、しかし、例えば、オープンソース・フレームワークNIOもダボ分散コンポーネントに基づいて、赤黒木TreeSetのに基づいてコレクションを、調製することが可能な領域に限定されるものではないではないかもしれません。準備ができたらと限り、あなたはそれ(例えばHashMapのようどのように迅速にハッシュコードであり明確な)明確なアイデアを作るために、重要なクラスやメソッドの数を組み合わせることができますよう、基礎となる(行うことは実際には非常に困難)のすべての外にバックアップしたくないかもしれません。

 

インタビューでそう、あなたは準備ができて基礎となるコードの上に話をする良い機会を見つける方法?インタビューの中で、常に等の収集、関連する知識の春のMVCフレームワーク、について尋ね、あなたが答えるとき、途中で、「私は、この基本的な実装を理解する」その後、インタビュアーは、することができます、その後、聞いてきますそのアウト。

 

あなたが言うたら、評価はおなじみのJavaコアスキル」にアップグレードされます、説明が明確である場合に限り、場所の意味としては、少なくとも、「ケン正のプロ」の評価を取得し、候補者の助けを過小評価(またはしないでください春MVC)、およびより強固な基盤を提供します。」最終結果は、インタビュアーが、それによって、あなたの評価を低下させないだろう期待を満たしていない場合でも、あなたは、このトピックを投げるので、あなたが知っている、インタビューは、非常に少数の人々は、明らかに基礎となるコードを言うことができます。だから、これは作るお金の取引「のようなものは何もありません」絶対に準備ができています。

 

7、すべてのすべてで、あなたのプロジェクトに埋め込まれた上記のスキルがで行われ

 

インタビュープロセスの間に、私は多くの場合、非常に説得力のあるSQL最適化技術の候補として、より残念な答えのいくつかを、聞くが、これは彼のいつもの自己を習得するための時間で終わりでは、実際のプロジェクトで使用していませんでした。

 

もちろん、これはそれほど良くないよりも優れているので、私は「自己学習を通して通常のSQLの最適化のスキルに」書きますが、プロジェクトで実施すれば、その後、私は書きます「実際のSQLデータベースの最適化のスキルを。」我々は1つが、作業を指示することができ、1の理論に重点を置いている、2の違いを比較することができます。実際には、多くのシーン、私は、SQLの最適化は確かに実際のプロジェクトでスキルを練習していないとは思いません。

 

 

この場合、私はあなたが多くのハードワークを取った前にスキルやレトリックの多くを準備する(実際には、方向性を得るための方法は、彼らは多くの努力を取らない)、そして最後に、あなたが実際のプロジェクトを実施すべきであるということであるお伝えしたいと思います。

 

たとえば、あなたが、私はとても乾燥していたプロジェクトの前に1を取ることができ記述するには、Linuxのログにクエリキーワードトラブルシューティングの経験を持っていました。ここでも、あなたはあなたが前にのみTreeSetのに適用されるシナリオがある場合、あなたは、項目の下に思い出すことができ、基本的なコードを見て、TreeSetのとHashSetのとその適用範囲の違いを理解できますか?もしそうなら、あなたは適切にプロジェクトの下で需要を記述することができ、その後、言って、基礎となるコードを読み込むことで、私は2つの違いを理解し、実際の需要に、私はTreeSetのを使用しますが、私はまた、特別なコントラストを作りましたXX%よりHashSetのTreeSetの持つ高いようにテストしてました。

 

お金の価値が「理論的経験」よりも優れている、とあなたのほとんどは確かにあなたのプロジェクトで使用される理論的な経験、を知っている必要があり、「経験」を覚えておいてください。あなただけ作るのであれば、面接はあなたが唯一の「理論的な経験」、それはあまりにも負けていると感じています。

 

 

概要:この記事より面接の準備の方法について

 

フェイスの質問は、この論文はあまりありませんが、この論文では、あまりにも多くのインタビューの質問を与えることを意図していません。この記事から、私たちは多くの痛みのポイント面接候補に発見されたのより多くを参照してください。

 

この記事の意図は、誰もが、それはありませんが、他の人の過ちを繰り返さないでくださいせることで、紙も、面接の準備をする方法の多くを提供します。あなたの他の人よりも、おそらく優れた能力がありますが、面接や他人のために同様の方法を準備し、またはプロジェクトで乾燥あなたを取った場合、何かのために生きていますが、実際に面接、その後、プロジェクト内のハイライトを要約していませんでした私たちはあなたを軽蔑するだろう。

 

付録:

https://mp.weixin.qq.com/s/5_oMk5DQmNwvRy3zKKOjhA

おすすめ

転載: www.cnblogs.com/williamjie/p/11080819.html