Findy Engineer Lab

エンジニアの"ちょい先"を考えるメディア

Kotlinエバンジェリストとなった僕を形作ったのは、人との出会いが9割と、1割の“運を引き寄せる努力”

結局、大切なのは人との出会いです。いわば運です。僕のこれまでのキャリアを振り返ると、それなりに努力してきたつもりではありますが、それ以上にキャリアの転換期になったのは人との出会いや運が影響しています。より正確には、運を引き寄せる努力もしてきた結果、今の自分があるといえるでしょう。本記事では将来ソフトウェアエンジニアになろうとしている人や、既にキャリアを歩み始めてはいるが年数の浅い人を対象に、僕の経験を交えながらどのように幸運を手繰り寄せたのかについて紹介します。

申し遅れました。長澤太郎(@ngsw_taro)と言います。ぜひ「たろう」と呼んでください!Kotlinエバンジェリストを自称し、日本全国での講演や、書籍の執筆などを通じてKotlinの楽しさを広めています。また、現在はSotas株式会社の外部CTOを務め、過去にはいくつかの企業で技術顧問やアドバイザーを務めていました。本業はUbie株式会社 Ubie Discoveryのソフトウェアエンジニアで「テクノロジーで人々を適切な医療に案内する」をミッションに、日々コードを書いています。

運と出会いが9割、努力が1割。そんな僕のキャリアの歩み

正直に言います。今の僕があるのは「時代の流れ」「偶発的な出来事」「人との出会い」のおかげです。そんな僕のキャリアの歩みを、中学時代までさかのぼってお話しします。

プログラミングと出会い、ひたすらにコードを書いた少年時代

2003年、僕が中学生の頃。Windows XPを搭載したパソコンを持っている家庭がちらほらあったかなという時代の話です。中学校の同じクラスの友人が「ホームページ」を自分で作ったという話を聞いて僕は驚愕しました。Webサイトを開発するには専門的なスキルが必要だと思い込んでおり、普通の中学生でも開発できるということが衝撃的だったのです。

これがきっかけとなり、僕もWebサイト開発にのめり込みました。とは言っても、HTMLをベタベタと書いただけの静的で単純なものでした。これはこれで楽しかったのですが、満足できませんでした。マウスポインタの軌跡に星が追従してくるような(懐かしい)、動的なサイトを作りたかったのです。そんな折、JavaScriptというプログラミング言語の存在を知り、入門書を借りるため図書館へと赴きました。しかし、勘違いからJavaScriptではなくJavaの入門書を借りてしまいました。今思うと、この勘違いは人生の分岐点だったのかもしれません。

JavaScriptではなくJavaを習得した僕は高校生になりました。当時の高校生なら誰しも、二つ折りのフィーチャーフォン、いわゆる「ガラケー」を持っていました。ガラケーは、Javaのランタイムが搭載されており、自分の開発したアプリを世の中の人に使ってもらえる絶好の環境でした。高校の3年間で、ガラケー用暇つぶし系ゲームを30〜40本くらい開発して、アプリストアで配布しました。

当時は、自分の手の中にあるマシンで動くプログラムを作ること自体にとにかく夢中でした。プログラミングの理論や開発手法をまったく知らなかったので、それはそれはひどいコードだったと記憶しています。

Androidという最高のおもちゃで遊びまくって、勉強会に参加しまくっていた大学時代

大学では情報工学を専攻しました。GoFデザインパターンを知る機会があり、これに感銘を受けました。それまでぼんやりとしか理解していなかったオブジェクト指向のプログラミングを実践できるようになっていきました。それ以来、可読性・拡張性・保守性の高いコードを書くことが僕のプログラマー人生のテーマとなっています。

大学3年生の頃に、日本初のAndroid搭載スマートフォン HT-03Aが発売されました。ガラケーでJavaアプリを開発していた僕にとって、Androidは最高のおもちゃでした。AndroidもJavaでアプリを開発できるし、ガラケーのような厳しい制約がなく、さらには加速度センサーやGPSなどが利用できることに感動しました。ガラケーのときと同じように、Androidのアプリを開発して、アプリストアで配布を始めました。

Androidにどっぷりハマった僕は、技術コミュニティの勉強会に参加するようになりました。勉強会に参加しているうちに、自分も発表者側になりたくなって、登壇を経験するようになりました。

