インプットだけでなくアウトプットが重要という話は、もはや定説と言っていい。ブログを書く、OSSを公開する、技術記事を発信する。そうした活動が評価や機会につながるケースは、枚挙にいとまが無い。
ただ、アウトプットが大切だと分かっていても、実際に行動に移せないエンジニアが多いのも事実だろう。こんなコードを見られたら恥ずかしい、マサカリが飛んできたらどうしよう……。そうやって完璧な成果物を目指すあまり、つい手が止まってしまう。
そんな中、呼吸をするようにコードを書き、全世界へ公開し続けている男がいる。VimやGoのコントリビューターとして知られるエンジニア・mattnさんだ。
Vimプラグイン『emmet-vim』やGo言語のSQLite3ドライバ『go-sqlite3』など、世界中で使われるOSSを多数開発。GitHubのリポジトリ数は2000を超え、数が多すぎて設定画面を開くと500エラーが出るという伝説を持つ。
mattnさんは、批判を恐れない鋼のメンタルの持ち主なのだろうか。その疑問をぶつけてみたところ、彼の返答は実に興味深いものだった。
「便利なものを作ったら負けだと思っている」
そう言い切る彼に見えている景色とは、一体どんなものなのだろうか。
ソフトウエアエンジニア
mattnさん(@mattn_jp)
大学卒業後、ソフトウェアハウスやSIerなどでソフトウェア開発に携わる。vi派生のテキストエディタVimの日本語化やプラグイン、Go言語などでOSS(オープンソースソフトウェア)の開発・コミュニティ運営に参加し、2019年からGoogle Developers Expert。21〜23年、GitHub Stars。著書に『みんなのGo言語』(2016年、2019年に改訂2版、技術評論社、共著)、『Go 言語プログラミングエッセンス』(2023年、2025年に改訂新版、技術評論社、単著)がある。関西在住
GitHubは作品展示場ではなく、巨大なメモ帳
なぜ、mattnさんはこれほど大量のアウトプットを、恐れもなく公開できるのか。
多くのエンジニアにとってGitHubは、自分のスキルを証明するためのポートフォリオだ。未完成品や整理されていないコードを置くことは、自分の評価を下げる行為のように思える。
しかし、mattnさんの認識は根本から異なる。
「僕がGitHubにコードを置くのは、取捨選択ができないのと、めんどくさいからなんです。とりあえず作ったら、中途半端なものでも自分が使わなくなったものでもいいから、GitHubに置く。後で読み返した時に『あの頃あれやってたな』という記録になりますし、検索できるようにもなるからです。自分の本棚を公開している感覚に近いですね」
彼にとってのアウトプットは、他人に見せるためのプレゼンテーションではない。未来の自分が忘れた時に検索するための、巨大な「メモ帳」なのだ。
「自分専用のメモツール(CLI)も自作していて、いつでも過去のメモを検索できるようにしています。僕は忘れっぽいので、面白そうと思ったことも夜には忘れちゃう。だから常にメモを取るんです」
人に見せると思うから、ハードルが上がる。自分のために置いておくと思えば、そこに他者の評価が入り込む余地はない。未完成であろうが、バグがあろうが関係ない。
さらに彼は、OSSを完成品ではなく「対話のきっかけ」として捉えている。
「Xなんかでも『何々を作った』とコメントを添えてリンクを貼っておく。そうすると、他の誰かがプルリクエストをくれたりする。そういう“おいしい話”もあるわけです」
完璧にしてから出すのではなく、出すからこそフィードバックが得られ、完成に近づく。この順序の違いが、圧倒的なアウトプット量の源泉だった。
「役に立つもの」を作ろうとするから手が止まる
何を作ればいいか分からないというのも、エンジニアを悩ませる種だ。せっかく作るなら、誰かの役に立つもの、実用的なものを作らなければならない。そんな義務感が、アイデアを枯渇させる。
だが、mattnさんを突き動かす原動力は実用性ではない。「驚き」だ。
「昔からOSS界隈の人たちには言ってるんですけど、便利なものを作ったら負けだと思ってます。そもそも僕がよくやってるのは、Vimスクリプトで機械学習やってみたりとか、Vimスクリプトで動画再生してみたりとか、一見すると何のためによくやってるかよく分からないことばかりです。
でも、そこに面白さがあるんですよ。みんなが見てくれた時に『わーっ』って喜んでくれたら嬉しいし、それが自分の力にもなりますしね」
ただ純粋に、Vimで動画が動いたら面白そうという知的好奇心と、見た人を驚かせたいという悪戯心。
世界中の開発者に愛用されているVimプラグイン『emmet-vim』でさえ、最初はそんな動機から生まれたという。
「あれは元々、他のエディタで実現されていた機能を『Vimでもこんなんできるで』って見せびらかすために、ちょっと遊びで作ったつもりだったんです。そしたら意外とできちゃって、人気が出ちゃった。
狙ってホームランを打ったわけではないんです。面白がってバットを振り回していたら、たまたま当たった打球が場外まで飛んでいったという(笑)」
役に立たねばという先入観を捨て、興味本位の遊びを許容する。それが結果として、誰にも真似できないユニークなプロダクトを生み出す土壌となる。
コーディングを楽しんでいる人が、結局一番上手くなる
とはいえ、「遊び」ばかりしていてエンジニアとしてのキャリアは大丈夫なのか。きちんと技術力は向上するのか。
そんな不安もよぎるが、mattnさんは「遊びこそが最高の学習法」であることを体現している。彼はそれをサッカーのリフティングに例えた。
会員限定
ITエンジニア向けスカウト転職サービス
に登録すると続きをお読みいただけます。会員登録後、画面が自動で更新されます。
文・編集/今中康達(編集部)