1
/
5

魚の釣り方を学ぶ ~メンキャリでGoを学ぶということ~

 この間「メンキャリ」と検索したら、「もしかして:メ●カリ」と言われました。

 こんにちは、メンキャリ(メンバーズキャリア)のエンジニア花本です。今回は(SEOの)ライバル企業もプロダクトに採用していることで有名なGo言語(以下Go)の社内勉強会について書きたいと思います。ちなみにこの記事内でコードは書きません。

背景

 弊社ではGoの技術顧問としてMF KESSAI株式会社の篠原 祐貴さん(@shinofara)に参画いただいています。しかし弊社の事業は客先常駐型のクリエイター派遣なので、自社プロダクトがなく、直接プロダクトについての開発アドバイスはいただけません。

 また現在20名ほどのエンジニアが在籍していますが、基本的に各人バラバラの企業に常駐しているため、同じ日時に集まることが難しくワークショップでチーム開発をするというのもなかななかできない状況です。

 そのため篠原さんには毎月1回程度のペースで少数でのハンズオン形式でGoを教えていただいています。参加するエンジニアは私を含め3名で、みんな数年のエンジニア経験を持っています(Web系は初めてというメンバーもいます)。

GoのプロにGoを学ぶ

 3月からGo勉強会をしていますが、本日時点で2回行っています。目指すべき理想のゴールとしては、Goで仕事ができるようになることですが、まずはGoを使って自分の作りたいAPIやアプリを開発することがこの勉強会の目標になりました。

 初回はテスト駆動開発でFizzBuzzとREST APIの実装をしました。制限時間内に篠原さんが用意してくれたテストコードがパスするようにプログラミングしていくという内容です。FizzBuzzを土台としたfunctionや、シンプルなJSON APIを通して、Goの基礎的な書き方やテストの文化を体験しました。私は普段仕事ではRubyを書いていますが、Goは書き方が結構違うので正直難しかったです。私以外の2名はJavaやC#に慣れていますが、悩みながらもパスしていていました。ぐぬぬ。

 また篠原さんからのアドバイスとして、まずA Tour of Goをしてみるのが良いとのことでした。

 2回目は難易度が上がり、DB、コントローラー、ルーティングなど基本的な構成での決済アプリを用意していただき、テストがパスするように実装するという内容でした。環境はDockerを使いました。個人的にはGo開発のディレクトリ構成を詳しく解説していただいたのが、今後アプリやAPIを開発する上で役立つので嬉しかったです。

なぜGoを選ぶのか

 なぜ私はGoを選んだのか。理由は2つあります。

 1つ目は、RubyやPHPなどのインタプリタ言語とは違うタイプの言語で開発をしてみたかったからです。インタプリタ言語は逐次実行なのでデバッグもしやすく初心者には便利です。ですが高速化が求められる場合などは違うタイプの言語を選択しなければならないことも今後出てくるでしょう。そこで高速なコンパイラ言語であり、近年話題のGoでの開発を覚えようと思いました。

 2つ目は、コミュニティの盛り上がりです。Goにはいくつかコミュニティがあり、私も勉強会に参加したことがありますが、熱量があり、Gopher(Goを使うエンジニアの俗称)であることに誇りを持っている方が多くいらっしゃったので、そこに加わることができれば面白そうだと思ったからです。

 社内勉強会に参加する他の2人のエンジニアにも理由を聞いてみました。

E氏
「コードの書き方がシンプルなものしか利用できないので、過去のコードを読むときに暗黙知を推察する余地が少ないと思うから。」
F氏
「現実的な理由としては、モダンな言語であるため、スキルとして身につけておけば、新しい技術を取り入れることに抵抗のない企業に近づきやすいと考えたから。
他に単純な興味として、Goの独特の文化・文法(変数名は短くする、例外機構がないなど)が合理的で面白そうだったというのもありますね。」

 言語の効率・合理性、新しいことへの知的好奇心あたりがやはりGoを選ぶ理由になるようです。

Goエンジニアになる、あるいはその先

 最初にも述べましたが、弊社の事業は客先常駐型のクリエイター派遣です。自社プロダクトがなく、常駐先によって求められる技術はバラバラなので新しい言語を学んでも必ずしも仕事で使えるとは限りません。

 しかしそこにはチャンスもあります。現時点でGoを常駐先で使っているエンジニアは弊社にはまだいません。ならば仕事で開発できるくらいGoを使えるようになれば、Goエンジニアを求めている常駐先から声がかかる可能性が高いということです。好きな言語を仕事にするチャンスが生まれます。

 新しい言語を学ぶというのはいつも多くの選択肢の1つにすぎません。しかし私は有限な人生の時間を使ってこの技術を学ぶと決めたからには、貪欲に楽しく学習していってエンジニアとしての世界を広げていきたいです。視座が高くなれば見える景色もまた変わってくるでしょう。

 中国の老子は「魚を与えるのではなく、魚の釣り方を教えよ」と言いました。そうすれば自立して生きていけると。エンジニアの場合、「魚」とはプロダクトやツールそのもののことです。「釣り方」とはプロダクトの作り方のことです。Goで作られたプロダクトやツールは便利ですし、それをそのまま使っても生産的な仕事はできます。しかし、Goでの作り方を覚えることができれば、他の誰かが作ってくれるのを待たずに、自分で効率化を進め、より生産的な仕事をすることができます。そうして覚えた開発技術は、さらに他の言語や技術を使うときにも役立つかもしれません。私はそうやって技術をいろいろなところから積み上げていって、エンジニアとして活躍していきたいと考えています。

 Goに限らず新しい言語を学ぶのは1つの点に過ぎませんが、それが人生のどこかで新しい発見とつながっていくことを信じています。

