技術面接の際にGo言語を選ぶ事はできますので、可能不可能という話だけで言うと可能です。

ただ「Go言語だけがめちゃくちゃ書けるけどC/C++やJavaはできない」という人間をこれまで一度も見たことがありません。もっと言うとコンピュータ・サイエンスの高い素養を持ち合わせながらC/C++もJavaもできないという人もお目にかかった事がありません。そもそも何か一つの事を突き詰めようとすると自ずとその周辺分野もある程度理解する必要があります、なぜなら理解しないと自分の分野にどの程度関わっているかすら切り分けられないからです。周辺分野に一度も興味を向けた事もなく高みに登ったつもりでいたらそれは視野が狭いだけです。Go言語もある程度以上の高みに至るとC言語と完全に無縁ではいられません。

Googleの採用の仕組みはCracking Coding Interviewにも書いてありますが、Hiring Committeeを通過した後に部署とのマッチングがあります。部署によってはJavaしか使わなかったりC++しか使わなかったりする所も珍しくないので、そういう所のマネージャは自然と「Javaが得意な人に来て欲しいな」ぐらいの事は考えます。そうしてマッチング先が一つも現れなかったら「今回はあなたに合うポストがありませんでした」として落ちる事は起こりえます。もちろん運良くGoを使っている部署とマッチングを果たすことも理論上はありうるでしょう。

これはGoogleに限らず言える事ですが、就活する際には「必要とあらば何でも学んでみせる」という覚悟を示すことは常に重要です。ですのでキャリアをGo言語と心中させにいくスタイルを貫くのはあまり賢明ではないと思います。

ここから先は完全に余談なのですが、GoogleはC++用のライブラリのabseilを公開しています。

GitHub - abseil/abseil-cpp: Abseil Common Libraries (C++)

Abseil Common Libraries (C++). Contribute to abseil/abseil-cpp development by creating an account on GitHub.

https://github.com

https://github.com/abseil/abseil-cpp

これは社内でC++を使い込むうちに常用されている部分を切り出してライブラリ化して公開されたものなのですが、例えばabsl::StatusOr<T>型は「成功時はT型の値、失敗時はエラー詳細を内部に持つ」という直和型でそれを返す関数をいくつも宣言して失敗時にはエラー詳細を早期リターンする、という感じのコードを

absl::StatusOr<Foo> out = Bar(hoge);
if (!out.ok()) {
  return out;
}

こんな風に延々と書いていると、Go言語で

out, err := Bar(hoge)
if err != nil {
    return err
}

と書いている時と書き味は大差ないです(個人の感想です)。Javaを使っても言語の文化としてCOBOLを書くことができるのと同様に、abseilを高度に使い込んだC++コードは文化としてGoを書いているように感じるときが度々あります。そもそもGo言語はGoogle社内でのシステム開発上での問題を解決するために作られた言語ですので、それらに類似点があるのは自然な話でもあります。

他の言語やライブラリも好き嫌いせず学ぶうちにGoの真髄に辿り着く事もあるかと思いますので是非幅広く勉強してみてください。

2023/11/19投稿
Loading...
匿名で 熊崎 宏樹 さんにメッセージを送ろう

利用規約プライバシーポリシーに同意の上ご利用ください

Loading...