ホームページ >バックエンド開発 >PHPチュートリアル >PHP エンジニアに面接するときに尋ねるべき最良の質問は何ですか?

PHP エンジニアに面接するときに尋ねるべき最良の質問は何ですか?

WBOY
WBOYオリジナル
2016-06-17 08:30:351418ブラウズ

返信内容:

1. あなたの価値を最もよく反映する、仕事や勉強におけるこれまでの成果を紹介します。
-> 導入後、この成果を達成する際にどのような困難に遭遇し、どのように解決しましたか。
2 SQL インジェクションの原理と害悪について説明します。緩いログイン プログラムがあると仮定して、SQL インジェクションを使用して入力する方法を説明します。
3 クロスサイト スクリプティングの原理と害について説明します。ここにゆるい掲示板がある場合は、クロスサイト スクリプティングの例を作成してください。
4 データのインデックス作成により効率が向上する理由を説明します。
シナリオ SQL select * from user where area='Guangzhou‘ and sex='girl‘ order by lastlogin desc limit 30;
インデックスの設計方法は?
startip、endip、area 形式の IP アドレス対応区間テーブルが 100,000 個になりました
各ユーザがアクセス時に相手のエリアを素早く解析できることが求められますので、設計・実装してください。データベースの有無にかかわらず、1 秒あたり 1,000 を超えるクエリが必要になります。
基本的にはこれらで十分です。上記のトピックに特に満足している場合は、
5 を追加してください。ここでは、忙しいフォーラム コミュニティがあることを前提として、約数千語のブロックされた単語のリストを示します。投稿の量が膨大であるため、ユーザーは各投稿にブロックされた単語が含まれているかどうかを迅速に分析する必要があります。プログラムの設計を提供してください。
6 ゲーム Web サイトには何千ものミニゲームがあり、各ゲームはポイントによってランク付けされる必要があります。データ構造は次のとおりです。
ゲーム ID、ゲームスコア
毎日数百万のポイントが送信されます。現在の要件はサブライブラリ処理です。
リクエストに応じて、各ゲーム ID に基づいてスコアランキングをクエリできます。 自分または友人の過去のゲームスコア記録などのユーザー ID に基づいてクエリを実行できます。サブライブラリの対処方法を教えてください。

最後に、何か質問はありますか? 上記の匿名ユーザーが非常に包括的なリストを作成しているので、参考にする価値があります。
エンジニアが特定のポジションに適格であるかどうかは、プロフェッショナリズム、周辺知識、コミュニケーションスキル、積極的に働く意欲などの多くの要素に大きく影響されます。一般に、評価の焦点は各チームによって異なります。 、実態に応じて候補者を組み合わせて検討することになります。

プロフェッショナリズムは、PHP の基本スキルを習得し、共通のパフォーマンス ポイント、さまざまなバージョンの機能など、セッション実装メカニズム、差分を含める/要求する、さらに主流のフレームワークなどの高度な知識を理解することに反映されます。 、一般的なパフォーマンス最適化戦略、スクリプト言語としてのいくつかの特性、高同時実行性のシステムを作成するために PHP のパフォーマンス上の欠点を回避する方法、高同時実行性の下で可用性とデータの整合性を確保する方法など。

周辺知識としては、主に MySQL のパフォーマンス最適化、Memcache の使用法、Nginx/Apache 連携、PV/Click などのデータ収集・観測方法などが挙げられます。 同様に、curl/socket を使用して http/tcp/udp を操作し、RPC 呼び出し (Web サービス/JSONP/Thrift など) をさらにフロントエンドおよびバックエンドに実装し、さらに多くのキャッシュ戦略 (遠方および近傍、一貫性のあるハッシュ) を組み込みます。 、データの一貫性)性質)、シャーディングなどの操作の理解(つまり、データベースとテーブルのシャーディング)、NoSQL 製品に関するさらなる知識、さまざまな共通プロトコルの詳細、セキュリティ(インジェクションとアノテーション、クロスサイトと CC)など。

