fc2ブログ

無精で短気で傲慢なプログラマ

UNIX や web やプログラムの技術的なことを中心に。

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

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

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

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

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

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

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

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

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

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

・UNIX
 ・使用 OS は何か (FreeBSD/Linux/Solaris/UNIX)
 ・grep/tar/find を使ったことはあるか★
  ・cron 設定をしたことはあるか★
 ・パーミッション (chmod 777, chmod rwx など) の意味★
  ・ディレクトリに対する r/w/x はそれぞれどういう意味を持つか (ファイルに対する
   r/w/x との違いは何か)★
  ・1755・2755・4755 それぞれの意味は何か★
 ・パッケージ管理には何を使っているか
 ・configure からアプリケーションをコンパイルしたことがあるか
 ・共有ライブラリとは何か
 ・シェルの役割を示せ (sh や csh が以下の入力を得た後、何を行うか)★
  ・第一段階: コマンドラインにて ls とタイプしたとき
  ・第二段階: コマンドラインにて ls | sort とタイプしたとき
 ・fork/exec する簡単なシェルを書けるか
  ・子プロセスが親プロセスから引き継ぐもの、引き継がないものを、それぞれ数点あげよ★

・言語
 ・どの言語が好きか。使用している言語のバージョンは(言語共通)★
 ・Perl
  ・どのモジュールが好きか
  ・print と syswrite の違いは何か★
  ・Web フレームワークは何を使っているか
 ・Java
  ・Web フレームワークは何を使っているか
  ・「クラス変数/インスタンス変数/ローカル変数のうち、スレッド
    セーフなのはローカル変数だけである」とはどういう意味か
 ・PHP
  ・Web フレームワークには何を使っているか
  ・PEAR で利用しているパッケージは何か
  ・php.ini で定義できる以下のディレクティブの違いを述べよ。★
   ・default_charset
   ・mbstring.language
   ・mbstring.internal_encoding
   ・mbstring.http_input
   ・mbstring.http_output 
   ・mbstring.encoding_translation
   ・mbstring.detect_order
    → 当ページ管理人は全く覚えてません。
 ・Ruby
  ・Ruby に対する熱い思いのたけを述べよ
 ・C
  ・malloc(3)/realloc(3) にて、動的メモリ管理ができるか
   ・リンクリストを書けるか
   ・malloc したメモリは free すべきか★
  ・fputs(3) と write(2) の違いは何か
  ・可変長引数な関数を記述したことがあるか
  ・Makefile を書けるか
  ・コンパイル・アセンブル・リンクとは何か
  ・二乗を返すマクロ #define MY_POW(x) ((x)*(x)) の問題点は何か★

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

・アルゴリズム★
 ・クイックソートの概要を述べよ
 ・O(n) とはどういう意味か
 ・スパム判定に利用されているベイズの定理とは何か
 ・将棋やチェスなどの思考ルーチンで使用されるミニマックス法とは何か
 ・遺伝的アルゴリズムとは何か
 ・"2+4*(8-1)" などの計算式の答えを出すプログラムを書けるか (字句解析/構文解析)★
 ・有限の在庫と、それを買いたい有限のお客様がいる。お客様は、各在庫に
  ついて欲しい順に順位を付けている。
    お客様A: 1番欲しいのは商品x、2番目に欲しいのは商品y、3番目に…
    お客様B: 1番欲しいのは商品y
    お客様C: 1番欲しいのは商品x、2番目に欲しいのは商品z、3番目に…
  お客様に在庫を割り当てるとして、なるべく多くの在庫を割り当てつつ
  顧客満足を最大にする方法を示せ。ただし 1人のお客様には必ず 2個の
  在庫を引き当てる必要がある (1個は NG。3個以上も NG。0個はアリ)。

  なお、この割り当て作業は毎日実施する。在庫状況や、お客様が指定
  する順位は日々変動する。ある日は「お客様Bには割り当てできず」と
  いう状況もありうる (その場合お客様Bの顧客満足は低下する)。
  顧客満足の定義など不明点はおのおの考えること。
   → 「人材募集」に書いた新規サービスにおいて、こういうことをやります。

