"Hello, world!"のもう一歩先へ! 興味駆動開発で学び、ブログに残し続けたその先には、新しい世界があった

すぎゃーん@sugyanと申します。Web系の企業でソフトウェアエンジニアとして働き、主にサーバサイドのアプリケーション開発をやっています。

長らく関東で暮らしていましたが、2018年に京都に転勤し、1年半ほど過ごしました。そこで今の妻と出会い、結婚や転職などを機に2019年初夏に妻と2人で東京に移り住み、とあるベンチャー企業で働きはじめました。

これまで東京を中心に勉強会などに参加してきましたが、ここ数年は自分自身もエンジニアコミュニティをめぐる状況も大きく変わっています。そんななかでも変わらずに、興味を持った技術があれば淡々と手を動かし、アウトプットを続けてきたことについて書いてみようと思います。

2020年は予想外の展開で「東京に戻らない」ことを選択

2020年2月に子が誕生しました。妻は出産準備のため2019年末から実家のある福井県に帰省しており、私もできるだけ妻の側にいたいという希望から会社に交渉し、出産までの期間は「1週間は福井の義実家でリモートワーク、次の1週間は単身東京で出社」といった形の“半リモートワーク体制”で仕事をして過ごしました。

2020年は、年明けごろから新型コロナウイルスの脅威が国内でも広がってきました。出産予定日の近づいた2月からは東京の家にはほとんど戻らず、福井の義実家で過ごす日々になりました。妻の両親の手厚いサポートもあったおかげで、出産後もどうにか日中はリモート勤務で仕事を続けることができました。

その後も首都圏を中心に感染は拡大し、結局私以外の社員もフルリモート体制へと移行していきました。結果的に私は、出産準備によりフルリモートを先取りしていたことになります。

予定では、出産後数カ月して落ち着いてきたら妻と子と3人で東京に戻り、新生活を始めるつもりでした。が、新型コロナウイルスの感染拡大は止まりません。東京に戻るめどが立たないまま夏になってしまいました。第2波が拡大しつつある中で、ついに「東京には戻らない」という選択をしました。

どうせこのままフルリモートが続きそうなので、首都圏から離れた別の場所に移住し、そこからリモートワークで働く形にさせてくださいと会社に相談し、認めてもらいました。そして妻の実家からほどよく近く、妻も自分も住んだことがあり気に入っている街、京都に再び移住。

1年前からは想像もつかない予定外の展開になりましたが、どうにか在宅で仕事をしながら、妻と協力して育児も頑張りつつ、穏やかに過ごすことができています。

京都移住 (2年半ぶり2回目) - すぎゃーん日記

ブログを通じて「自分で作った」ものが名刺代わりになった

私がエンジニアとして自分の道を定めキャリアをスタートしたのは、25歳と少し遅めでした。地元の国立大学で大学院までは進んだものの、特にやりたいことも何もなく、考えなしに「とりあえず」で大手外資系SI企業に就職しました。

ところが新卒研修などでプログラミングに詳しい同期の仲間にいろいろ教えてもらっているうちにすっかり楽しくなり、「プログラマーとして生きていきたい!」と思うようになりました。

社内でもそのような道はなくはなかったと思いますが、いっそのことそれしかできない場所に移った方が早い、と思い1年半で新卒入社した会社を辞めました。もっと早くからそういう道を知って選んでいれば、とも思いますが、私にはそのタイミングだったのです。

キャリアの始まりでブログを始め、勉強会に出会った

ほぼ未経験ながらどうにか小さなベンチャー企業に拾ってもらい、プログラマーとして改めてスタートを切ることができました。しかし、プログラマーにはなったものの、どうキャリアを築いていけばよいか何も分かりません。

まずは、インターネットでよく目にする「スゴい人たち」をフォローしてみました。自分とそう変わらない世代で活躍して輝いている多くのエンジニアがいて、彼らは「はてなダイアリー」などで技術情報を発信したりしていました。自分もそれに憧れ、id:sugyanというIDを作ってブログを始めてみました

そして「勉強会」というイベントの存在を知りました。所属する会社や組織に関係なく、その技術やテーマに興味を持つ人々が集い、自分の知見を発表したり議論したり情報交換したりする。そんな世界があること自体を知らなかった自分にとっては、衝撃的でした。

どのコミュニティも、私のような初心者でも歓迎してくれる雰囲気があり、少し勇気を出して踏みこんでいけば入っていける世界でした。せっかくそういう場があるし、行きやすい場所にいるのだから、とチャンスを生かすべく、興味を持ったものには積極的に参加してみることにしました。

勉強した軌跡をメモとしてブログに残す

勉強会で学んだり自分で勉強して知ったことなどを、ひたすら自分のブログに技術メモとして残していくようにしました。誰かが既に知っているようなことでも関係なく、「自分のためのメモ」としてです。自分が勉強してきた軌跡を残すためのメモとして、忘れやすい自分が数年後に検索して自分で読むためのメモとして、書き続けました。

勉強会やカンファレンスに参加するようになり、少しずつエンジニアの知り合いもできてきました。仕事も趣味も世代も全然違っていたりするのに、技術への興味という点だけでつながっていく縁があるなんて、不思議なものですね。

そうしてできた知り合いが自分のブログを読んでくれるようになり、勉強して分からなかったことも記事に書いておけば教えてくれたり、書いたコードをもっと良くするアドバイスをくれたり、といったブログを通しての交流も増えてきました。

そうしたやりとりの中で新しく知ったことを調べて、またブログにメモを書き残し、また読んでもらえるようになり、と少しずつ多くの人たちに知ってもらえるようになりました。