コミュニケーション能力は「簡単な自己紹介」「最近参加したプロジェクトで行ったことを教えてください」からスタートし、その回答をもとにビジネスコミュニケーションができるかどうかをさらに磨きます。部門やプロダクト マネージャー、オペレーターが自由にコミュニケーションできるときに「要件が常に変わる場合はどうすればよいか」、「ビジネス担当者やプロダクト マネージャーから提示された一見不合理な要求にどう対処するか」、「開発者として、どうすればわかりますか」 「あなたが関わっているプロジェクトはユーザーにはどのように見えますか?」「そのプロジェクトでどの程度うまくやっていますか?」など; 「小さなチームのリーダーとして、良いチームを率いるために最も重要な点は何だと思いますか?」 「チームのリーダーシップ能力を調べるには?」 「チームのエンジニアがいつも遅刻・早退する/放置するできるだけ早くプロジェクトを立ち上げる」など、エンジニア個人としてより総合的な視点(プロダクト、デザイン、ビジネスなどの観点から問題を捉える力)を持っているかを審査し、「プロジェクトの運営を依頼する」フォーラム システム/エンタープライズ Weibo アカウント、あなたならどうしますか?」、「XX 製品のエンジニアとして、技術的な観点からオペレータの ROI 向上を支援するにはどうすればよいですか」など; 「一時的に質問はありません。何か質問はありますか?」自分?"

積極的に働く意欲は、多くの場合、残業に対する彼らの考え方、コードの品質に対する態度、チームの作業効率を向上させる方法、参加しているプロジェクトの詳細に疑問を持ち、パフォーマンスを向上させる方法を理解することによって得られます。コードの品質や運用上の成果、個人的な興味や趣味、過去の傑作などの理解。 ご招待いただきありがとうございます。私は社内の面接官として、ジュニアおよび中級レベルの PHP プログラマーとしか面接したことがありません。基本的に、彼らが面接に必要な知識についてはあまり経験がありません。ここでは、中級レベルの PHPer へのインタビューについてのみ説明します。
最初に一連の面接質問を行います。質問は基本的に PHP 構文、データベース設計とデータベース最適化、Linux の基本であり、最後にはさらに詳細な内容が含まれます。
履歴書と面接の質問への回答に基づいて、彼はよく知っているプロジェクトについて徹底的に調査します。たとえば、彼がユーザー関連の作業を行った場合、実際のユーザーがログインしたときにクライアント側とサーバー側で何が起こるのか、データベースの設計はどうなっているのか、などについて質問します。パスワードの処理方法、時間制限付き終了システムの実装方法など。フレームワークを使用したことがある場合は、MVC モードについて考慮事項があるかどうかを尋ねてください。ルーティングの原理は何ですか。 。 。
基本的に、質問への回答に基づいて、問題のない一部の PHPer を除外できますが、実際の結果にはまだいくつかの欠点があります。以前、面接中に非常に明確な同僚を採用しましたが、特定のプロジェクトとなると、ビジネス ロジックの理解がイライラし、物事が明らかになるのが遅く、コードの書き方も不十分でした。その後、ビジネス ロジックに焦点を当てた面接の質問がいくつか追加され、面接官はコードを手書きすることが求められました。
私の答えは正しくないかもしれないと感じました。どちらかというと PHPer にインタビューする方法についての答えのようです。 私の面接官でもある非常に優れた PHP プログラマーに相談しました。彼の答えは次のとおりでした (原文ではありません)。
1. 基本的な PHP スキル、文字列と配列
2.カール、ソケットプログラミングなど
3. ネットワーク開発の理解、tcp/udp、http プロトコルの説明
PS: 特定の機能を習得する必要はありません。とにかくマニュアルを確認してください。