だんだんと勉強会に参加することが趣味みたいになっていく中で「Twitter API勉強会」に参加したとき、その主催者である山本ユースケさんと出会いました。Twitter4JというJavaライブラリを開発・配布していて、しかもTwitter APIの書籍を執筆しているユースケさん。僕にはまぶし過ぎる憧れの存在となり、自分の中で勝手にユースケさんを師匠として追い掛けることにしました。

Kotlin、面白い言語だったので第一人者になることに決めた

2012年初頭、5年目の大学生活が終わろうとしている頃、ネットニュースでKotlinというプログラミング言語の存在を知りました。当時はコンセプトと機能の簡単な紹介がされている程度で、コンパイラや実行環境は公開されていませんでした。しかし公式サイトを読んでいくと、すぐにKotlinを好きになりました。Java仮想マシンの上で動いて、Javaの資産を利用可能であり、ややユニークなところはあるけれど簡潔で表現力のある文法。これだ!と思いました。

プログラミング言語として興味深いのはもちろんのこと、自分の積み上げてきた資産にドンピシャに刺さります。これまでJavaとAndroidをやってきた僕にとって、Kotlinは手を出さない理由がありませんでした。こうして、今ではKotlinエバンジェリストやKotlin Festの代表、技術顧問、外部CTOとしての活動をさせていただいています。

新卒から今まで2度の転職。きっかけは人

大学を卒業後、SIerへと就職しました。しかし、自分のやりたかったこととマッチしなかったため、入社1年半で退職しました。この退職を決めたときには、新卒での就職活動でしっかりと業界や企業の研究をしていればと反省しました。

SIer時代に、JetBrainsユーザグループ勉強会に登壇したときの様子

その反省もあって、転職活動時には、何社かじっくり検討しました。しかし、最終的に入社を決めたのは、元々の候補には入っていなかったエムスリーという会社です。エムスリーを知るきっかけを作ってくれたのは山本ユースケさんでした。ひょんなことからユースケさんが中の人とつないでくれて、入社へと至りました。

エムスリーでは4年半、Androidアプリと、その周辺システムの開発、運用に従事しました。いろいろなメンバーと出会い、プロジェクトに参加し、多くのことを学ばせてもらいました。退職時には第一号エンジニアフェローに就任しました。

そして現職であるUbie。Ubieの創業者の一人である久保 とは、エムスリー時代の同僚でした。彼に誘われて、事業の話を聞いたり、メンバーと会わせてもらったりしたことがきっかけとなり、2018年にUbieへ入社しました。

幸運と出会いに導かれ、今の自分がある

自分はわりと打算的なところがあって、器用に生きていると思っていました。しかし、ここまで書いてきたとおり、時代の流れや、偶発的な出来事、人との出会いのインパクトが圧倒的ですよね。

プログラミングを始めるきっかけを作ってくれた同級生。僕の憧れのエンジニアとしてかっこいい姿を見せてくれた山本ユースケさん。後にUbieを創業することになる久保とはエムスリーで出会えた。他にも、ここには書ききれないくらいの多くの出会いがあり、そのたびにチャンスをもらいました。

良い出会いは作れる!

「運」「出会い」と言っていますが、個人的には、良い出会いというものはある程度、自分の努力によって引き寄せることができるのではと思っています。それが本記事の大テーマです。

エンジニアとしてのスキルは大前提

幸運や出会いのようなチャンスと巡り合っても、発揮できるスキルがなければ、意味がありません。ソフトウェアエンジニアとして活躍するためのスキルが大前提になります。そして、知識やスキルの獲得にはインプットとアウトプットが圧倒的に重要です。今さら僕が語らずとも、この手の話題はちまたに溢れていますが、自分の経験に照らして、いくつかやり方を示したいと思います。

やはり学習効率は若い頃のほうが良かったと思いつつも、年齢を言い訳にはしたくない(自戒)

2023年、誕生日を迎えると35歳になります。プログラマー 35歳定年説の、そのリミットです。本気でそうは捉えていませんが、あながち的外れな言説でもないと、歳を重ねるごとに実感しています。

事実として、若い頃と比べて、机に向かって勉強をする時間が明確に減りました。その理由はライフステージの変化です。結婚して、子どもをもうけて、自分一人の人生ではなくなりました。結構自由にやらせてもらっていると思いますが(本当に妻には頭が上がりません)、それでも独身だった頃と比べると可処分時間は少ないです。

