TL;DR

技術記事を書いて公開してくれる人は貴重な資源なので、なるべく潰さないように大事にしましょう。

はじめに

プログラムを書いてて、なにかわからないことがあれば検索すると思います。すると、世の中にはごく少数の役に立つ記事と、大多数の役に立たない記事があることがわかるでしょう。その役に立つ記事を求めてネットの海をさまよっていると、「あれ?またこの人の記事だ」と思うことがよくあるでしょう。C++の言語仕様を調べてると「あの人」の、Vim関連を調べていると「あの人」の、Go言語なら「あの人」の記事を見つけることでしょう。逆に言えば、ある程度限定された分野において、体系だった知識があり、わかりやすい記事を書いてくれる人というのは極めて貴重な人材ということになります。

しかし、そんな「つよつよエンジニア」も、はじめから強かったわけではありません。当然のことながら新人時代があり、よくわかっていない状況があり、うかつな記事を書いたりしたこともあるでしょう。さて、新人がうっかり「うかつな記事」を書くと、主に中堅エンジニアからよってたかって叩かれ、炎上することがあります。例えば「動かなくて悩んでいたけれど、こうすれば動きました!」と書かれた記事がSQLインジェクション脆弱性を持っていたりすると「燃える」ことになります。

当然のことながら、間違っている記事や危険な知識については修正された方がよいと考えます。それと同時に、「ネットに何か記事を書く人」はそれだけで非常に貴重であり、成長すれば有益な記事を書いてくれる可能性がある貴重な資源である、ということも同意が得られると思います。本稿は、そういう人がつぶれないように守りましょう、技術記事を書くことを奨励しましょう、ということを主張するポエムです。

検索やトレンドの問題

間違っている記事はさておき、たまに用語の使い方がおかしい記事や、中身のない記事について、「検索空間を汚染する」と反発する人がいます。技術記事を、個人ブログではなく技術記事投稿サイトに投稿することが多くなった現在、そのサイトの検索ランクが異常に高く、何か検索した時に、たいして中身のない記事が、おそらくそのサイトにあるがゆえに検索上位に来てしまう、ということはよくあることです。

また、良くも悪くも話題になった記事は、「トレンド」に乗ることがあります。多くの技術記事投稿サイトは「いいね」の仕組みを持ち、多くの人が短期間に「いいね」した記事は「トレンド」といってそのサイトのトップページに掲載されることが多いです。すると、あまり一般的でない用語の使い方をしているが、その中身がわかりやすかった or その用語がキャッチーだった等の理由でトレンドにのり、多くの人の目に触れたりします。すると、はてなブックマーク等で言及が増え、「ホットエントリ」としてさらに多くの人の目に触れます。すると、「その用語の使い方」を苦々しく思う人が強い口調で批判コメントを書く、なんてことがおきます。

私は、間違った知識の訂正をすること自体はまずいとは思いませんが、「間違った記事を書くな」「そもそも中身のない記事を書くな」といった論には賛成できません。特に、その理由が「検索上位に来てしまうから、さらに被害者を増やすから」というものであればなおさらです。まずい知識が検索上位やトレンドに乗ってしまい、間違った知識が再生産されてしまうのは、検索エンジンやトレンドの仕組みの問題であって、執筆者の責任にするべきではないと考えるからです。

現状、日本語によるプログラミング系の検索があまり良い状態ではなく、検索して1ページ目を見てあきらめて英語で検索する、もしくは最初から英語で検索してしまう人は多いでしょう。それには様々な要因があります。例えばPythonやRubyの基本的な操作で検索すると、やたらと大きな(かつ無関係な)イメージ写真がちりばめられた、「いかがでしたでしょうか」で終わる系の記事がヒットしてしまいます。また、エラーメッセージで検索して、Qiitaの「個人メモ」みたいなのがひっかかって、しかもそれがあまり良くない実装だったりしてイラっとした人も多いでしょう。これらを「検索ノイズ」と呼んで嫌う人は多いですし、その気持ちもわかります。それでもなお、私は「情報の取捨選択の責任をアウトプット側に負わせるべきではない」と考えます1

「絵の完成に11人が必要だ。1人が描き、10人がそれをこき下ろす」という言葉を見かけたことがあります。世の中、「情報を出す人」と「出た情報に文句をつける人」は、圧倒的に後者の方が多いです。情報を出す側と、情報を受け取る側、後者が圧倒的に多い状況で、情報を出す側に一定のクォリティーフィルタを求めるのは非効率的です。