---------------
以上 0. 簡単に自己紹介をし、過去 3 年間で最も成功した仕事について話します。
1. 履歴書を見て、ユーザー数、PV、スループット、関連する問題と過去のプロジェクトの解決策について尋ねます。方法など
2. テーブル分割の理由?
テーブルへの分割を開始する一般的なデータ量は何ですか? データベース分割の目的は何ですか?データベースの分割とか?例を挙げてください。
3. データベースの最適化とは何ですか?
4. Web 開発ではどのようなキャッシュが発生しますか?
5. 256M のメモリ (10G の場合) ファイルを並べ替える方法 (ファイルの行ごとに 1 つの番号)?
10G ファイルを検索するには?
10G ファイル内の各キーワードの出現数をカウントするにはどうすればよいですか?
6. あなたが現在 12306 の鉄道チケット予約のデザイナーである場合、全国の人々のニーズを満たすにはどうすればよいですか?
7. 1 億人のユーザーがアクセスする場合、サーバーのアーキテクチャは何ですか?ユーザー 情報ストレージ計画を設計する方法は?
8. あなたが技術チームのリーダーで、自分が率いるチームがタスクの進行状況を完了できない場合、どのように解決すればよいですか?
スケジュールが設定されているときにタスクを挿入すると、完了しました。全体の進捗が遅れないようにするためにはどうすればよいですか?
一部のエンジニアが今日予定されていたタスクを完了していない場合、どのように解決すればよいですか?
9. あなたの経験から話してください。パフォーマンスの高い Web サイトを構築するにはどうすればよいですか? 手順は何ですか? それぞれのステップでどのような点に注意して最適化する必要がありますか?
10. マスターとスレーブを分離する必要があるのはなぜですか?データベースは?
11. マルチサーバー共有セッションを処理するにはどうすればよいですか?
12. 10G テーブルの場合、フィールドの出現回数をカウントするのは次のとおりです?
13. nginx ログの例を教えてください。http 応答時間が 1 秒を超える上位 10 の URL をカウントするのに最適だと思われるプログラミング言語を使用してください。
14. mysql 設定ファイルを使用してください。ファイルを解析するのに最適な言語はどれだと思いますか?
15. 2 つのパス a と b を指定して、a と b の間のギャップを計算し、a と b の共通部分を表示するアルゴリズムまたはアイデアを作成しますか?
16 . URL を指定して、nginx でリライトを設定して特定のパスを指定します。
17. php ファイルの解釈プロセスとは何ですか? 全体的なパフォーマンスを向上させるために使用できるものは何ですか? php?テクノロジー?
18. セッションとCookieのライフサイクルの違い?
19. プログラムの読み込みの違い?オンデマンドで php ファイルをロードしますが、どのように実装しますか?
20. Chrome はマルチスレッドと呼ばれますが、マルチスレッドとマルチプロセスの違いは何ですか?
21. 2011 年末。ハッシュ衝突の原理は何ですか? それを修正する方法は何ですか?
22. ウェブは安全ではありません。その要因は何ですか?
23. 単独でリンクされた 2 つのリストが交差する場合は、次のように書きます。交差位置を計算するための最適なアルゴリズムとそのアイデアについてもお話します。
24. 技術チームのリーダーの場合はどうすればよいですか?
25. nginx の負荷分散とは何ですか?サーバーの 1 つがハングアップしました。アラーム メカニズムを実装するにはどうすればよいですか?
26. Apache の一般的な最大接続数はどれくらいですか? ? 1 秒ごとに削除しますか?
27. mysql のデータ型はどれくらいですか?
28. nginx は、js、css、画像などの情報をキャッシュするように設定されています。キャッシュのヒット率を改善するには?
30. PHP のメモリ再利用メカニズムとは何ですか?
31. 質問はすべて終わりました。何か質問はありますか? 現在 1 位にランクされている回答にはあまり同意できません。面接中に分からなかった質問もありましたが、Google で調べることができます。歴史のテストを受けるときに、「曹操はいつ生まれましたか?」と尋ねました。十分に知っているということは、歴史についてよく知っているということですか? いいえ、間違いありません。

プログラマーの能力は、特定の問題をモデルに抽象化することにあると思います。 企業が直面した問題やビジネスを簡単なものから難しいものまでいくつか選択し、面接官に解決策やアイデアを提案してもらいます。 面接では理論的なことを問うのではなく、実践的な問題を解決する能力が問われているように感じます

。 php エンジニアへの面接は、面接官の役割によって異なります
1. 面接官はビジネス面接官ですか、それとも人事担当者ですか。二人のキャラクターの考え方や方向性は異なります。
2. ビジネス面接官の質問は専門的なスキルに基づいている必要があります。通常、これは同じポジションの高い専門スキルを持つ同僚、または業務監督者によって行われます。ただし、面接の目的は相手のスキル構造を理解することであり、相手を試すことではないことに注意してください。
3. 人事面では、期待される労働環境、給与、福利厚生など、仕事の動機に基づいて行われます。企業とのマッチングを図り、雇用リスクにも留意する。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。