Entries

技術者・SE・プログラマ面接時の技術的な質問事項

最近、技術者やプログラマの方と面接する機会が多いです。
毎回質問事項を考えるのにも飽きたので、再利用できるようにまとめておきます。

もしさわりの質問に対する反応が良かった場合は、さらに突っ込んだ質問
(インデントが深いもの) をします。経験がないようなら、さらっと流します。

当ページ管理人は、現在 EC サイト構築・運営を担当しているため、
そっち方面に偏っています。

最小限の質問でその人のスキルを見極めるのは難しいなぁ…。

-------
●追記
ホッテントリに載ったようなので、このチャンスに 人材募集 を再アピールしておきます。
興味のある方はぜひ。

念のため言っておきますが、全部できないとダメというつもりは全くありません
(当ページ管理人も、CSS・Eclipse・Struts・Spring・Hibernate・Ruby・アセンブラなど、
弱い部分が多々あります)。

「〜はできますか?」「できます」というやりとりがよくあるのですが、「できます」の幅が
広すぎるので、そこを見極めるための材料です。

●追記2
> s-miyashita telnet で ftp って、データ送受は許してくれますよね?:)
passive でデータ送受信まで行えば文句なしです :-D

●追記3
「アルゴリズム」を追加しましたが、イマイチ。その他ちまちまと追加。
-------

・UNIX
 ・使用 OS は何か (FreeBSD/Linux/Solaris/UNIX)
 ・パッケージ管理には何を使っているか
 ・configure からアプリケーションをコンパイルしたことがあるか
 ・fork/exec する簡単なシェルを書けるか
 ・共有ライブラリとは何か
 ・シェルの役割を示せ
  ・第一段階: コマンドラインにて ls とタイプしたとき
  ・第二段階: コマンドラインにて ls | sort とタイプしたとき

・言語
 ・Perl
  ・どのようなモジュールを使ってきたか
  ・Web フレームワークには何を使っているか
 ・Java
  ・Web フレームワークには何を使っているか
  ・「クラス変数/インスタンス変数/ローカル変数のうち、スレッド
    セーフなのはローカル変数だけである」とはどういう意味か
 ・PHP
  ・Web フレームワークには何を使っているか
 ・Ruby
 ・C
  ・システムコールとライブラリルーチンの違い
  ・リンクリストを書けるか
  ・可変長引数な関数を記述したことがあるか
  ・malloc(3)/realloc(3) にて、動的メモリ管理ができるか
  ・Makefile を書けるか
  ・コンパイル・アセンブル・リンクとは何か

・コンピュータ基本素養
 ・エンコーディングとは。文字集合とは (ISO-2022-JP と JIS X 0208 を
  説明できるか)
 ・RFC を読んだことはあるか。
 ・printf(3) と write(2) の違いは何か
 ・テキスト領域とは何か。スタックとは何か。ヒープとは何か。
 ・ブラウザに URL を入力してから、ページが表示されるまでのステップを示せ
 ・BNF (拡張BNF) とは何か。簡単な例をあげよ

・アルゴリズム
 ・クィックソートの概要を述べよ
 ・O(n) とはどういう意味か
 ・スパム判定に使用されいているベイズの定理とは何か
 ・将棋やチェスなどの思考ルーチンで使用されるミニマックス法とは何か
 ・遺伝的アルゴリズムとは何か
 ・有限の在庫と、それを買いたいお客様がいます。ただし 1人のお客様には必ず
  2個の在庫を引き当てる必要があります (1個は NG。3個以上も NG。0個はアリ)
  お客様は各在庫についてランクを付けています。在庫引き当て数と顧客満足を
  最大にする引き当てを求めるための方法を示せ。
   → 「人材募集」に書いた新規サービスにおいて、こういうことをやります。

・データベース
 ・SQL経験
  ・WHERE 句と HAVING 句と GROUP BY 句の意味と、評価順位
  ・CASE・UNION・EXISTS の使用経験
 ・データベース利用経験 (Oracle/MySQL/PostgreSQL/その他)
  ・Oracle であれば、テーブルスペース (表領域) とは何か。エクステントとは何か。
  ・MySQL であれば、MyISAM と InnoDB の違い。
 ・ER図とは何か
 ・正規化とは何か
  ・第一正規形とは何か
  ・第二正規形とは何か
  ・第三正規形とは何か
 ・ACID 属性とは何か
  ・ヒントとして
   ・Atomicity(原子性)
   ・Consistency(一貫性)
   ・Isolation(独立性)
   ・Durability(永続性)
 ・バックアップ/リストア経験
 ・レプリケーション経験
 ・トランザクションログとは何か (ロールフォワードとは何か)
 ・トリガ・ビュー・ファンクション・プロシージャ経験
 ・ORマッパ利用経験

・バッチ系
 ・CSV/固定長ファイル取込経験
 ・メール配信経験
 ・EDI連携の経験
 ・バッチにて途中でエラー終了した場合、トランザクションはどうすべきか

