インタビュー きょう

インタビュー

私の専門的な職務には、PHP開発者の地位に関する応募者へのインタビューの実施が含まれます。 そして、インタビューについて話します...





2年前、同様の投稿が私のブログHabréの両方で激しい議論を引き起こしましたが、何が変わったかは言いません。自分でそれを見ると思います。



私たちの人事はすでにかなり経験が豊富であるため、いくつかの質問に対処します。



- なぜ以前の仕事を辞めたのですか?

- なぜ私たちの会社を選んだのですか?

- どのようにしてプログラミングの学習を始めましたか?

- なぜPHPを選んだのですか?



これらの質問に対する答えは、人の第一印象を形成します。 多くの場合それは本当です...

その後、会話は技術の主流になります。 OOPの基本( 継承カプセル化ポリモーフィズム )から始めて、このステップをスキップすることもできます。



- どのPHPライブラリ、フレームワークに精通していますか?



申請者は、Zend Framework、CakePHP、CodeIgniter、Symfonyなどのフレームワークの存在に注意する必要があります。そのうちの1つを使用した経験があることをお勧めします(リストを拡張できます-これはそれほど重要ではありません)。



PHP開発者として4年間以上働いてきましたが、これらのフレームワークのうち3つに出会い、Zend Frameworkを積極的に使用しています。

さまざまなフレームワークを知ることで、コードの記述方法に関する洞察とアイデアが得られます。 このパスは、すべての開発者に行くために必要です。 オープンソースプロジェクトの開発を研究し、参加してください-これは、あなた自身が分析的思考で得ることができるものと比較して、多くの経験を与えます。 この質問に答えるには、設計とアーキテクチャの思考に関するあなたの能力について話すのが適切でしょう。




- どのAPIを使用する必要がありましたか?



Google API、AMF PHP、さまざまな支払いゲートウェイ、Facebook API、Twitter APIなどに興味がある



この質問は非常に重要です。なぜなら、サードパーティのアプリケーションを統合した経験に対する質問だからです。 私たち開発者は、サードパーティのライブラリと内部ライブラリをアプリケーションの作業コードと統合するのに多くの時間を費やしています。 これは、他の人のコードを読んで理解するトピックにも当てはまります。 ここでは、プロジェクトの作業コードにさまざまなライブラリ、クラス、または製品全体を実装する経験を拡張できます。




- さまざまなCMSの経験がありますか? ウェブマスターとしてではなく、プログラマとしての経験...



会社はプロジェクトでCMSを使用していると思います。 慣れ親しんでいるCMSについて、または自分で作成した自作のCMSについても詳しく教えてください。




-PHP 4で動作しましたか? 5番目のバージョンとの違いは何ですか。

-PHP 5.3の新機能

-PHPのデータ型?



この質問は仕上げのためのものです。彼はしばしば困惑します。人が8つあると答えそれらをリストし始めたら、彼はインタビューの準備をしていました :)



すべての答えはPHPマニュアルにあり、RTFMだけです。




- シリアル化とは何ですか?

-PHPで開発するのが最も難しかったことは何ですか?



この質問はすべての「私」に点を付けることができますが、最初は聞かないでください-怖い...



2番目の質問は非常に優れており、重要な場合もあります。 ここで、前回のプロジェクトまたは最も興味深いプロジェクトでのOOPの設計、アーキテクチャ、およびアプリケーションについてお話します。 また、高度なアプリケーション最適化について追加し、大規模なデータ配列を処理します。 また、Sphinx Search、Luceneなど、ある種の「エキゾチック」ではあるが非常に有用なライブラリを使用している場合や、企業内でユニークなものを使用している場合は、説明する価値があります。




- どのようなデザインパターンを知っていますか? それぞれの塩は何ですか?

-MVCとは? 各構成要素はどのような役割を果たしますか?



デザインパターンまたはデザインパターンは、一般的な問題を解決するための一般的な方法にすぎません。 「Gangs of Four」または「Fowler's Architecture of Corporate Software Applications」という本を注意深く読んだ人は、この質問に少しでも喜んで答えます。




- どのWebサーバーを使用しましたか? アパッチ? Nginx? IIS?

- ユーザーがgoogle.comをアドレスバーに入力する方法と、ブラウザーがページを表示する方法の間に何が起こるかについて、できる限り詳しく説明できますか?

- バージョン管理システム? SVN? CVS? Git? ブランチ/トランク/タグとは何ですか?

- バグ追跡システム?



一部のWeb開発タスクは、Webサーバーをセットアップすることで解決されます。 したがって、Webサイトを作成するときは、WebサーバーとHTTPプロトコルの機能に精通してください。

バージョン管理システムなしの最新のWeb開発には方法がありません。変更を追跡するためのツールであるだけでなく、初心者プログラマーのパッチを分析してコードの品質をチェックするための良い方法でもあります。




DBを少し苦しめます。

- どのデータベースを使用しましたか? トランザクション、ストアドプロシージャ、トリガーとは何ですか?

-KohlはMySQLを使用していましたが、バージョン4.1、5.0、5.1の違いに名前を付けられますか?

-MyISAMとInnoDBの違いは何ですか?



これらはすべてMySQLマニュアルに記載されており、少なくとも理論的には、開発者はMySQLの追加機能に関する知識を持っている必要があります。 ストレージエンジンの種類はそれほど多くないため、主な2つの特徴を理解する必要があります。

php、python、perlを使用したWeb開発での3年以上の経験がある場合は、mysql 3.23から始めた可能性が高く、MySQLが進化するにつれて、新しいバージョンの違いと可能性を提示します。 したがって、この質問はあなたをノックダウンするべきではありません。




web- HTML, CSS, Javascript:

CSS ?

?

CSS ?

? HTML .



#my p.sel:first-line, .main li li a:hover + span

{

color:#f00; /* ? */

}









, CSS . , , .





Javascript'?

Javascript'a?

Javascript ? ? , ?



jQuery/UI, Prototype/Aculo, MooTools/MochaUI, Dojo Toolkit, ExtJs.



Javascript?

AJAX ?

JSON? JSONP ?



Javascript CSS, , . Javascript , Javascript.




? — - .



, — ( )…



, ? , Junior , , .



, ( ):





,



All Articles