主に TurboGears/Python を使用する Web 開発者を雇おうとしている場合、どのような質問をする必要がありますか?
4 に答える
他の回答の良い提案に加えて、私がいつも (ウェブに関連するものを開発する候補者であれば誰からでも) 聞きたいのは、「ユーザーがブラウザのアドレスに www.foo.com と入力したときバーとヒットが戻ってきた場合、何が起こりますか? あなたが最善だと思う限り詳細に説明してください.
使用中のサーバー側フレームワークは別として、これは、候補者が対処しなければならない他の重要なテクノロジ (HTTP とその下の TCP/IP スタック全体) について、候補者が理解していることについて多くのことを教えてくれます。 DNS、さまざまな種類のキャッシュ (および、それらがときどき面倒になることがあり、開発者であるあなたがそれに対してできること...)、ブラウザー技術、Cookie、HTML および CSS の表面的に見える側面、そしておそらくいくつかのJavascript、...
はい、フレームワークなど、私たちが使用する日常のテクノロジーは、これらすべてから抽象化しようと懸命に努力していますが (それによって生産性を向上させようとしています)、Joel Spolsky の 漏れやすい抽象化の法則が適用されます。からは、ソフトウェア クラフトの真の習得に不可欠です。
候補者が面接するポジションの詳細に応じて、さまざまな領域でより深いドリルダウンが適切になります。たとえば、HTTP リクエストがどのように (Web サーバーと Turbogears 機構を介して、おそらく WSGI を介して) アプリケーション コードに到達するか (合理的な抽象化レベルで)、コードがどのようにリクエストを調べて応答を準備するかを大まかに説明します。応答はパッケージ化され、要求元のブラウザーに送り返されます。すべてが関心のある項目である可能性があります。問題の開発者が持つフロントエンド/UI の責任の種類に応じて、ブラウザーがさまざまな側面を処理する方法について詳しく説明します。応答 (スタイル シート、スクリプト、画像などへのリンクを含む) も適切な場合があります。
誰でも、フレームワークなどの特定のテクノロジについて「詰め込む」ことができます。十分に頭が良ければ、「クイズ」形式のインタビューを「エース」することができます。しかし、このようなよりオープンエンドで議論の余地のないインタビューに対応できる人は、関連するテクノロジーと抽象化のスタックの多くのレイヤーを実際に習得し、理解している可能性が圧倒的に高いです。 Turbogears を使用したことがなくても (むしろ、Django、Wekrzeug、web.py など) [Turbogears 固有の詳細を詰め込んで取得することができます。週、トップ]、Turbogears リファレンス マニュアルのスタックを記憶することに専念しているが、HTTP、Cookie、TCP/IP を本当に理解していない人よりも...
最良の面接の質問は、問題を解決するために質問するものです。
ここにいくつかのセミランダムな提案があります ( FizzBizz テスト後)
パイソン
あなたが働いているドメインで1週間かけて実装する重要なプロジェクトを彼らに与えてください。検索会社に一度応募したところ、協調フィルタリング システムの実装を依頼されました。
通常混乱しやすいのは、デコレータ、型システム、メタクラス、おそらくイテレータです。これらのことについて何か質問して、その深さを探ることができます。
ターボギア
ここで多くを提案することはできませんが、彼らが選択した ORM について質問し (いくつかのマッパーとクエリを構築します)、検証について少し質問することができます (条件付き検証を FormEncode で動作させるのに苦労しました)。また、アプリのテスト方法、スケーリングの確認方法、パフォーマンスのテスト方法、デプロイ方法についても少し調べてみることができます。
彼に尋ねてください:
- イントロスペクション
- モデル-ビュー-コントロールの設計
- 文書化ツール
彼がそれについてたくさん知っているなら、確かに他の問題についてもたくさん知っているでしょう。
クイズしないでください。VC から実際の (壊れている可能性がある) コードを入手してください。彼らがそれをどのように修正/機能を追加するかを教えてもらいます.
可能であれば、以前の作品のサンプルをいくつか持ってくるように依頼してください。