2022/6/30

なぜエンジニアは、惜しみなく知見をシェアするのか?

NewsPicks Brand Design editor
 ソースコードを無償で公開して改良し合う。役立つ情報を互いに共有する。そんな「シェアの文化」が自然と育まれてきた稀有な世界が、エンジニア業界だ。

 一般的には企業や個人の“資産”とされる知見や情報を、なぜエンジニア同士は惜しみなく共有するのか。

 マイクロソフトでDevRel担当のエンジニアとして働きながら、漫画家やインフルエンサーとしても多方面で活躍するちょまど(千代田まどか)氏と、エンジニアの情報共有コミュニティ「Qiita」のトップ発信者の一人で、ソニックガーデンに勤めるエンジニアの伊藤淳一氏の対談で、その理由をひもとく。

情報発信は「恩返し」だ

──Twitterのフォロワーが9万人を超えるちょまどさんと、Qiitaのユーザーランキングでトップクラスの伊藤さん。改めて、なぜお二人は、自身の知見やナレッジをシェアするのでしょうか?
ちょまど 改めて考えてみると、「恩返ししたい」気持ちが一番大きいかもしれません。
 というのも私は、情報科出身ではなく、英文科からエンジニアになった人間なんです。
「プログラミング」という存在も知らないまま大学生になり、大学の授業では毎日シェイクスピアや聖書を読んでいました。
 初めて自分のパソコンを手に入れたのも、大学の入学祝い。
 絵を描くのが好きで、「自分が描いた絵を世界中の人に見てもらいたい」との一心で、Webサイトを作り始めました。それが、プログラミングの世界に足を踏み入れたきっかけです。
 ですが、何しろ女子大の英文科。周りにプログラミングについて話せる人が全くいない。なんとか独学でサイト制作やサーバー構築を始めたのですが、これが本当に大変で……。
 よく「誰でもわかる」みたいなタイトルの、初学者向けの本ってあるじゃないですか。それなら私でも理解できるのではと思って読み始めるのですが、「ではコンパイルしましょう」と当たり前のように書いてある。
「え、コンパイルって何……?」と早速つまずいて、ググってみる。でも1単語を調べると、わからない単語が5個くらい出てくるんです(笑)。
 そんな調子だったので、エンジニアを目指し始めた頃は、「自分はこんな初歩的なことすらわからないんだ」と、ひたすら落ち込む毎日でした。
 そんなときに助けてくれたのが、Twitterやオンラインコミュニティの、技術に詳しいつよつよエンジニアの方々。
 いろいろなことを質問し、教えていただくうちに、徐々にみなさんの話についていけるようになってきたんです。
 そんな背景から、「技術コミュニティに育てていただいた恩」を強く感じていて。だからこそ、過去の私のように困っている人に向けて、今度は自分が何か恩返ししたいと、発信を続けています。
伊藤 すごく共感します。
 私は、プログラミング言語の一つであるRubyに関する技術記事をQiitaで発信しているのですが、その根底には「エンジニア全体の工数を減らしたい」という思いがあります。
 たとえば僕は、専門のRubyに関しては、英語の文献をチェックして、最新情報をキャッチアップしています。英語から日本語の翻訳にはそれなりの時間がかかりますから、各エンジニアがそれぞれ翻訳していたら、すごく時間がもったいないですよね。 
 でも僕の翻訳をQiitaに投稿してみんなが活用してくれれば、エンジニア全体の仕事の効率化につながるんじゃないかと。
──ですが、「せっかく自分が頑張って翻訳したのに、無料で人に公開するなんて悔しい……」という気持ちは抱かないのでしょうか?
伊藤 それは思わないですね。僕もちょまどさんと同じで、「give & take」の気持ちでやっています。
 実は僕も文系出身で、独学ではなかったにしろ、何度もコーディングで行き詰まる経験をしてきました。
 そんなとき、インターネット上の見知らぬ誰かが書いた技術記事に、何度も救われたんです。「記事の通りにやってみたら、本当にエラーが直った!」みたいに。
 損得勘定なしに知見を「give」してくれた人のおかげで、今の自分がある。
 だから僕も、自分がつまずいたポイントや、知っていてよかった点などを広く共有して、「そこに落とし穴があるから、こう回避して!」と伝えているつもりです。
 言ってしまえば、「俺の屍を越えてゆけ」みたいな気持ちでしょうか(笑)。

“推し”の技術を広めたい

ちょまど 私はどちらかというと広く浅く発信するタイプですが、伊藤さんみたいに一つの専門分野を深く掘り下げて発信してくれる人は、めちゃくちゃ貴重なんです。
 先ほど話に上がっていた英語文献の日本語訳も、本当にありがたい。
 翻訳なんて機械翻訳でいいじゃないか、と思う人もいるかもしれませんが、深く理解している人による翻訳は全然違います。難解な箇所に訳注を付けてくださる方なんかもいて、おかげで本当に仕事が捗るんです。
伊藤 ありがとうございます。そういう風に、自分の発信に対して感謝してもらえると、素直に嬉しいですよね。
ちょまど 私もよくTwitterでエゴサ(自分自身の評価をインターネット上で検索すること)しちゃうんですが、「ちょまどの記事がこう役に立った」というツイートを見るたびに「やったー!」と喜んでいます(笑)。
 特にQiitaはエンジニアが集結している分、記事を投稿すると特にたくさんの人が見て、反応をくれるんです。だから、書いていて楽しいんですよね。
伊藤 そうそう、Qiitaは、エンジニアが集うパラダイスみたいな場所なので(笑)。
 そこで自分の記事がたくさん読まれたり、LGTM(Looks Good To Meの略。他サービスでいう「いいね」ボタン)が押されたりすると嬉しいし、役に立ててよかったなとモチベーションが上がります。