・セキュリティ
 ・外部のセキュリティ診断を受けたことがあるか
 ・SQL インジェクションとは何か。その対策は
 ・XSS 脆弱性とは何か。その対策は
 ・CSRF (クロスサイト・リクエスト・フォージュリ) とは何か。その対策は
 ・暗号化知識
  ・ブロック暗号とは何か
  ・公開鍵暗号とは何か
  ・MD5・SHA とは何か。暗号化と一方向ハッシュの違いは何か

・HTML/Javascript/CSS
 ・HTML
  ・HTML を書けるか
   ・XML を書けるか
   ・XHTML を書けるか
    ・DTD とは何か
    ・DOCTYPE 宣言とは何か
  ・「HTML 4.0 Transitional では IE は quirk モードになる」の意味がわかるか
  ・実体参照とは何か
  ・META タグとは、「何の」META 情報か。
 ・Javascript を書けるか
  ・Ajax な Javascript を書けるか
  ・Ajax ライブラリを使ったことはあるか (jQuery/prototype.js/script.aculo.us)
  ・DOM (Document Object Model) とは何か
   ・getElementById を使ったことはあるか
   ・appendChild でまっさらな HTML から任意の HTML を動的に生成できるか
 ・CSS
  ・CSS を書けるか
  ・padding と margin の違いは何か
  ・CSS Sprite とは何か
 ・その他
  ・favicon とは何か
  ・URLエンコードとは何か
  ・BASE64 とは何か

・Web アプリケーション
 ・セッション管理
 ・デザイナとの協業経験
 ・SEO
 ・リスティング広告組み込み経験
 ・Google Sitemap
 ・全文検索エンジン利用経験 (Namazu/Hyper Estraier/Senna/Lucine など)
  ・n-gram と形態素解析の違いは何か
 ・負荷計測経験
  ・どのような負荷計測ツールを使ったか
 ・クロスブラウザな Web を作成したことがあるか (IE 以外のブラウザ)

・モバイル
 ・モバイルサイト構築経験
 ・公式サイト構築経験
 ・(いわゆる) 携帯 UID とは
 ・画像表示に関する機種ごとの差異を述べよ
 ・HTML に関する機種ごとの差異を述べよ

・ネットワーク管理
 ・ルータ設定経験
 ・PC をセットアップし、LAN に接続できるか
 ・DHCP サーバがないとして、PC に何を設定すれば LAN 経由で
  インターネットに出られるか
 ・DNSサーバ管理経験
 ・DNS サーバの役割は
  ・DNS の正引きとは何か、逆引きとは何か
   ・A レコードとは何か、CNAME レコードとは何か、AAAA レコードとは何か
   ・SPF レコードとは何か
 ・FTP における active/passive とは何か
 ・telnet を起動し、HTTP/SMTP/POP3/FTP サーバとしゃべることができるか
 ・メールサーバ管理経験(sendmail/Postfix/qmail/その他)
  ・携帯宛のメール送信経験
  ・大量メール配信経験
  ・マルチパート送信経験
  ・bounce メール処理
  ・foo.@exmaple.co.jp というメールアドレスが不正であることを説明せよ。
   どうしてもこのメールアドレスにメールを送信したい場合の方法は。
 ・traceroute の動作原理
  ・UNIX 系の traceroute と、Windows の tracert コマンドの大きな違いは何か
   (ヒント: ICMP)
 ・NAT (NAPT) とは何か

・プロジェクト管理/構成管理
 ・バージョン管理ツールの使用経験 (CVS/Subversion/Git など)
 ・過去のプロジェクトでは、システムは何環境あったか (開発/テスト/本番など)
 ・複数の環境で整合性を取るため、どのような工夫をしたか
 ・Wiki の利用経験

・インフラ管理
 ・Webサーバ(Apache)
  ・どのようなモジュールを使ったことがあるか
  ・バーチャルホストを設定できるか
  ・SSL
   ・SSL 対応ページを準備するまでの手順を示せ (ヒント: 秘密鍵・CSR)
  ・負荷分散の経験
 ・静的 Web ページを高速化する方法を示せ
  ・Apache における ETag とは何か
 ・Web サイトが重い場合、どのような手順で解決するか (できるだけ定量的な分析を)
このエントリーをブックマークに追加 ブックマークに追加する
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://68user.blog27.fc2.com/tb.php/41-4e568a90

0件のトラックバック

2件のコメント

[C296]

プロジェクト管理に関することかもしれませんが,
チームメンバーとのコミュニケーションに関する
質問はどのようなものをされてますか?

[C297]

コミュニケーション能力についてということであれば、面接での
会話で計ります。こちらが何を知りたいのかを理解した上で回答
しているかどうかで判断でします。

そうではなく、過去のチームメンバーとのコミュニケーションに
関することであれば、会社・チーム・規模・ポジションなどに
大きく左右されるため、うまい質問は見つけられていません。
強いて言うなら、
 「設計思想やノウハウをどうやって共有していますか?」
ですかね (これもあまりよい質問とは思いませんが)。
  • 2009-02-24
  • 68user
  • URL
  • 編集

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

Appendix

プロフィール

Author:68user
http://X68000.q-e-d.net/~68user/

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

Powered By FC2ブログ

Powered By FC2ブログ
ブログやるならFC2ブログ