この記事では、Tencent の PHP プログラマーの面接の質問とされる面接の質問を紹介します。これは、困っている友人が訪ねてきて確認できるような通常の面接の質問とは異なります。
推奨トピック: PHP 面接の質問と回答
プログラミングタスクを除き、以下の質問は提供されたメモ用紙に書く必要があります。紙は貴重な地球資源ですので、大切に使ってください。対応する環境があれば、プログラミング作業はパソコン上で書く必要がありますが、条件がなければ藁紙に書くしかありません。 時間: 基本タスク + 高度なタスク + 設計タスク = 90 分、プログラミング タスク = 60 分。 基本的なタスク: 考えられる UNIX シグナルを列挙し、その使用法を説明してください。 考えられるすべての文字列検索アルゴリズムを列挙し、コメントを付けて簡単に説明してください。 IP アドレス (192.168.0.1) があります。32 ビットの符号なし整数形式で記述してください。 考えられるすべての HTTP 戻りステータス値を書き留め、その用途を説明します (例: 404 を返すということは、ページが見つからないことを意味します) 基本的なタスクの選択 (追加ポイントを獲得します): 最もよく知っているサーバー側モデルをいくつか描画します (形式は重要ではありません。図面を明確にし、アイデアを説明するように努めてください) 高度なタスク: PHP のガベージ コレクション メカニズムとは何ですか? PHP ソース コードに精通している場合は、ソース コードから始めていくつかの質問に答えてください。追加のポイントを獲得できます。 PHP ソース コードに慣れていない場合は、自分のプログラミングの直観を使用して得た情報も含めて、頑張ってさらに書いてみてください。 正解していれば得点が入りますが、間違っていても減点されません。 HTTP ヘッダーを記述し、次の要件を満たしてください。 これは投稿リクエストです ターゲット: http://bbs.it-home.org:8080/test POST 変数: ユーザー名: test、パスワード: test2、イントロ: Hello world! 次の COOKIE 情報が含まれています: cur_query: you&me 手順: 特定の HTTP プロトコルのコマンド単語を思い出せない場合の最後の手段は、代わりに「漢字」を使用することです。 HTTP プロトコルのコマンド単語をもっと覚えられるなら、もう少し文章を書いても問題はありません。 最も重要なことは、正しい「アウトライン」 (httpwatch などのツールで印刷されるヘッダーを覚えていますか? それが「アウトライン」の意味です) を描くだけでよいということです。ポイントはありますが、「」さえ書いていれば、概要」が間違っている場合は、残念です。 デザインタスク: 最近、私たちの投票モジュールに嫌がらせをする人が常にいるため、投票制限を設けたものを設計していただく必要があります。要件は次のとおりです: 各 QQ 番号 (この QQ 番号が UNIT32 で表現できると仮定) は 10 分以内に 5 票までしか投票できないことが必要です。 当社のユーザーは非常に活発で、毎日平均約 2,000 万人がこのプログラムを通じて投票しています。 手順: コードを記述する必要はなく、画像とテキストだけで済みます。 鍵となるロジックは絵やコードを使って表現してください。文章による表現力も試されます。 考えられる境界条件をすべて挙げてください。これは、論理的思考における包括性と機敏性をテストするものです。 保管部分については、できる限りのことをしてください。自分で設計したストレージ層が必要な場合は、そのストレージ層の実装を言葉と写真で明確に説明し、その設計が合理的であれば、豪華なボーナスポイントが得られます。 プログラミングタスク: 新しい宣教師は神を怒らせ、聖書 (bbe.txt) を暗記するように言いました。彼が単語を言ったとき、私たちはその単語がどの行にあるのか、どの単語の位置にあるのかをすぐに答えなければなりませんでした。あなたは優秀なプログラマーだと聞いたので、この不可能なタスクを完了するのを手伝ってください。 要件は次のとおりです。 /myworks/example/bbe.txt、98 バージョン英語聖書 入力部分の要件は次のとおりです: php ./example.php [word] 出力部分は次のとおりです: [単語] 1,2 2,4 5,6 の意味: この単語は行 1 と列 2 (2 番目の単語)、行 2 と列 4... 手順: このテキストは4MBもあります... 単語の意味:英字(大文字、小文字)と数字(0~9)で構成される文字列 提供されたマシンの OS は Ubuntu 9.10 で、メモリは 1G しかありません。残念なことに、そのうちの 700M は他の用途に使用されています。 コンピュータベースの試験ではインターネットへのアクセスは許可されていませんが、マニュアル ドキュメントと CHM および PDF を読むためのリーダーをインストールしました。対応する PHP リファレンス マニュアルがコンピュータのデスクトップの CHM フォルダにあります。 アルゴリズムの複雑さの要件は、O(N^2) (つまり、N の 2 乗) を超えることはできません。 何? PHP は非効率的で使いにくいですが、他の言語でもできます。ただし、提供されたマシンには Python 2.4/perl 5.8/gcc[g++] 4.1 しか搭載されていないことに注意してください。 上記の PHP 面接の質問を読んで、どう思いますか?すべてを理解し習得できれば、エキスパートの仲間入りを果たし、テンセントに直接入社できるでしょうか? |