ちょまど 加えて私の情報発信のモチベーションの源泉は、オタ活(オタク活動)としての発信なんです。
 というのも、推しのアイドルがいるみたいな感じで、私には「推しの技術がある」んですよ。
伊藤 推しの技術(笑)。
ちょまど たとえば最近は、Babylon.jsという3Dエンジンに注目しています。自社 (マイクロソフト)発の OSS プロダクトだから推している、というわけではなく、そういうことを抜きにしてもとても良いプロダクトだと思っています。
 そうすると、その「推し」の魅力をみんなに知ってほしくなっちゃうんです。
「みんな、Babylon.jsを使えば、こんなに簡単にwebブラウザ上で3Dモデルをぐりぐり動かせるんだよ!」という風に(笑)。これも、私が発信する大きな理由の一つです。

いつの間にかキャリアが開けた

──恩返しの精神で発信を続けてきたお二人ですが、ご自身のキャリアにはどんな影響がありましたか?
伊藤 わかりやすいのは、書籍『プロを目指す人のためのRuby入門』の出版につながったこと。出版社の編集者が僕の技術記事やブログを見ていて、声をかけてくれたんです。
 まずは雑誌への寄稿から始まり、書籍の発売まで実現したことには、自分でも驚いています。
 また、現在所属しているソニックガーデンに転職するときにも、ブログを読んでもらえたことで「伊藤さんの思考や人柄が伝わった」と言われ、採用がスムーズに進みました。 
ちょまど ブログには人となりが出ますもんね。実は私も、情報発信が転職につながりました。
 新卒入社した1社目は 、仕事内容がプログラミングと関係ないものだったため、入社2か月後にはもう辞めたくなってしまいました。
 そこで2社目の就職先を探しているときに、「コードを書ける会社に就職したい」とTwitterに書き込んだら、「うちに来ませんか?」と数社に声をかけていただけたんです。
伊藤 それはすごい!
ちょまど 実際にお会いして「なんで私に声をかけてくれたんですか?」と聞いてみたんです。
 そうしたら「ちょまどさんのブログを読んで、プログラミングが本当に好きな気持ちが伝わってきた。プログラミングは、楽しんで自発的に学び続けられる人に適性があるんだよ、ちょまどさんみたいにね」と言われました。
 英文科を卒業した直後の当時、ブログに書いていたのは「C言語でじゃんけんプログラムを書きました!」「Haskellでシーザー暗号書いた」「C++メタプログラミング入門」など、正直言って趣味全開なことばかりでした。
 それでも、続けていたからこそ認めてもらえた。すごく嬉しかったですね。
伊藤 さらに僕が思うのは、情報発信って実は、自分のスキルアップにも直結するということです。
 何かを発信するときって、「嘘は書きたくない」じゃないですか。嘘や間違えに気づかないまま発信すれば、その誤情報がそのまま広まってしまいますから。 
 だからこそ、記事を書く前にたくさん調べるんです。特に自信のないところはドキュメントを隈なく読んだり、実際に動くかな?と試してみたり。
 振り返ってみるとその蓄積が、自分の血肉になっているんですよね。

時間作り=優先順位決め

──とはいえ、お二人とも本業の仕事もあり、記事を書いたりSNSの投稿をしたりする時間を確保するのは大変なはず。どのように情報発信の時間を作っているのでしょうか?
伊藤 確かに、常に時間はないです(笑)。ただ、全ては優先順位の問題だと思っていて。
 たとえば僕は、「これを知っているのは世界で僕1人じゃないか?」と思うようなトピックを見つけたときは、本業でやるべきタスクがあったとしても、記事を書いちゃいます。
 多くの人の役に立ちそうでかつ、他の人が知らないのであれば、発信する価値は高い。そう感じた場合は、自分の中の優先順位を上げて取り組みます。
──なるほど。お二人が情報発信するときに、大切にしているポイントを教えてください。
ちょまど 自分の特性や得意なことを見極めるのが大事かなと思います。私の場合は、初心者向けのコンテンツが多いんですが、それは英文科から完全独学でエンジニアになった身として、「わからない人の気持ちがわかる」から。
「ここはちゃんと説明しておかないと、難しく感じちゃうだろうな」など、つまずきそうな箇所に気づけるんです。
 そんな箇所には、スクリーンショットをたくさん載せて丁寧に説明するなど、「ガチ初心者」の気持ちを思い出しながら書いています。
伊藤 素晴らしい。僕が大切にしているのは、「読み手視点」ですね。
 おそらく人って、意識しないと「書き手起点」で物を書いてしまうと思うんです。
「自分が理解したことをそのままアウトプットすればいい」という意識だと、自分しか見えていない前提条件や、理解するための文脈が記事から抜け落ちて、読み手が理解しづらくなることがある。
 だから僕が記事を書くときは、なるべく独りよがりにならないよう意識しています。
 ……と偉そうなことを言っていますが、僕もここまで来るのに10年かかりました。最初の頃に書いた記事を振り返ると、「うわ、ショボいな」と恥ずかしくなったりもします(笑)。
 誰でもそういう時期はあると割り切って、まずは続けてみることが重要かなと。
ちょまど そうですよね。結局エンジニアにとって大事なことは、「技術に対する愛」や「他のエンジニアへのリスペクト」だと思うんです。
 私自身が、独学で「もうダメだ……」と何度も挫けそうになりながらも、技術への愛と周りのエンジニアの方々の支えでここまでやってこられた。
 もちろん最新情報やトレンドを追うことも必要ですが、自分の好きな技術にしっかりと向き合う姿勢もすごく大事。
 その「推しへの愛」が蓄積されて、いつの間にか自分の強みになって返ってくるのだと思います。