個人的には、「いかがでしたでしょうか?」系のサイトをブラックリストにいれてブロックした上で、多くの記事を読み、著者を確認し、「この人の書いた記事は信頼できそうだ」という「重み」をつけていっています。くだらない知識であろうが、個人メモであろうが、まずはネットに出してもらう、それをどう取捨選択するかは受け取り側の責任、私はそうあるべきだと考えます。

批判を恐れるな問題

「新人を守ろう」みたいな事を言うと、「ネットに情報を公開するなら、批判される覚悟を持つべき。その覚悟がないのならそもそも公開すべきでない」という人がいます。私はこの意見に全く賛同しません。現状、ネットに情報を書くとなんらかの批判を受けるのはそうです。批判されて傷つくメンタルであるならば、そもそもネットに何も書かないのが最善の自衛策だ、というのもその通りです。しかし「現状そうなっている」という事実は現状を肯定しません。

繰り返しますが、ネットに何かを書き、公開する人は貴重な資源です。気軽な気持ちで記事を書いたら盛大に炎上してしまったとして、その人は多分もうネットに記事を書かないでしょう。ある企業のアドベントカレンダーで、おそらく「なんか書いてよ」と言われて気軽な気持ちで書かれたであろう記事が炎上したことがありました。いま、その記事も、そのアカウントさえもそのサイトから消えてしまっています。この記事を書いた人が、別のアカウントを取り直して記事を書いたり、別の場所で記事を書いたりという可能性は低いでしょう。まずい記事が一つ消えたことを喜ぶべきでしょうか?将来有益な記事を書いてくれたかもしれない人が消えたことを悲しむべきでしょうか?それとも、今後もまずい記事を書く可能性が高い人の芽を摘んだことになるのでしょうか?これらのどれを重視するかは人のポリシーに依存するので、ここで議論するつもりはありません。私は、間違っている記事やまずい記事に、そうと指摘するのは重要だと思いますが、「また検索ノイズか」「これぞ反面教師だなwww」「こんな記事を書かせる会社、大丈夫か?」のようなコメントが情報の海の栄養価を高めるとは思いません。

批判は楽です。記事を一本書くのに最低でも30分、下手すると数時間以上かかりますが、Twitterやはてブで「アホか」と書くのは数秒で済みます。

何かまずい記事や間違った記事を見かけたのならそれを直接叩くのではなく、正しい(と自分が信じる)記事を書いて対抗して欲しいと思います。その記事は、元記事よりも注目度が低く、思うように思い違いを修正できないかもしれません。しかし、その記事にブコメで「アホか」と一言書くよりよっぽど建設的だと思います。

誰に向けて書いた記事か

この記事は、いま検索ノイズを嫌がる人、批判を恐れる人はネットに記事を書くべきでないと思っている人に向けて書かれた記事ではありません。僕は誰かの意見を変えようと思っていません。この記事は、まだ記事を書いたことがない、他の人の記事の批判もしていない、いわゆる駆け出しエンジニアに向けて書いています。記事を書いたことが無いあなた、批判を気にせず記事を書いてください。少し知識が増えてきたあなた、公開された記事を気軽に批判しないでください。まずは「記事を書いて公開する」という勇気ある行動に敬意を持ちましょう。その上で、記事の内容がまずい場合、どうすればネットが良くなるか考えて行動して欲しいと思います。

ネットを良くする手段として、自分が詳しい分野について網を張り、間違った記事を見つけて指摘する人たちがいます。いわゆる「警察」と呼ばれる人たちです。「警察」の是非はさておき、警察のなり手はたくさんいるので、あなたがならなくても大丈夫。それより記事を書く人になって欲しいです。

まとめ

「ネットに記事をかくならちゃんとした記事を書くべき」という人と「内容は気にせず、まずはアウトプットすることを重視せよ」という人がいて、それは何を重視するかが異なるので、基本的に議論する意味はないと思っています(この記事で議論しようとしないでください)。僕は「内容は気にせず、まずはアウトプットすることを重視せよ」派です。そうして情報をアウトプットしているうちに、だんだん「つよく」なって、他の人の参考になる記事を書いてくれる人が増えてくれたら欲しいです。

  1. 英語で検索して出てくる参考になる記事の多くが、StackOverflowにある、ということもそれを裏付けています。StackOverflowには回答にVoteする機能があり、多くの人が参考になったと思う記事が評価される仕組みができています。これを見ても、「記事の評価は、著者ではなく、読み手がするべきだ」と思います。