参考

メンバーズキャリアではGoもGo以外も、技術大好きなエンジニアを募集しています。

サーバーサイドエンジニア
技術向上を支援!モダンな環境で開発!PHP+Laravel,Goエンジニア
【デジタルビジネス運用支援事業】 当社は「デジタルクリエイター」を正社員で採用し、日々スキル向上ができる環境の中で、クライアント伴走支援というビジネスモデルをとっています。 UXデザイナー、データアナリスト、Webディレクター、Webエンジニアなど、多様なデジタルクリエイターが在籍しています。東証プライムに上場しているため設備や制度の整った部分と、デジタルクリエイターが主役であり挑戦を続けるベンチャー気質、どちらも感じられる会社です。
株式会社メンバーズ
サーバーサイドエンジニア
技術向上を支援!学び合うRubyエンジニアWanted
【デジタルビジネス運用支援事業】 当社は「デジタルクリエイター」を正社員で採用し、日々スキル向上ができる環境の中で、クライアント伴走支援というビジネスモデルをとっています。 UXデザイナー、データアナリスト、Webディレクター、Webエンジニアなど、多様なデジタルクリエイターが在籍しています。東証プライムに上場しているため設備や制度の整った部分と、デジタルクリエイターが主役であり挑戦を続けるベンチャー気質、どちらも感じられる会社です。
株式会社メンバーズ
サーバーサイドエンジニア
技術向上を支援!学び合うJava,ScalaエンジニアWanted
【デジタルビジネス運用支援事業】 当社は「デジタルクリエイター」を正社員で採用し、日々スキル向上ができる環境の中で、クライアント伴走支援というビジネスモデルをとっています。 UXデザイナー、データアナリスト、Webディレクター、Webエンジニアなど、多様なデジタルクリエイターが在籍しています。東証プライムに上場しているため設備や制度の整った部分と、デジタルクリエイターが主役であり挑戦を続けるベンチャー気質、どちらも感じられる会社です。
株式会社メンバーズ
データエンジニア
技術顧問の指導を受けながら学び合うデータエンジニアWanted!
【デジタルビジネス運用支援事業】 当社は「デジタルクリエイター」を正社員で採用し、日々スキル向上ができる環境の中で、クライアント伴走支援というビジネスモデルをとっています。 UXデザイナー、データアナリスト、Webディレクター、Webエンジニアなど、多様なデジタルクリエイターが在籍しています。東証プライムに上場しているため設備や制度の整った部分と、デジタルクリエイターが主役であり挑戦を続けるベンチャー気質、どちらも感じられる会社です。
株式会社メンバーズ
アプリエンジニア
常駐してサービスをグロース!iOS/Androidアプリエンジニア
【デジタルビジネス運用支援事業】 当社は「デジタルクリエイター」を正社員で採用し、日々スキル向上ができる環境の中で、クライアント伴走支援というビジネスモデルをとっています。 UXデザイナー、データアナリスト、Webディレクター、Webエンジニアなど、多様なデジタルクリエイターが在籍しています。東証プライムに上場しているため設備や制度の整った部分と、デジタルクリエイターが主役であり挑戦を続けるベンチャー気質、どちらも感じられる会社です。
株式会社メンバーズ
フロントエンドエンジニア
最新フレームワークを駆使して開発したいフロントエンドエンジニア募集!
【デジタルビジネス運用支援事業】 当社は「デジタルクリエイター」を正社員で採用し、日々スキル向上ができる環境の中で、クライアント伴走支援というビジネスモデルをとっています。 UXデザイナー、データアナリスト、Webディレクター、Webエンジニアなど、多様なデジタルクリエイターが在籍しています。東証プライムに上場しているため設備や制度の整った部分と、デジタルクリエイターが主役であり挑戦を続けるベンチャー気質、どちらも感じられる会社です。
株式会社メンバーズ
20新卒エンジニア・既卒も歓迎
20新卒:エンジニア/プログラミングが好きな方、技術力向上を支えます!
【デジタルビジネス運用支援事業】 当社は「デジタルクリエイター」を正社員で採用し、日々スキル向上ができる環境の中で、クライアント伴走支援というビジネスモデルをとっています。 UXデザイナー、データアナリスト、Webディレクター、Webエンジニアなど、多様なデジタルクリエイターが在籍しています。東証プライムに上場しているため設備や制度の整った部分と、デジタルクリエイターが主役であり挑戦を続けるベンチャー気質、どちらも感じられる会社です。
株式会社メンバーズ
インサイドセールス
Webエンジニア常駐事業を加速させる顧客開拓・セールス募集!
【デジタルビジネス運用支援事業】 当社は「デジタルクリエイター」を正社員で採用し、日々スキル向上ができる環境の中で、クライアント伴走支援というビジネスモデルをとっています。 UXデザイナー、データアナリスト、Webディレクター、Webエンジニアなど、多様なデジタルクリエイターが在籍しています。東証プライムに上場しているため設備や制度の整った部分と、デジタルクリエイターが主役であり挑戦を続けるベンチャー気質、どちらも感じられる会社です。
株式会社メンバーズ
株式会社メンバーズ's job postings
8 Likes
8 Likes

Weekly ranking

Show other rankings
Invitation from 株式会社メンバーズ
If this story triggered your interest, have a chat with the team?