・データベース
 ・SQL経験
  ・WHERE 句と HAVING 句と GROUP BY 句の意味と、評価順位は★
  ・CASE・UNION・EXISTS の意味は★
 ・データベース利用経験 (Oracle/MySQL/PostgreSQL/その他)
  ・Oracle であれば、テーブルスペース (表領域) とは何か。エクステントとは何か。
  ・MySQL であれば、MyISAM と InnoDB の違い。
 ・ER図とは何か
 ・正規化とは何か
  ・第一正規形/第二正規形/第三正規形とは何か
 ・ACID 属性とは何か
  ・ヒントとして
   ・Atomicity(原子性)/Consistency(一貫性)/Isolation(独立性)/Durability(永続性)
 ・バックアップ/リストアはできるか
 ・レプリケーションはできるか
 ・トランザクションログとは何か (ロールフォワードとは何か)
 ・トリガ・ビュー・ファンクション・プロシージャ・NOT NULL 以外の制約・参照整合性
  制約(外部キー)とは何か★
  ・上記のものを使うべきか使わざるべきか (DB でやるかアプリでやるか)。また、それはなぜか。
 ・ORマッパとは何か。どのORマッパが好きか

・バッチ系
 ・CSV/固定長ファイルを取り込むことはできるか
 ・メール配信ができるか
 ・EDI連携 (受発注や在庫流通などのデータ連携) はできるか
 ・バッチにて途中でエラー終了した場合、
  ・DB を更新するバッチの場合、後始末として何をすべきか
  ・1000人にメールを送るバッチの場合、後始末として何をすべきか
  ・CSV ファイルを出力するバッチの場合、後始末として何をすべきか

・セキュリティ
 ・外部のセキュリティ診断を受けたことがあるか
 ・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 アプリケーション
 ・CSVファイルをアップロードし、DB に格納するアプリケーションを作成できるか★
  ・CSVファイルをダウンロードするアプリケーションを作成できるか★
  ・動的画像生成経験★
  ・PDF生成経験★
 ・セッション管理
 ・デザイナとの協業経験
 ・SEO を意識して Web サイトを作成したことがあるか
  ・具体的に何を行ったか、効果測定をしたか
 ・リスティング広告組み込み経験
 ・Google Sitemap
 ・全文検索エンジン利用経験 (Namazu/Hyper Estraier/Senna/Lucene など)
  ・n-gram と形態素解析の違いは何か
 ・負荷計測はできるか
  ・どのような負荷計測ツールを使ったか
  ・どのような考え方で負荷計測をしたか (何をもって合格とするか)
 ・クロスブラウザな Web を作成したことがあるか (IE 以外のブラウザ)

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

・ネットワーク管理
 ・Windows または UNIX マシンを、LAN に接続できるか
 ・DHCP サーバがないとして、PC に何を設定すれば LAN 経由で
  インターネットに出られるか
 ・ルータ設定はできるか
 ・DNSサーバ管理はできるか
 ・DNS サーバの役割は
  ・DNS の正引きとは何か、逆引きとは何か
   ・A レコードとは何か、CNAME レコードとは何か、AAAA レコードとは何か
   ・SPF レコードとは何か
 ・FTP における active/passive とは何か
 ・telnet を起動し、HTTP/SMTP/POP3/FTP サーバとしゃべることができるか
 ・メールサーバ管理経験(sendmail/Postfix/qmail/その他)
  ・携帯宛のメール送信はできるか
   ・その場合の注意点は (PC 宛ではなく、携帯宛の場合で気をつけること)
  ・大量メール配信経験
  ・マルチパートメールを送信できるか
   ・(いわゆる)デコメールの仕組みを述べよ
  ・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 サイトが重いため、定量的な分析を行ってボトルネックを調査したい。
  具体的にどのようにするか。
   ヒント: ネックになっているのは、DB/アプリケーション/帯域/CPU/HDD
       のいずれかとする。どのような分析をすることで原因を突き止め
       られるか。
スポンサーサイト



PageTop

コメント


管理者にだけ表示を許可する
 

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

| URL | 2009-02-24(Tue)11:30 [編集]


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

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

