YAMAGUCHI::weblog

噛み付き地蔵に憧れて、この神の世界にやってきました。マドンナみたいな男の子、コッペです。

8つの質問で、Go業界の現状を知る

Webサービス系の隆盛があったのかどうかはよく知らないが、Goのリリースが騒がれたのが4年前ぐらいだろうか。Go業界の人材動向が、今どうなってるかって?

大方の予想より凄惨ですよ。

それが分かる方法がある。Go技術者に技術力を問う8つの質問によってだ。Go業界のエンジニアの平均レベルを知りたくって、いろんな会社さんのGo開発者(経験者)向けに以下のような8つの質問をしてみたいと思ってるけど、やったことはない。 対象者としては、Go経験3から4年の現役バリバリのはずのGoエンジニアだ。

その8つの質問というのはこんな問題だ。

Go技術者に技術力を問う8の質問

  • インターフェイスのメリットを一言で表して下さい。(筆記解答)
  • http.RequestオブジェクトからPostされたデータを取得するメソッドは何ですか?(筆記解答)
  • 標準パッケージでセッションを実現する方法を説明してください。(筆記解答)
  • interface{}型の変数aに代入したint64の値を取得するためのコードはどれですか?(選択解答)
    • a
    • int64(a)
    • reflect.ValueOf(a)
    • reflect.ValueOf(a).Int()
  • 並行プログラムを書いているのに、思ったほど実行時間が短くなってくれません。CPUコア数は足りているようです。原因として何が考えられますか?(筆記解答)
  • stringを+で結合するのはNGですか?そうであればその理由を説明してください。(筆記解答)
  • HTTPでクライアントブラウザの種類などの情報を知るためのヘッダは何ですか?(筆記解答)
  • JavaScriptでHTML要素をid属性の指定により取得するメソッドは何ですか?(筆記解答)

過去に実施した平均点

この8問について、僕が出会ったエンジニアに解答してもらった平均正解数は、なんと8点満点中8点(予想)である。

内訳的な話

そもそも知らないだろうから満点は無理でも、Goやろうと思ってるエンジニアさんだったら、とりあえず興味持ってくれただけでも点数をあげたい。筆記解答については相当甘くつけるから尚更だ。 例えば、1問目「インターフェイスのメリット」は、「疎結合の実現」ならニジュウマルだが、「層ごとの役割分担」でも「仕様の強制」でも「ポリモフィズムの実現」でもマルで、それらに類する説明ならちょっと分かりにくくても、なんでも正解にしてる。

並行プログラムの問題は、経験していなかったから知らないから何も言えなくてもまぁいいだろう。 (何年やってるかどうか以前にGOMAXPROCS系のトラブルを経験するほど使っている人は運がいい人なのだろうか、悪い人なのだろうか) 「getElementById」なんてわかりきってても、どうせみんなjQuery使ってるしどうでもいい。 「stringはおまじない的に+でつなげても大して問題はない」 「StringBufferなんていうJava風のものはない」 そんな状況である。1、2年目でも3、4年生でも、PGバリバリとの触れ込みでGoやってる人なんて見かけない。 設計やチームリードやコミュニケーションを得意としている人だろうが、プログラマー対象だろうが関係ない。 (どの会社でもGoやってればたぶん満点ばかりじゃないか。これはA Tour of Goをやってれば当たり前の点数だろう)

これぞ現在のGo業界の実態

でも僕は、ここ数ヶ月東京でGoの提案などの活動をやっていた経験から納得がいく。 これぞ「労働集約産業である現在のGo業界の実態」なのだから。

A Tour of Goなしに、1年目0円でテスト要員→2年目ちょっとGoとか→3年目Go 仕事と割り切った中で、フレームワークに乗っ取ったコードを書き続ける→その後4年経過 という流れのキャリアパスを通ってきた人に出会った試しがない。

業界などないという現実ではないか。

淘汰がない業界

統計としては母数が少なすぎる(1桁程度)ので、母集団を変えれば別の所感が得られるだろう。しかしながら、ヤバいのは淘汰以前に業界がないことだ。 特に東京ですら仕事も聞いたことがないから、レベル以前に危機感どころか生き残れるかさえ危うい。 このところ景気がいいのだろうが、全問正解だった人でも稼働現場が見つかるような状況ではない。 こういうエンジニアたちが大勢集まってシステム開発ができたらどれだけ良いことだろう。

結果として、一部の出来る人には余計に負荷がかかるだろうなと思う。

いままで僕は楽観主義者だから、

SIは労働集約産業だったけど、これからは知識集約産業になっていく。 必然的に淘汰の時代になり、優秀な人が生き残るだろう。 と思っていた。

しかし現実は、もっと凄惨な世界を経て時代が進んでいくようだ。

元ネタ

あわせて読みたい

おまけ

Go Conference 2013 springというイベントを行います。この凄惨なGo業界の現状を打破しましょう。直前でキャンセルが出るはずなので、とりあえず並んでみて下さい。

おまけ2

この凄惨なGo業界の現状を打破すべくいくつか資料を作成しました。併せてご参照下さい。