一般論で話さないでください。
返信内容:
更新: 最後に、基本的な質問分析手順が追加されました2 年以上の時を経て、新しい面接の質問が更新されました。
基本的な質問シナリオ:
あなたは新しい会社に入社しました。
出勤初日に、受付担当者が手配しました。
コンピューターを接続したら、電源ボタンを押します。
これは本当にそうです。新しいコンピュータには、実際には DOS システムが組み込まれています !!
あなたは同僚にオペレーティング システムの CD/U ディスクを持ってくるように頼みます (これは問題ではありません)。オペレーティング システムがインストールされています。
最初に、LAMP 環境が適切に動作できるようにセットアップします。セットアップの簡単な説明LAMP環境 プロセス中の注意点.
LMAP 環境がセットアップされた後、最初の開発タスクを取得します。ユニバーサル承認システム を開発します。社内には DNS サーバーがあり、このシステムのドメイン名は approving.great-company と呼ばれます。 .com にアクセスし、ローカル IP を指します。
http://approving.great-company.com にアクセスしようとしました
、Apache classic 登場
「Works」ページでは、ドメイン名が有効になっています。デスクトップに「approving」という新しいディレクトリを作成し、このディレクトリ内でこのシステムの開発を完了する予定です。apache アクセスを有効にしますhttp://approving.great-company.com を開くことができますapproving/index.php
- Apache の設定が完了したら、この時点で開発作業を開始します。あなたの同僚があなたにコードをくれました。
Universal Approval System は半分他の人によって書かれています。これははるかに優れています。コードを最初から書く必要はありません。あなたは彼のコードを調べて、次のことを発見しました。ロジックは次のようなものです:
ユーザーが電子メールとパスワードを使用してシステムにログインすると、プログラムは $_SESSION['uid'] を通じてユーザーの ID をセッションに入力し、ログイン ユーザー ID を取得し、データベースにアクセスしてユーザーの ID を入力します。個人情報 (名前や所属部署など) 次に、このユニバーサル承認システムの主要な機能ポイントのコード を見つけました。
<code class="language-html"><span class="nt"><form</span> <span class="na">action=</span><span class="s">"new-approving.php"</span> <span class="na">method=</span><span class="s">"post"</span><span class="nt">></span>
审批事项: <span class="nt"><input</span> <span class="na">type=</span><span class="s">"text"</span> <span class="na">name=</span><span class="s">"title"</span> <span class="nt">/></span>
详细描述: <span class="nt"><textarea</span> <span class="na">name=</span><span class="s">"details"</span><span class="nt">></textarea></span>
<span class="nt"><input</span> <span class="na">type=</span><span class="s">"submit"</span> <span class="na">value=</span><span class="s">"提交"</span> <span class="nt">/></span>
<span class="nt"></form></span>
</code>
ログイン後にコピー
経験から語りますので転載は禁止です!
上記の答えはジュニア プログラマー向けにのみ作成されたものかもしれません。すべてのレベルについて話しましょう。
まず、筆記テストやコンピューターテストを受けることが非常に重要だと思います。すべてを正解する必要はありません。会話では見えない問題がたくさんあります。
あなたは PHP プログラマーなので、PHP のさまざまな側面について質問する必要があります
- PHP
基本:
一重引用符と二重引用符の違いは何ですか?
GET と POST の FORM 形式のアクションの違いは何ですか?
セッションの仕組み
配列の最後の値を取得するには?
Git ブランチ マージ
文字列 "example" を反転します
2014-09-23 23:08:01 のタイムスタンプを出力します
デバッグ メソッド
Composer の使用法
続行レベル:
フレームワーク各部の理解度(ルーティング、デザインルール、データ層のパッケージング、ビュー層、拡張性など)
オブジェクト指向の理解度(静的メソッド、変数の利用可能範囲) 、抽象クラス、インターフェイス、継承など) クローン作成、マジック メソッドなど)
名前空間
テスト ケース
例外処理
キャッシュ データ (memcache、redis、テンプレート キャッシュ、apc およびその他のキャッシュ) )
通常テスト
上級:
PHP SPL
設計パターン (ファクトリとシングルトンなど 2 つ選択して説明します)
ソート アルゴリズム (バブル ソートなど 2 つ選択します)
暗号化アルゴリズム (sha と crc32 など 2 つを選択し、アプリケーションのポイントと違いについて説明します)
テスト駆動開発
アジャイル開発について考える
最適な開発モデル
困難な問題の解決策
- セキュリティ
XSS と CSRF それぞれの原則と防止について説明
SQL インジェクションの防止
どのような問題を解決すべきかアップロード時の注意点
変数カバレッジの問題
危険な機能への対処方法 処理
サービスベースライン
セキュリティドメイン
- データベース
トランザクション処理
さまざまなロック処理
サブデータベース、マスター/スレーブ、オフライン
左結合、右結合、クロス結合
SQLの最適化
あまり使用されないSQL関数アプリケーション
以前に遭遇した問題
- Linux
find、awk の使用法などのコマンドを 2 つ選択します
ファイルの並べ替え方法 (フォルダー内の最後に変更されたファイルを取得し、サイズを M 単位で表示するなど) )
Python、シェル、その他のスクリプト
書き方 ちょっと急ぎなので、抜けていたら追加していきます!
上記は主に技術的な側面に焦点を当てています。実際、多くのテクノロジーは一部の人にとってはすぐに習得できるため、人々にとっては頭が良いか、学習能力が高いことが最も重要です。
「あなたは独立して何を達成しましたか?証拠を見せてください。」
PHP ハッシュテーブル
データ キャッシュ
データベースの最適化
ブックリスト。
あなたが知っている Web セキュリティについて話してください。
それ以降、コードで DRY を実行していますか? はい、非常に良い場合は、教えてください。
コードのデバッグ方法を教えてください。多ければ多いほど良いです。 。
1. まずは自分がどのようなことをしたいのかを理解し、次にどのような人を見つけるかを考えます。
2. 適切なものを見つけることが必ずしも最高のテクノロジーを意味するわけではありません。これは非常に重要です。
応募者の成長レベルをどこまで掘り出せるかは、面接官のレベルにも大きく関係します。レベルが高くなればなるほど、簡単な質問から始めて、相手が対応できなくなるまで徐々に難易度を上げていきます。もちろん、この人を本当に雇用するつもりなら、攻撃的だと思われるのは良くないので、ここでは注意する必要があります。
世界で一番優れた言語は何ですか?
PHP と答える人は視野が狭すぎるため辞めます。
PHP と答えない人も辞めます。あなたの仕事をし、あなたの仕事を愛してください。
インターネットに接続できるコンピューターのコードを書くだけで、検索できれば問題ありません。トピックは、pdo に基づいた最も単純な ORM、クラス、または関数のカプセル化など、非常に単純なものにすることができます。基本的に、資格があれば 10 ~ 20 分以内に完了できます。30 分程度かかります。驚くのは、7割の人が枠外でさえ書けないということです。すばやく簡単に完了できる場合は、さらに 30 分待って、読み取りと書き込みを分離するように書き直すように依頼できます (メイン ライブラリは読み取りと書き込みが可能で、スレーブ ライブラリは読み取りのみが可能です)。 、読み取りリクエストは均等に分離されます)。
コードの実装では、バインディングを使用してインジェクションを回避することが最も基本的なことですよね。
質問は主に、何を採用したいかによって異なります。それは「php」プログラマーですか、それともphp「プログラマー」ですか。どちらに焦点を当てるかによって異なります。