正直、若い頃に学んだ知識やスキルを、預金を取り崩すがごとく消費している感覚に襲われます。ポジティブに捉えるならば、それだけ若い頃に預金ができたということでもあります。この預金には利息が付き、複利で増えていきます。知識やスキルを使って経験を積み、それによって新たな知識やスキルを獲得できるということです。

時間、好奇心、目標があれば勝手に成長できる

時間がないことを言い訳にしたくない気持ちはあるのですが、現実問題として、自由に使える時間が多いうちに、たくさん勉強しておくといいと思っています。また、勉強を義務として捉えるのではなくて、娯楽として、楽しんで取り組めると強いですね。そして、目標があると、進捗が十分でない自分を急かしてくれます。

僕のエピソードを語ると、若い頃は好奇心に突き動かされて勉強していました。授業や仕事、予定がないときは読書かプログラミングか執筆を行っていました。勉強会にも積極的に参加したり、毎週日曜にはもくもく会に参加してコードを書いて他のエンジニアと交流したり、そんな生活を5〜6年ほど送っていました。僕の二十歳の頃の目標は「ソフトウェアの世界で有名になる」です。今振り返ると恥ずかしく思ってしまう目標ですが、その目標(理想状態)と現状のギャップが僕のお尻を叩いてくれたことは何度もありました。

おすすめの勉強法が2つあります。ひとつは発信すること。もうひとつは個人開発やサイドプロジェクトを走らせることです。

発信は何でも構わなくて、ブログ記事を書いたり、YouTubeに動画を投稿したり、勉強会で登壇したりといったことです。これがなぜ勉強になるのかというと、発信する手前、不確かや中途半端な内容を発信できず、裏を取るための調査や実験が必要になるからです。誤りのない完璧な発信をすべきと言っているのではなくて、発信自体に価値があり(詳細は後述)、その副産物として知識やスキルが身に付くので一石二鳥ということです。

個人開発やサイドプロジェクトは、幅広いタスクを自分事としてよりリアルに感じながら経験できるので、勉強になります。プロダクトのオーナーとして企画を立て、フィーチャーを考え体験を設計・開発して、デプロイやストアでの公開、バグ対応、アップデート、レビューへの返信など、プロダクトに関することすべてを自分で行います。OSSの開発やコントリビュートも同様に、勉強としての効果が高いように思います。

仕事との向き合い方によって、取り組み方も変わってくる

若い頃は仕事を「生活費を稼ぐために避けては通れないこと」だと思っていました。逆に言えば、生活費を稼がなくてもよいくらいのお金を持っていたら、仕事はしないだろうというスタンスです。そんなことを言っても仕方がないので、労働が不可避なのならば、せめて楽しもうと思っていました。そういう訳で、プログラマーを生業として選択したのです。道中を楽しみながら、お金を稼ぐことが目的です。

SOFT SKILLS ソフトウェア開発者の人生マニュアル』という書籍をご存知でしょうか?プログラマー、ソフトウェアエンジニアのキャリア形成にヒントを与えてくれる良書です。この本には、「ソフトウェア開発者は自分自身を事業者として捉え、雇用主(会社)のことを顧客として捉えよ」という重要な教えがあります。自分は「ソフトウェアを開発する能力」をサービスとして提供する事業者であり、それを会社が顧客として買っているということです。そう考えると、サービスの質を上げることと、上手くマーケティングをすることが、収益を上げることにつながるといえます。すなわち、エンジニアリングに関する勉強と、自分を意識的に売り込むことで、年収アップを狙えるという図式です。

若い頃はこのように「成長!年収アップ!」と考えていましたが、今は少し違います。もちろん生活のためにお金は必要ですが、なぜ自分は仕事をしているのか、その理由を考えてみるとお金の占める割合は小さくなりました。今仕事をしている最大の理由は2つあって、経済活動を通じて世界をより良い場所にしている実感。そして仲間と同じ目標に向かって突っ走る楽しさです。仕事をそのように捉えるようになると、ソフトウェアエンジニアとしての領域に閉じず、より広い視野で組織のミッション達成のために取り組むように思考や行動が変化しました。成長やお金はその結果としてついてきたらいいなと思っています。

自分のマーケティングとブランディングが出会いをもたらす