いつしか自分のブログが名刺代わりになっていました。勉強会で初対面の方に挨拶して、名乗ったときに「あ、すぎゃーんさんね、ブログ読んだことあります」と言われたときはとてもうれしかったのを覚えています。

ブログを起点に知識と交流のサイクルが回りはじめた

少しずつ知識も増え、自分で考え、コードを書いて作れるものが増えてきました。くだらない、稚拙なものでも「自分が作った」のであれば、それを胸を張って言うことができます。

勉強会やカンファレンスで発表する側になるチャンスがあれば、どんどん登壇して「こんなものを作ってみました」と話すようにしました。発表者になることで、その後の懇親会などで話しかけてもらえることも多くなり、さらに知り合いも増えて、インプットも増え、また次に作りたいものが増えていきました。

気がつくと同じ業界の多くの人たちとのつながりができていて、その後の何度かの転職のときにもまずは知り合いのいる会社で話を聞かせていただいて、など動きやすくなりました。一番最初の転職のときは転職サイトに登録してエージェントに紹介していただいて、という探し方でしたが、2回目以降は利用する必要がありませんでした。

淡々と手を動かし続け、開発を楽しむ

このように勉強会などのコミュニティから多くを学んできましたが、「まずは自分が興味を持った技術をとにかく少しずつでも触ってみる」というスタンスだったこともあり、特定の技術に固執したり、特定のコミュニティ活動に深く関わったりすることはありませんでした。

ただただ自分が「面白い!」と思ったものを自分で触る、そして何かを作る、ということを淡々と続けてきました。それが自分にとっては、勉強を続けるために何よりのモチベーションになっていたのです。

これまでに個人で興味を持って触ってみた技術

2009年ごろは正規表現で日本語を解析するのが面白く、他人の発言を拾っては改変するといったプログラムをPythonやPerlで書いていました。2011年ごろはNode.jsがはやりはじめていて、WebSocketを使ったリアルタイムなライブコーディングWebアプリを作ったりしてみました

2014年ごろにはGoにも手を出してみようと思い、ターミナルの操作を記録するツールと組み合わせてGIFアニメーションを生成するツールを作ってみました。2015年末にはTensorFlowという機械学習フレームワークがリリースされ、機械学習の勉強がてらアイドルの顔識別をするアプリケーションなどを作ってみました

2016年にはフロントエンドも多少理解しておきたいと思い、Reactを使ってアイドルフェスのタイムテーブルを画像化するWebアプリを作りました。2017年には将棋を始めたので、詰将棋の問題を自動生成するプログラムをGoで書いてみたりしました

もう一歩先に進んでメモとしてブログに残す

新しい言語やフレームワークが気になって少し触ってみる、ということは誰でも経験があると思います。

私はそこで、“Hello, world!”だけで満足せず、もう一歩先まで進んでみることを心がけました。ちょっとした自分なりのアイデアを加えて、「これを使って、こういうことができると面白いな」と思ったものを、自分が納得する形になるまでは触ってみるようにしました。

その過程で得た知見などを「自分のために」メモとしてブログに書き残していきました。同じことに興味を持った誰かが読んで面白いと思ってくれたらうれしいですが、それは必須ではなく、あくまで自分のためのメモです。

とはいえ他人が読む可能性はあるし、自分も後で見たときに混乱しないよう、内容には間違いがないように最低限は調べて、正しく整理したものを書くように心がけました。そうして整理することで、メモを書き始める前より理解が深まったように思います。

興味駆動の個人開発で技術の「引き出し」が増える

勉強する、何か作ってみる、を繰り返しているうちに、自分の中の“引き出し”も増えてきました。「こういうツールが欲しい」と思ったときに「あれとこれを使って自分だけで作れそうだ」と思えるようになってきました。

実際に自分だけで欲しいものが作れるようになってくると、それがまた楽しくなり、もっと手を動かしたくなります。もっと知識を身に付けて、もっといろいろなものを作ってみたくなります。暇になることがありません。

こういった“興味駆動”の開発は、業務で得た経験や知識から派生していくこともありましたが、逆にまったくの興味で始めた開発から得たものが、後々の仕事に生きることもありました。特に意識したわけではありませんが、相乗効果としてどちらにもプラスに働くことが多いように感じています。

仕事としてのソフトウェア開発、趣味としてのソフトウェア開発、どちらも好きな、自分で選んだ道にあるものだったので、楽しみ続けることができていると思います。

これからも自分に合ったアウトプットを続けていきたい

東京から再び離れることで、勉強会やカンファレンスには行きづらくなり、エンジニアコミュニティとも距離ができてしまうかとも思いましたが、今はイベントもオンライン開催のものが多いですし、あまり影響はなさそうでした。そもそも最近は、家族と過ごす時間を大切にしてることもあり、勉強会などにもそれほど参加していません。

コミュニティ活動で得たつながりは、ずっと続いています。身近な知り合いのエンジニアの人たちはだいたいSNSなどでつながっていて、いつでもわりと気軽に相談したり質問したりできているので、困ることはあまりありません。都市部から離れて在宅になった今でも、孤独感や焦燥感はほとんどありません。

今後も、家庭は大事にしつつ、趣味としての開発は続けるつもりです。カンファレンスなどでの発表の場はあまりないかもしれませんが、自分にはブログという自分に合ったアウトプットの場所があるので、最大限にそれを生かして続けていこうと思います。

自分を育ててくれた多くのエンジニアコミュニティにも、少しずつ何らかの形で恩返ししていきたいと思っています。

編集:はてな編集部