68user | URL | 2009-02-24(Tue)12:46 [編集]


セキュリティの項目の 「・高木浩光を知っているか」に笑った.

| URL | 2009-02-24(Tue)15:40 [編集]


折角 fc2 blog なのでバトンにしたら面白そうだと思いました。すでに誰かやってるかな?

| URL | 2009-02-24(Tue)18:33 [編集]


 ・シェルの役割を示せ (sh や csh が以下の入力を得た後、何を行うか)★

  ・第一段階: コマンドラインにて ls とタイプしたとき

リターンが入力されるのを待つ。

| URL | 2009-02-25(Wed)10:44 [編集]


s/Lucine/Lucene/

 ・全文検索エンジン利用経験 (Namazu/Hyper Estraier/Senna/Lucine など)

違ってたら申し訳ないのですが、
LucineはLuceneのtypoでしょうか><

rin1024 | URL | 2009-02-25(Wed)13:34 [編集]


> LucineはLuceneのtypoでしょうか><

ありがとうございます。修正しました。

怪しげだったので事前に Google で検索したのですが、「もしかして」が
出なかったのでスルーしてしまいました。

ちなみに、経歴書に SORALIS とか apatch とか書いてくる人は、
 ・単語をタイプする機会が少ない可能性あり (本当に使っているのか疑問)
 ・自己レビューの習慣がない可能性あり
 ・ここぞという機会で、よいアウトプットを出せない可能性あり
とみなして若干 (ほんとに若干ですが) マイナス評価としています。

なので、わたし自身もマイナス評価ということで。

68user | URL | 2009-02-25(Wed)13:49 [編集]


とおりすがりの失業者のつぶやき

無精で短気で傲慢
ときたから、てっきり Perl 派なのかと思ったら...

moonyHug | URL | 2009-02-25(Wed)16:55 [編集]


> ときたから、てっきり Perl 派なのかと思ったら...

Perl 派ですよ。何かひとつ選べと言われたら、Perl です。
もし Perl の質問事項が少ないということであれば、
 ・Perl はやり方がいろいろありすぎる
 ・何をもって習熟しているかの判断がしづらい
というのが理由です。

例えば
 ・my と local の違いを述べよ
  → my から入った人で、local を使う機会がなかった人は多いと思われる
 ・do { next if $cond } while() の注意点は
  → do~while を使わない人は使わない。というかこんなのどうでもいい
 ・~のモジュールを使ったことはあるか
  → 人によって違いすぎる。当ページ管理人は Carp とか FindBin とか
    Class::Struct とかを使いますが、知らない人は知らない。一般的と
    言えるのは、せいぜい strict とか warings とか Data::Dumper あたり?
などなど、いろいろ考えてしまいます。何かよい判断方法があれば
教えてください。

と書いたところで、リファレンス・デリファレンスや、ファイル
ハンドルについてならちょうどいいかも、と思いました。

68user | URL | 2009-02-25(Wed)22:00 [編集]


好きなモジュールはいい質問ですね。

テストを書いた事はあるか
POD を書いたことはあるか
B::Deparse とか Devel::DProf の使用経験はどうですか

Lvひくいかな。。

| URL | 2009-02-25(Wed)23:21 [編集]


68user

なるほど、プロファイラはよいですね。そういえば
テスト関連がすっぽり抜けてますね。

> テストを書いた事はあるか
JUnit なら。

> POD を書いたことはあるか
ありません。

> B::Deparse とか
初めて知りました。

> Devel::DProf の使用経験はどうですか
あります (よかった…)

| URL | 2009-02-26(Thu)01:54 [編集]


笑えましたw

ちょwww セキュリティ項目で吹きましたw

iPhoner | URL | 2009-02-27(Fri)00:54 [編集]


おれ、その質問ほとんど分からんけど、元請けSIerで780マソ貰ってる。
情シスのプロパー探しなら、違うスキルを図る質問の方がいいんじゃね。

| URL | 2009-03-12(Thu)04:50 [編集]


金銭的な面だけで言うと、プログラムを書かずにマネージメントや要件定義に
特化した方がよいのでしょうね。