腕に覚えがあっても、認知されなければどうということはない

情熱プログラマー ソフトウェア開発者の幸せな生き方』という本では、群れの中で一番目立つ牛は、大きな牛でもなく美しい牛でもなくて「紫の牛」であると言っています。もうひとつ書籍から紹介しますが、前述した『SOFT SKILLS』でも、自分自身のマーケティングを行うことが大切だと言っています。高いスキルを持っていても、自分の存在を知られていなければ、バリューを発揮する場が提供されないということです。

マーケティングとブランディングを意識した発信で認知を獲得する

『SOFT SKILLS』によると、ブランドを構成する要素は4つあるそうです。それはメッセージ、ビジュアル、反復的な接触、一貫性です。メッセージは、まさに「紫の牛」になるためのもので、僕の場合はKotlinがそれです。そしてビジュアルは、ロゴを作成するなどもあり得ますが、僕はTwitterなどのSNSでは自分の顔写真をプロフィール画像に設定しています。

個人的に重要と考えるのは反復と一貫性です。「正解は越後製菓」になったらブランディングとしては大成功でしょう。ここを狙いに行きたいものです。実際、僕はSNSやブログ、勉強会でかなりの回数を、Kotlinをテーマとした内容で発信を重ねました。本当にあきれるくらい。

そうすることで「Kotlinといえば長澤太郎」と、意識・無意識を問わず人々の頭の中に想起されるようになります。人間の脳は、処理しやすいものを無意識に好むようです。度重なる接触により脳が処理に慣れて、それが好感を生むということも、顔出しによるメッセージ発信の反復の狙いです。

現代において発信の手段は多岐に渡ります。SNS、ブログ、YouTube、ポッドキャスト、勉強会などを活用するとよいでしょう。ただやみくもに回数を重ねればよいというわけではありません。見てくれる人に価値をもたらす内容でなければなりません。

怖いコメントやクソリプを恐れてはならない。むしろ歓迎するまである

何かを発信し、それが一定の注目を集めると、ちょっと怖いコメントや寒いクソリプが付くこともありますが、気にしてはいけません。あなたは誰かが真面目に発信した内容に対して建設的でないネガティブなコメントを投稿しますか?しませんよね。つまり、そういうことです

むしろ、荒れたときや、本質的でないコメントが付いたときは、その発信が成功したサインと見なすとよいでしょう。楽観的に捉えてくださいと言っても、すぐにはそうなれないので、これは慣れあるのみですね。

あえて疑問点やツッコミの余地を作るのも良いプラクティスです。勉強会であれば質疑応答の時間に議論が活発になるかもしれませんし、ブログであればTwitterで引用してくれる人が増えるかもしれません。

本記事は、引用やコメントをしてくれる人が多いのではないかと予想します(ぜひ引用してください!)。理由は2つあります。まずは、専門知識を必要としない個人の経験に基づくエッセイであるためです。気づき・学びだけでなく、共感を呼ぶこともありますし、あるいは正解がない分、ツッコミもしやすいです。

そして、記事の書き方の工夫です。文章量はそれなりにありますが、見出しだけ読めば雰囲気をつかめるようになっています。そのまま引用できるように、簡潔に結論を述べる見出しスタイルにしています。このように太字にすることも、長い文章を書く上で、読者に拾い読みを促して、離脱を防ぐ工夫といえます。

ハッタリで注目を集めつつ、自分を追い込む

ハッタリ、つまり大袈裟なことを発言して注目を集めるという裏技があります。ここで絶対に忘れてはならないことは、嘘つきになってはダメということです!結果整合性が保たれればOKです。

つまり、ここで言うハッタリは、注目を集める手段であるだけではなく、有言実行を自分に課して追い込むということです。僕がKotlinと出会ったのは2012年初頭とは既に述べたとおりですが、Kotlinを知った数日後には「国内初Kotlin入門書は俺が出す」とTwitterに投稿しています。

当然のこととして、かなりむちゃな宣言です。しかし、実際に日本で初めてのKotlin入門書を執筆できました。自分を追い込んだということもありますし、この投稿が誰かの目に止まって巡り巡って僕に執筆のチャンスを与えてくれたということも考えられます。とにかく「海賊王におれはなる!!!!」と叫ぶことに意味があるということです。ルフィでさえも最初は笑われていましたが、前述のとおり気にしてはいけません。

