日本でも有数の優秀なエンジニアが働く「フリマアプリの会社」で働きながら、CodeCampの人気講師として活躍する桑古先生に講師としてのやりがいや、プログラミング学習について語っていただきました。
週末や平日の夜にプログラミングを教えながら、「一緒に、世界をよくしていけるエンジニアを増やしたい」という桑古先生。
プログラミングだけではなくキャリアの相談(キャリアTalk)を受ける機会も多く、受講生から厚い信頼を寄せられている先生が考えていることを伺いました。
【受講生からの声】
・ご自身の経験を交えながら丁寧に質問に答えていただいたおかげで
キャリアの方向性を決める参考になりました!将来について考えていきたいと思います。
・カリキュラム外のことも的確に答えてくださり、大変ありがたかったです。
あの後、無事サーバにアップすることができました。 ありがとうございました。
※CodeCampでは毎日、受講生のみなさんから
レッスンの満足度や感想をフィードバックしていただいています。
プログラミングを趣味から仕事に
ーーまず最初に、桑古先生とプログラミングとの出会いや、これまでのご経歴について教えてください。
プログラミングに始めて触れたのは高校生の頃です。当時からパソコンが好きで、よくmixiや2chに入り浸っていました。
通っている高校が理数系の教育に力を入れていたので、高校の授業でもプログラミングの時間があったり、所属していたテニス部のウェブサイトのHTMLを書いたりしていました。当時、プログラミングは遊び程度に触っていたので今みたいに仕事にしているとは想像できなかったですね。
大学に進学してからは物理学を専攻していたのですが、そこで何か面白いバイトをやろうと思ってプログラミングのアルバイトをはじめたのが、僕のエンジニアキャリアの始まりです。
それまでは、地元にあるカフェでアルバイトをしていたのですが、時間を切り売りしてお金に変えている感覚に違和感があって。いま思い返すと当時は「面白い経験」ができてお金が稼げれば何でも良かったんですよね。
プログラミング以外のバイト先としては「歌舞伎町での夜のお仕事」とか「塾講師」なんかも探してたのですが、その時にプログラミングを選択してよかったと今は思ってます。笑
エンジニアとしての第一歩
アルバイト先は、セキュリティ関連のソフトを開発している会社で、C言語を中心に触っていました。趣味でやるのとは違って、最初はめちゃくちゃ苦戦しましたね。苦笑
そこでは、入社してから1ヶ月以内に決められた課題をクリアしないと契約が続けられないことになっていたので、ずっと夜遅くまで粘ってプログラミングに取り組んでました。
最終的に、期限はちょっとオーバーしちゃったんですけど、なんとか1ヶ月半で課題をクリアして働かせてもらえるようになりました。その職場では上司にも恵まれていましたね。たいしてプログラムが書けるわけでもない自分に付き添って、いろいろ教えてくれたりしたので感謝しています。
C言語から本格的にプログラミングをはじめたことで、新しい言語の習得に苦労したことはほとんどないです。PHPやRubyはC言語に比べると理解しやすいので、アルバイト時代にC言語でめちゃくちゃ鍛えてもらったことが、その後の成長にも効いていると思います。
大胆な挑戦を繰り返して、自分を磨く
ーー今はエンジニアとして、グローバルに展開しているフリマアプリの会社で働いていらっしゃいますが、ここに至るまでにどんな経験を積んでてきたんでしょうか?
大学卒業後はプログラミングを仕事にする、エンジニアとして働くと決めていました。
就活は順調に進んで早いタイミングでベンチャー企業から内定をもらうことができたので、入社するまでの1年間はスタートアップでインターンをしながら入社先で使う予定だったPHPをみっちり詰め込んでましたね。
新卒で入社した会社はサービスをたくさん立ち上げる会社だったので、新しいサービスを立ち上げて、潰したり譲渡されたり出向したりという感じでかなりハードに働いていました。
がむしゃらにたくさん挑戦して、たくさん失敗を経験した時期だったと思います。その後、1社を挟んで去年の12月から今の会社に転職しました。
人の役に立てる仕事を探していた
ーーどんなきっかけでCodeCampで講師として働くことにしたのですか?
今の会社は働き方も柔軟で副業も自由なので、自分のスキルを活かしつつ他人へ貢献できる仕事を副業にしたいと考えていて、CodeCampでプログラミングの講師をやることにしました。
他にも選択肢はいくつかあったのですが、「自分の技術を磨く」「新しい挑戦をする」ことは会社の環境で十分に満たせていますし、個人で案件を受けて開発にコミットするというのも本業に集中しながらだと両立が難しいと思っていました。
最初は、自分が空いた時間で人の役に立つことができて、そこで稼いだお金でちょっと美味しいランチが食べられるなら嬉しいなっていう軽い気持ちでしたね。笑
CodeCampでの働き方は、自分の空き時間にレッスンを入れることができるので、時間と場所の制約がほとんどなく柔軟に働くことができています。レッスンは、仕事に出社する前の平日の朝と仕事後の時間、土日に入れることが多いです。
講師として働く環境も良く整っていると思うので、そこが気に入ってます。講師間でコミュニケーションをとるためのSlackコミュニティも活発で雰囲気もいいですし、受講している方もやる気のある方が多くて教えがいがありますね。
少し視点を広げてみると、ITエンジニアはまだまだ人材不足でしっかりとした指導が受けられる環境も多くはないので。自分が講師として教えることでいいエンジニアが育ち羽ばたいていくことに貢献できたらいいなと思っています。
挑戦、成長を間近で感じる
ーーCodeCampの講師としてのやりがいを教えてください。
実際に教えはじめてみると、受講生の方がどんどん成長していく姿を目の当たりにできてすごく嬉しいですよ。一緒にコードを見ながらうまく動かない箇所を解決していって「なるほど!」、「わかった!」というリアクションを直接もらえるのがいいですね。
レッスン後も受講生からの評価アンケートで「わかりやすかった!」「ありがとうございました!」と感謝の気持ちを頂けたりすることがモチベーションになっています。
あとCodeCampの受講生はIT業界以外の方も多いので、IT企業でエンジニアとして働いている人にとっては思いもよらないポイントで躓いているケースがあったりして、IT業界の常識は日本全体の常識ではないと改めて実感することがあります。
自社のアプリを作る際にも、自分たちの感覚を押し付けるのではなく、アプリを利用してくださる方々の気持ちになって作らないといけないなと改めて感じる機会になりました。
好奇心を持って試行錯誤してほしい
ーーレッスンをしていて、成長が早いと感じる受講生の特徴はありますか?
教えていて成長が早そう、伸びそうだなと思う人の傾向としては「何がわからないかをわかっている」というところです。
自分が何を理解していないのか把握できていると「DBが〜」とか「配列が〜」とか問題がどこにあるのかを掴めるようになるので、解決するべき課題をすぐに特定することができる。
問題を特定する能力が高いと解決策へたどり着くスピードも早くなりますし、自分が書いたコードのどこまでは正しくて、どこからが間違っていそうなのか自分でデバックできるようになります。
そういう能力を磨くために大切なのは好奇心を持って、たくさんコードを書いてみることですね。
お手本通りに書くだけではなく、「ここをいじったらどうなるんだろう?」とか「これを実現するにはどうすれば?」と試行錯誤してみることで、より構造的にプログラムを理解することができるようになると思います。
優秀なエンジニアの特徴
ーー桑古先生が考える、優秀なエンジニアの条件とはなんでしょうか?
いま一緒に働いているエンジニアで優秀だなと思う人は「謙虚な人」が多いです。
人の話を聞く姿勢が丁寧というか、先入観や偏見を持たずに話のポイントをおさえてしっかりと本質を理解してくれるようなコミュニケーションを取る方が多いですね。
他にも優秀なエンジニアの条件はありそうな気がしているのですが、いま僕が言葉にできるのはこのあたりでしょうか。
意外に思われるかもしれませんが、優秀なエンジニアでも技術が大好きで毎日没頭しているという人ばかりではないです。他に趣味を持って休日はそれに時間を使っている人も多くいます。
プロフェッショナルに囲まれて働く
今働いている会社は日本でも有数の優秀なエンジニアが多く働いている会社です。有名なライブラリのコントリビューターがいたり、技術書を執筆している人がいたりしますし、国籍も多様です。
以前に僕のメンターをしてくれていた人も香港出身で、仕事での込み入った会話やプルリクエストを送る時は英語でやりとりすることも多いです。
全員外国籍のエンジニアで構成されている開発チームが同じフロアにいて英語でディスカッションしながらスクラム開発をしていたりして、入社したばかりの時は驚きました。
挑戦し続けることで、自信が生まれる
ーー桑古先生のような環境でエンジニアとして働くことを目指すには、どんなことが必要でしょうか?
もし、このような環境で働くことを目指すのであれば、まず英語への苦手意識はできるだけなくした方がいいと思います。仕事上のコミュニケーションで英語を使うことがありますし、新しい技術に関する情報も英語で書かれていることが多いので、それを読むことに抵抗がない方がいいです。
あとはエンジニアとして、しっかり実積をつくることが必要です。僕の場合は大学生の頃からプログラミングを始めて、かなりハードな環境で量をこなす経験をしてきました。
それが本当に最適なやり方かどうかは議論があると思いますが、実積をつくることでそれが自信と武器になって、より責任がある仕事を任せてもらえるようになります。
エンジニアとしてキャリアアップを意識するのであれば数値や形にして示すことができる仕事を、意識的に取りに行くことが大切なのかなと。
自分が磨かれる環境に身をおいて、「秒間◯◯万のアクセスをさばいてました」とか「このサービスを立ち上げて、ここまで成長させました」と言える、分かりやすい実積をつくることが大切だと思います。
大きな仕事を成し遂げる
ーー最後に、桑古先生が目指していることについてや、これからエンジニアを目指す方へのメッセージをお願いします。
僕自身の目標としては「次の日に無くなったら困るサービスをつくりたい」と思っています。これは今の会社に入ったことで叶えられている部分もありますが、もっともっと価値のある仕事をしていきたいです。
あとは、僕自身のように仕事としてプログラミングを始めたエンジニアでも活躍できるんだというロールモデルになれたらいいなと思っています。
イメージとしては、情熱大陸にとりあげられるくらい活躍できたらいいですね。笑
テレビに出ることが目的というよりは、夢や目標として目指されるような仕事ができるようになりたいです。
一緒に、世界を良くするエンジニアを増やしたい
正直に言って、エンジニアは楽な仕事ではないと思います。技術は日々進化していて、常に自分自身を成長させることが求められますし、僕自身もシンドイと思うことがたくさんあります。
ただ、大変な仕事である分やりがいもありますし、影響力の大きい仕事だと思っています。エンジニア1人が書いたコードで、何万何億という世界中の人々に力を与えることができる仕事なので。
特に日本はこれから少子高齢化によって、プログラムやAIの力を活かして社会を運営していかなければいけなくなります。そういった時代の中で、仲間として一緒に頑張ってくれるエンジニアが一人でも増えてくれるといいなと思っています。
そういう風に、世界をより良くしていきたいと思っている人には、ぜひエンジニアという仕事にチャレンジしてもらいたいですね。
ーーありがとうございました!
【お知らせ】CodeCampでは講師を募集しています
プログラミング/Webデザインの講師として働きたい方はこちらからご応募ください!
https://codecamp.jp/lecture_offer