Naverまとめ「プログラマーの力量を見極める質問」

https://matome.naver.jp/odai/2133323755602668001
ホットエントリしてたのでメモ.

こういうのは Coding Interview 本にズラズラ載ってる奴だと思う.まじめに勉強する気なら,その手の問題集を入手した方が早い.

たぶんこの辺り.

世界で闘うプログラミング力を鍛える本 ~コーディング面接189問とその解法~

世界で闘うプログラミング力を鍛える本 ~コーディング面接189問とその解法~

Programming Interviews Exposed: Secrets to Landing Your Next Job

Programming Interviews Exposed: Secrets to Landing Your Next Job

http://d.hatena.ne.jp/JavaBlack/20151013/p1
類書多し.

ただし,どうせ日本企業じゃそんな質問は滅多にしないし,仮にしても出題者が問題を理解してないことも多いので,あんまり意味はない.


またプログラマーならこの程度の基礎知識は持っていて当然だけど,これらの問題の模範解答の丸暗記に意味は無いし,これらを全問正解できたからといって良いコードが書ける保証もない.つまりこの程度の問題では足切りには使えてもプログラマの力量は見極められない.*1

時間の無駄とでは言わないけど,過度の期待は禁物.

http://b.hatena.ne.jp/entry/s/matome.naver.jp/odai/2133323755602668001

  • id:nabe1121sir これらの質問がいいかどうかは置いておいて。SIerだとあんまり質問されることないよ。だって質問する側が知らないもの。
  • id:homarara 経験上、面接官がこのレベルの知識を持ってない会社はやばかった。出してくる問題の内容でその会社の方向性も割と見える
  • id:tokoroten999 いわゆるIT系の面接で「資格欄にLPICってあるけど何?」「…LINUXの資格です」「LINUXって何?」って言われた時さすがに言葉に詰まったこと思い出した
  • id:tanakakazu 「こんなの知らなくていい」「実力とは関係ない」「調べればわかる」みたいなコメがあるけど、もしこのレベルを知らないでコードを書いてたらやばくね? コピペプログラマレベルだわ。

激しく同意(涙)

  • id:perl-o-pal 「こんなん分からなくても」みたいなコメントが目立つけど、この辺分かってないプログラムの保守任されるとキレるでしょ?
  • id:kastro-iyan ブコメ読むと非難轟々だけど、この辺の知識あるとなしでコーディングし始めると有意な差が出るけどね。ググればいいって言ったって時間は限られるわけだし

うん.日本企業ではよくある.

  • id:infobloga 基礎力を見る質問というならともかく、「力量を見極める」と書くから批判されているんじゃないか。
  • id:sin20xx もはや入門書レベルだと思うのは僕だけだろうか・・・。あと、質問事項が言語によりそもそも無意味なものもあるのでそこは最低限理解して欲しいところ。恐らくはそれぞれについて深く語っても質問者は理解しないだろ
  • id:MasaMura で、この質問に答えれるレベルで年収はいくらですか?システム関連離れて10年経つけど、一週間でこの程度は思い出せると思う。
  • id:YukeSkywalker コーディングの問題出されたのは良いけど、紙と鉛筆で答えろ、って言われた時は辛かった。
  • id:netcraft3 転職活動をしていた時にエージェントを通すと、エージェントがコーディング試験や技術質問の過去問をこっそり教えてくれた。過去問そのままの問題が出ることも多かった。
  • id:burnworks 力量なんてコード読ませればわかるのにくだらない質問してどうすんのでしょう。プログラマさんってこういう無駄を一番嫌うはずでは?(ブクマしてしまいましたがまとめのアクセスに貢献するのは誠に遺憾です)

誤:コードを読ませれば
正:コードを書かせれば


残念な日本企業ならともかく,外資だと普通に書く方の問題も出るよ.ただし書く方の問題は時間がかかるので,あまり沢山の問題が出せない.どうしてもこういう基礎知識を問う問題も必要になるから無駄では無い.


  • id:shouh 等値と等価の違いはわからへん、使いもしない。 あと Go があって Python Ruby がないのはなんで?コンパイル型言語限定?

いや,使ってると思う...理解してないだけで.

EFFECTIVE JAVA 第2版 (The Java Series)

EFFECTIVE JAVA 第2版 (The Java Series)

  • 項目8 equalsをオーバーライドする時は一般契約に従う
  • 項目9 equalsをオーバーライドする時は常にhashCodeをオーバーライドする
  • 項目12 Comparableの実装を検討する

Object (Java Platform SE 7)

こういう人が書くと,「こんなのComparableオーバーライドすれば一発だろ?」って時でも,「Comparableってなんですか?」になるし,知らないからググって調べようとすることもない.Comparableと一貫性のあるequalsやhashCodeの書き方も分からない.もちろんググっても出てこないし,仮に見つかっても読んでる時間が無いし,読んでも理解できない.

そして苦労して奇妙なオレオレ実装で解決を図るんだけどバグだらけで,しかも無駄に複雑で理解しづらく後からでは修正不可能だったりするのだ.

  • id:abababababababa 逆に考えるとこの質問まとめが生まれたってことは、これさえ分からないPGが実務の現場に沢山いるからで、それはつまりこれらは採用基準にならない証明だよね。なくても仕事できる。同僚用のリトマス紙ってことかな。

いや,仕事は出来ないよ.

コピペプログラマが糞コードを作る→ コピペプログラマが編集して,さらに糞なコードにする → バグだらけだが,コピペプログラマではもはやメンテ不可能になる → 本物のプログラマに泣きつくが,その時点ではもはや手遅れ.
というのが日系企業の日常ではないかとさえ思う.

http://www.pro.or.jp/~fuji/mybooks/cdiag/

*1:効果は自動車の運転免許における問題集レベル.こういうテストの点数が低い人は車を運転すべきでないが,高いことと運転の上手い下手とはあまり関係がない.そのものズバリ,ペーパードライバーなる単語まである.
覚えるのはこれだけ!普通免許最強総まとめ問題集オールカラー 普通免許<ひっかけ対策>問題集
こんな基礎的なテストさえ全くできない人でもプログラマーを名乗る風潮はどうかともおもうけど...