はじめに
この記事は、Why Every Software Engineer Should Write Articlesを翻訳したものです。今まで、記事やブログを書くことに時間を使うことに懐疑的だったのですが、この記事を読んで腑に落ちるものがありました。
アウトプットしたほうがいいのは分かっているけど、めんどくさい、時間が勿体無いなどと思っている方にはぜひ読んでもらいたい記事です。
英語を日本語に直訳すると不自然で読みにくくなるため、主張を壊さないことを前提に意訳します。ミス等あれば指摘ください。
なぜ全てのエンジニアが記事を書くべきなのか?
近頃、コンピュータサイエンス産業は複雑かつ急速に進化しており、複雑な技術やコンセプトを簡単な方法で説明するという事がより重要になってきている。
ブロックチェーン・機械学習・深層学習・データサイエンス・分散システム・量子コンピューティング・ビッグデータ・AR・VR・マイクロサービス・NoSQLなど新しい領域やバズワードが溢れている。これらの単語を聞いたことはあるだろうが、大切なのはどれくらい良く知っているのかということである。これらが何かを初心者に説明できるだろうか?多分ほとんどの人ができないだろう。
問題点|The Problem
近頃、技術はものすごい勢いで複雑に成長している。新しい技術全てに付いていくということはどんどん難しくなっている。
個人的にも、仕事とプライベートを両立しながら最近の出来事を全てキャッチアップしていくのにとても苦労している。そして、私はそこまで忙しいわけではないが、私より10倍の物事をこなしながらキャッチアップをおろそかにしない人もいる。一体彼らはどうやってやっているのだろうか。
解決策|The Solution
技術に関する情報を要約したり、簡単に理解できるような情報に変えることができる記事を書く人がより必要とされる
例えば、私はかつてKubernetesについて勉強しようとした。まず公式ドキュメントを開いて1から読み進めていった。数ページ読んだところで自分が全く何も理解していないことに気が付いた。最初は自分の理解力ややり方が悪いと思っていたが、フェローエンジニアに聞いてもKubenertesの公式ドキュメントを読んで理解することが難しいことだと知った。
その後、Kubernetesに関するある記事を見つけた。10分以内に読む事ができ、完全に理解できたのである。そのKubernetesの記事のレベルは高かったが、簡潔な説明と素晴らしいアナロジーのおかげでなんとか全体感を得ることができた。もしこのような入門としてふさわしい素晴らしい記事があらゆる技術に対してあるならば、誰もが何度も何度も苦労しながら同じドキュメントを読み返すことなく、もっと簡単に早く技術を理解できるだろうと考える。
多くの人が最新の技術を理解する手助けをするという点において、このような記事はあらゆる産業においてとても利益になると考える。それ故に、フィールド全体がより早く発展していくと考えられる。
しかしこれを達成するには、我々がそのようなコンテンツ・記事を作り出す努力をしなければならない。次に、なぜ我々1人1人がそれをしないといけないのかを解説しよう。
記事を書いた人が勝つ
読むに値するような適切なコンテンツを作ることは、時間を浪費しているだけに思うかもしれない。しかし、それは正しくはない。記事を書くことは以下の点において人としての成長に大きく貢献するのである。
しっかりとした知識がつく
簡潔に説明できないならば、十分に理解できているとは言えない
この引用を決まり文句のように知っているが、どれほどの人が自分がそれほど知らないトピックについて説明した後にこの言葉を感じているだろうか。私自身はそう感じてしまっている。1日で記事を書き上げられるだろうと思ってたものが、結局1ヶ月くらいかかってしまう。一度書き始めたら、とても多くのことが曖昧でよく分かっていないと気づく。ほどなくして20個ほどタブを開いていることに気づく。
高いクオリティの記事を書きたいなら、自分の名前が出てしまっているのだから、そこで述べていることが正しいことをしっかりと確かめながら書かないといけない。このことが1行1行書くことがとても大変だと感じる理由であるし、自分が書いているコンセプトをしっかりと確かめる必要が出てくる理由である。
最終的には、記事を書くことでその対象のコンセプトが頭の中で確実になり、徹底的に理解していることに気づいた。これが記事を書く最強のモチベーションになったし、今では完全に物事を理解する唯一の方法が、記事を書くことになったのである。
達成感を得られる
何かに貢献することや感謝されることは純粋に楽しいと思えることである。
たとえ些細なことだとしても、誰かを助けると充実感で満たされる。自分が書いた記事に肯定的なコメントが書かれていたらいい気分になる。
より良いコミュニケーションにつながる
良いコミュニケーションは必要不可欠である。頻繁に考えや意見を正当化したいと思う。仕事では、頻繁にコンセプトやアプローチを(ほとんど技術職以外の人に)説明する必要がある。
これらは記事を書くことで可能になる。世界のトップ企業の1つであるAmazonでは従業員はプレゼンテーションではなく物語を書くように言われている。
それ故に、自信満々に記事を書くことで自分の考えを伝えることができるというのは大切なことである。練習することでしか上達はできない。
思いもよらない機会に巡り会える
あなたが書いた記事は誰かが積極的に読んでくれる。これにより今まで知らなかった人に出会えたり、契約について話せたり、仕事のオファーさえもあるかもしれない。様々な機会が待ち受けているのだ。
私は記事を書くことで計り知れない成功を収めることができた。Kafkaの記事を書いたことで、Confluentという素晴らしい会社からオファーが来るなど自分のキャリアが大きく進むのを感じた。Confluentは私の記事を見つけてくれてチームにとって必要な存在だと感じ、面接を申し込んできたのだ。記事を書いたことですべてが上手くいき、今では新たな国のより挑戦できる面白い組織に属することができている。
自分のキャリア以外でも、私が書いた記事のおかげで世界中の賢い人と繋がることができた。例えば、最近は分散システムの記事を見たエンジニアと繋がった。少しだけチャットをした後、私たちはお互いサンフランシスコにいたので会うことにした。
自分が書いた記事によって他人が享受する利益
知識
私自身は、少しばかり自分本位な努力をしてきたと思っているが、記事を書くことそれ自体は利他的なことだと思っている。記事を書くことは知識をシェアすることである。簡潔で良い記事を書くことで、他の人の学びをぐっと助けているのである。
近頃のデジタル社会では、幅広い人に対して大変大きな価値を届けることが今までよりも簡単にできるようになっている。記事を書くことで、より多くの人が最新の発展のスピードに追いつけるようにすることで、産業を前に推し進めることに貢献しているのだ。
様々な視点
人によりバックグラウンドは異なる。それにより、ある記事が完全に刺さる人もいれば、そうでない人もいる。
私は、ある記事がもっとシンプルに書けるだろうと感じることがある。それは、記事を書いた人が悪いのではなく、純粋に人によって見る視点が違うだけのことである。
それ故に、1つのコンセプトに対していろんな記事があることはとても大切なことである。これにより、より多くの人がそのコンセプトを理解できるようになる。
まとめ
質が高い技術的な記事は健全なソフトウェア産業に必要なものである。これまで述べた通り、努力をして質の高い記事を書くインセンティブは十分にある。記事を読む人、そして産業全体に大きな利益がもたらされる。記事を書くことは個人的にたくさんの機会を与えてくれることであり、そこに時間を投資することは価値のあることだと忘れないでほしい。
最後に-実行に移すために
ぜひ、自分自身が知識があると感じることについて今すぐ記事を書き始めてほしい。ここ数日間心にあった些細なことでもいい。もちろん、強制しないことが一番だが、時々は無理矢理にでも下書きを書いて見てほしい。それが結果的に申し分のない素晴らしいことである。
自分にとっては簡単に見えることでも、全くわからないと感じている人は絶対にいる。だからこそ、記事を異なる視点で書くことで助けてあげてほしい。
最後に
読んでいただいてありがとうございます。これは私自身が一番アウトプットを頑張ろうと思わせてくれて記事でした。
Twitterでは常に技術系・筋トレ系のアウトプットをしているのでぜひフォローしてください!👉 https://twitter.com/hiromu_bdy