Web屋にはほど遠い
無精で短気で傲慢なプログラマ 技術者・SE・プログラマ面接時の技術的な質問事項より。
※本ページの記述はsyonbori_techの解答であり、正しいことを保証するものではありません。っていうかたぶん間違えてる。いろいろと。
- UNIX
- 言語
- どの言語が好きか。使用している言語のバージョンは(言語共通)
- →C#2.0
- どの言語が好きか。使用している言語のバージョンは(言語共通)
- コンピュータ基本素養
- エンコーディングとは。文字集合とは (ISO-2022-JP と JIS X 0208 を説明できるか)
- →文字一文字ごとに固有の数字を割り当てた集合。説明できない。
- RFC を読んだことはあるか。
- →Yes
- テキスト領域とは何か。スタックとは何か。ヒープとは何か。
- →テキスト領域:プログラムのバイナリにおいて、プログラムが用いるテキストデータが格納されている領域。スタック:複数のデータを格納するためのデータ構造で、最後に入れたデータが最初に取り出される特徴を持つ。ヒープ領域:プログラムにおいて、動的に確保されたメモリ領域。
- ブラウザに URL を入力してから、ページが表示されるまで、ブラウザやOS が行うステップを示せ (5ステップ以上が望ましい)
- BNF (拡張BNF) とは何か。簡単な例をあげよ
- →バッカス・ナウアー記法。構文を記述するためのメタ構文記法。
- エンコーディングとは。文字集合とは (ISO-2022-JP と JIS X 0208 を説明できるか)
<mobile_tel_number> ::= <digit> <digit> <digit> "-" <digit> <digit> <digit> <digit> "-" <digit> <digit> <digit> <digit> <digit> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
- アルゴリズム
- クイックソートの概要を述べよ
- →比較領域を2つに分け、左側の全ての要素は右側の要素よりも小さいことを満たすように再帰的に並べ替えるソート手法
- O(n) とはどういう意味か
- →処理対象が2倍になったときに、処理時間が2倍となるようなアルゴリズム
- スパム判定に利用されているベイズの定理とは何か
- →確率論大嫌いです
- 将棋やチェスなどの思考ルーチンで使用されるミニマックス法とは何か
- →相手が最善手を取ると仮定し、自分の得点を最大化し、相手の得点を最小化する手を探索する手法
- 遺伝的アルゴリズムとは何か
- →突然変異と交叉によりパターンを順次生成するアルゴリズム。局所解に陥りにくい。
- "2+4*(8-1)" などの計算式の答えを出すプログラムを書けるか (字句解析/構文解析)
- →Yes
- 有限の在庫と、それを買いたい有限のお客様がいる。お客様は、各在庫について欲しい順に順位を付けている。
- →(略)
- クイックソートの概要を述べよ
- データベース
- SQL経験
- WHERE 句と HAVING 句と GROUP BY 句の意味と、評価順位は
- CASE・UNION・EXISTS の意味は
- →未だに本を引かないとさっぱりわからない
- データベース利用経験 (Oracle/MySQL/PostgreSQL/その他)
- ER図とは何か
- →Entity-Relationship図。DBの要素間の関連を表す図
- 正規化とは何か
- →DBから重複したデータをなくす作業
- ACID 属性とは何か
- →覚えてない
- バックアップ/リストアはできるか
- →本を読みながら
- レプリケーションはできるか
- →やったことない
- トランザクションログとは何か (ロールフォワードとは何か)
- トリガ・ビュー・ファンクション・プロシージャ・NOT NULL 以外の制約・参照整合性制約(外部キー)とは何か
- →よくわかってない
- ORマッパとは何か。どのORマッパが好きか
- →オブジェクト指向において、オブジェクトとDBの値を結びつけるしくみ。ActiveRecord。
- SQL経験
- バッチ系
- セキュリティ
- 外部のセキュリティ診断を受けたことがあるか
- →No
- SQL インジェクションとは何か。その対策は
- XSS 脆弱性とは何か。その対策は
- →外部からパラメタとして取り込んだデータにHTMLコードが埋め込まれ、埋め込まれたコードを表示してしまうこと。対策はパラメタのサニタイズ。
- CSRF (クロスサイト・リクエスト・フォージュリ) とは何か。その対策は
- →悪意のあるサイトに仕掛けられたコードにより攻撃対象のサイトに対するリクエストを送出してしまい、意図しない書き込みなどを実行させる攻撃。対策は投稿処理などにおいて送出元や利用者を確認できる情報を検証すること。
- 暗号化知識
- 日々のセキュリティ情報をどこから入手しているか
- 高木浩光を知っているか
-
- →シュッシュッ
-
- 外部のセキュリティ診断を受けたことがあるか
- HTML/Javascript/CSS
- HTML
- Javascript を書けるか
- Ajax な Javascript を書けるか
- →一応いろいろ見ながらなら
- Ajax ライブラリを使ったことはあるか (jQuery/prototype.js/script.aculo.us)
- DOM (Document Object Model) とは何か
- →HTML文書の各要素を論理木構造におこしたもの
- getElementById を使ったことはあるか
- →Yes
- appendChild でまっさらな HTML から任意の HTML を動的に生成できるか
- →たぶんできるけどやりたくない
- Ajax な Javascript を書けるか
- CSS
- その他
- Web アプリケーション
- CSVファイルをアップロードし、DB に格納するアプリケーションを作成できるか
- →本を見ながらなら
- CSVファイルをダウンロードするアプリケーションを作成できるか
- →本を見ながらなら
- 動的画像生成経験
- PDF生成経験
- →なし
- セッション管理
- →PHPになげっぱなし
- デザイナとの協業経験
- →なし
- SEO を意識して Web サイトを作成したことがあるか
- →なし
- リスティング広告組み込み経験
- →なにそれ
- Google Sitemap
- →なにそれ
- 全文検索エンジン利用経験 (Namazu/Hyper Estraier/Senna/Lucene など)
- 負荷計測はできるか
- →したことない
- クロスブラウザな Web を作成したことがあるか (IE 以外のブラウザ)
- CSVファイルをアップロードし、DB に格納するアプリケーションを作成できるか
- モバイル
- モバイルサイト構築経験
- →なし
- モバイルサイト構築経験
- ネットワーク管理
- Windows または UNIX マシンを、LAN に接続できるか
- →Yes
- DHCP サーバがないとして、PC に何を設定すれば LAN 経由でインターネットに出られるか
- →IPアドレス、ネットマスク、デフォルトゲートウェイ
- ルータ設定はできるか
- →Yes
- DNSサーバ管理はできるか
- →一応
- DNS サーバの役割は
- FTP における active/passive とは何か
- →クライアントがデータ転送セッションを待ち受けるのがActive、サーバが待ち受けるのがPassive
- telnet を起動し、HTTP/SMTP/POP3/FTP サーバとしゃべることができるか
- →POP3以外
- メールサーバ管理経験(sendmail/Postfix/qmail/その他)
- →無理
- traceroute の動作原理は
- NAT (NAPT) とは何か
- →1つのグローバルIPアドレスで複数のコンピュータが通信できるようにする仕組み。Network Address (Port) Translation
- Windows または UNIX マシンを、LAN に接続できるか
- プロジェクト管理/構成管理
- バージョン管理ツールの使用経験 (CVS/Subversion/Git など)
- 過去のプロジェクトでは、システムは何環境あったか (開発/テスト/本番など)
- 複数の環境で整合性を取るため、どのような工夫をしたか
- →大規模なものの経験なし
- Wiki の利用経験
- →Pukiwiki最高
- インフラ管理
ああ長かった。しかも読みづらいなこれ。