「情シス」というのがどういう意味で書いておられるかわかりませんが、「事業
運営会社の情報システム部として、外注を使う立場」ということであれば、
「会社の規模による」と思います。

大きな会社であればここまで手広くやる必要はないですし、そもそも
技術知識ゼロでよいかもしれません。小さな会社であれば、知識範囲は
広ければ広いほどよいというのがわたしの考えです。

68user | URL | 2009-03-15(Sun)23:20 [編集]


トラックバック

トラックバック URL
この記事にトラックバックする(FC2ブログユーザー)

プログラマ失格だね><

技術者・SE・プログラマ面接時の技術的な質問事項なんてページを見つけたから、某エセプログラマが答えてみるよ>< ・UNIX ・使用 OS は何か (FreeBSD/Linux/Solaris/UNIX) Mac OSXじゃだめですか>< ・パッケージ管理には何を使っているか MacPortsとかチャレンジした

990のひとのブログ 2009-02-24 (Tue) 13:19


プログラマー面接時の技術的な質問事項(アプレッソ版)

技術者・SE・プログラマ面接時の技術的な質問事項というエントリをはてブで見かけたのだが、私もjavaプログラマーの面接を割とよくやっているので、よく質問する内容をまとめてみた。 (ちなみに、基本的にコーディング面接の形態を取っている) プロジェクトの性質にも...

小野和俊のブログ 2009-02-24 (Tue) 16:38


[雑記] スキル項目リスト

無精で短気で傲慢なプログラマ | 技術者・SE・プログラマ面接時の技術的な質問事項 はてブを見ると、「やべー!勉強しなきゃ」みたいなコメントがついてますが、たぶん大丈夫。これらの項目は即戦力かどうかを見分けるためのものと思われるので、新卒採用の際にこんな質問を

koba::blog 2009-02-24 (Tue) 20:33


ただいも!

修羅場終了デスヾ(゚∀゚)ノ というワケでお久しぶりです。 無事に仕事を終えてきました。 暇な時間は殆ど無く、結局更新はできませんでした(´・ω・`) お昼休み2分とか、そんな感じでしたし。 昼ごはんが2分で食えるか!!ヽ(`Д´)ノ とか言いつつも、忙しい以...

RAVENZ NETWOTK ::: BLOG EDITION 2009-02-25 (Wed) 15:17


[雑感]面接の質問に答えてみた

技術者・SE・プログラマ面接時の技術的な質問事項 酔った勢いで答えてみた。googleでカンニングは無しの自己ルール。こんな私でも雇ってくれるところある??w ・UNIX  ・使用 OS は何か (FreeBSD/Linux/Solaris/UNIX)    Linux 85% FreeBSD 10% Solaris 5%。貧乏なので

プログラマになりたい 2009-02-26 (Thu) 08:14


[PC][雑記]プログラマー面接時の質問に答えてみる(1)

以下のものを見つけてしまったので質問事項に答えてみる。といってもプログラマーではないしなる予定もない、自分の知識の確認のために答えてみる。 無精で短気で傲慢なプログラマ | 技術者・SE・プログラマ面接時の技術的な質問事項 長いので2回に分けます。 ではいきます

MasaHeroの日記 2009-02-26 (Thu) 15:54


[雑記]Web屋にはほど遠い

無精で短気で傲慢なプログラマ | 技術者・SE・プログラマ面接時の技術的な質問事項より。 ※本ページの記述はsyonbori_techの解答であり、正しいことを保証するものではありません。っていうかたぶん間違えてる。いろいろと。 UNIX 使用 OS は何か (FreeBSD/Linux/Solaris/U

しょんぼり技術メモ 2009-02-27 (Fri) 23:36


PG面接

* 無精で短気で傲慢なプログラマ | 技術者・SE・プログラマ面接時の技術的な質問事項 - http://68user.blog27.fc2.com/blog-entry-41.html それがしが面接官ならこんなこと訊かない。 今までの経歴と、その詳細。どうやって技術習得したかとか。 あと最近の話題を知っ...

静電気日記@Heaven 2009-03-02 (Mon) 11:44