他にも、Kotlinエバンジェリストを自称するのも同様の効果があると思っています。また、僕が立ち上げたKotlinコミュニティの名前は「日本Kotlinユーザーグループ」です。当時、コミュニティ参加者の人数が1桁、2桁で東京在住者に偏っていたにも関わらず「日本」を冠する名前にしたのには理由があります。それは、大きいコミュニティという認知を得たかったからと、実際に「全国規模のコミュニティにするぞ!」という気概からです。ドラッグストアのマツモトキヨシは最初の店舗を「21号店」として、既に広く展開しているイメージを持ってもらったという話をヒントにしています。

過大評価されることについてはおいしいと思っている

期待値コントロール。一般には、より小さい方向へ導くのが会社員の処世術だと思います。しかし僕は、マーケティングやブランディング、ハッタリなどで自分を売り込み、その真逆のことをしてきました。

人生は、運よりも実力よりも「勘違いさせる力」で決まっている』も、ものすごくいい本なのでおすすめなのですが、その中で言われている「錯覚資産」はキャリア形成において重要です。突出した能力があれば、他の能力も優秀だと見なされ(過大評価され)、より重要な仕事やチャレンジングな仕事にアサインされ、さらに成長し、という好循環を得られるというものです。

人を動かす』という書籍では、自分が重要だと思われていると認識することが、人を行動させると言っています。僕自身、自分にとって新しい領域の仕事やチャレンジングな役割に抜擢されるとやる気に燃えるので、まさに動かされているなとは感じますが、実際にパフォーマンスが出るので、この好循環に乗れているような気がします。

マーケティング、ブランディング、ハッタリ、錯覚資産とお伝えしてきましたが、小手先のテクニックでどうにかなるものではなくて、前述したとおり、ソフトウェアエンジニアとしての知識、スキル、経験が土台として必要であることに留意してください。

まとめ

自分のキャリアを振り返ったとき、楽しくやってこれた要因は運でしかなかったと思います。「時代の流れ」「偶発的な出来事」「人との出会い」によって、今の僕はあります。幸運は待っているだけではやってきません。自らの行動で引き寄せるものです。本記事では僕の実体験として、大きく2つの行動を紹介しました。

2018年の「Developers Summit」で山本ユースケさんと記念撮影。

ソフトウェアエンジニアとしての大前提である技術的な知識やスキル。これを早期に蓄積したほうが、複利が効くという観点で有利です。目標を設定し、時間を捻出し、好奇心の赴くままに勉強をするというのが僕のスタイルでした。また、仕事やキャリアとの向き合い方、方向性次第で、勉強や日々の仕事の取り組み方が変わってきます。一度、自分はなぜ仕事をしているのか、何を楽しいと感じるのかを整理してみるとよいかもしれません。

そして、自分を売り込むこと。マーケティングとブランディングを行い、多くの人に自分を知ってもらうことです。それが、自分にチャンスを運んでくれると考えています。さまざまな場で、反復性と一貫性をもって自分のメッセージを発信します。認知を獲得する過程で、過大評価されたりバッシングを受けたりすることもあるかもしれませんが、それはマーケティング成功の証左です。

技術力と認知度、この両輪によって僕は幸運を引き寄せられたと思っています。しかし、プログラミングを楽しむこと、人との関わりに喜びを感じること、これらが根底にあってこそだとも思っています。いずれにせよ、自身のキャリアの方向性、理想の姿、そういったものによって選択肢は変わってくるはずです。重要なのは、本当に得たいものを本気で獲りにいくために、具体的な行動を起こせているかということです。あなたのキャリア形成や仕事の取り組み方について、本記事が参考になれば幸いです。

編集:中薗 昴

【アーカイブ動画】Findy Engineer Lab アフタートークイベント

KotlinとPythonのスペシャリストが語る、一つの言語を軸としたキャリア戦略とその後

KotlinとPythonのスペシャリストが語る、一つの言語を軸としたキャリア戦略とその後 -Findy Engineer Lab After Talk Vol.4-
・開催日時:2023/7/20(木)12:00~13:00
・アーカイブ視聴方法:こちらから
※視聴にはFindyへのログインが必要です。ご登録いただくと、Findy上でその他の人気イベントのアーカイブ視聴も可能となります。