jA7n2mR

学校では「文系」と「理系」に分かれており、学ぶ内容も異なれば、考え方の違いもある。私は理系で、大学ではコンピュータ科学を専攻し、卒業後はソフトウェアエンジニアとして働いている。その過程で、文系と理系の間にある溝は決して埋まらないものだと気づいた。私が出会った多くのエンジニアは文章を書くことを怖がり、文系の人はコードを見るだけで頭が痛くなる。

私は、プログラマーは文章を書く習慣を身につけるべきだと思う。なぜなら、文章を書くことはプログラミングにとって非常に有益な多くのスキルを鍛えてくれるからだ。

文章を書くこととコードを書くことの最も核心的な共通点は、どちらも明確に考える能力が必要だということだ。一流のソフトウェアエンジニアは優れた書き手でもあることが多く、彼らの文章はコードと同じように論理的で、流れるように明快で優雅だ。

文章とコードには多くの類似点がある。どちらも白紙のページから始まり、ひとつのアイデアを最終的に完全な製品へと変え、特定の読者に向けて届けるものだ。文章を書くこともコードを書くことも、論理的な文の連なりをモジュールにカプセル化する必要があり、そのモジュールは関数でもありうるし、文章の段落でもありうる。優れたコードは優れた文章と同じく簡潔であるべきで、そうでなければCPUリソースや人の労力を無駄にしてしまう。

ある製品が完成に近づくと、ソフトウェアエンジニアは作品の発表を間近に控えた作家のように不安になる。文章を書くのと同じように、ソフトウェアは完全に終了することは決してない。エンジニアはコードの最適化や新機能の開発、あるいは一部分の作り直しに多くの時間を費やす必要がある。なぜなら、リリースした作品が自分自身の最高の姿を見せていないのではないかと心配するからだ。

ソフトウェアエンジニアは文章を書くべきである。なぜなら、現在は開発におけるコラボレーションがますます重要になっているからだ。オープンソースプロジェクトには、世界中の人々が参加することができる。製品の開発と運用には、しばしば多くのエンジニアが必要となる(Google Mapsには1100人のフルタイム従業員がいる!)。GitHubのコメント、コードコメント、技術ドキュメントのいずれも、明確で正確な文章が求められる。優れた文章作成能力は人々のコミュニケーションを円滑にし、プロジェクトをより良く運営させる。

あるプロジェクトではコミュニケーションやコラボレーションがあまり必要ないと感じるかもしれない。しかし、ソフトウェアについての文章を書くことは、通常、学習やさらなる議論を促進する。現在では、RFC文書や技術マニュアルから学ぶ必要はもうない。なぜなら、オンラインには他のエンジニアが書いたチュートリアルがあるからだ。さらに、Hacker Newsのコメント、ツイッター、さまざまなブログから多くのことを学ぶこともできる。

ブログと言えば、もう少し述べたい。良い文章には時間が必要だ。最初に書いた文字はあまり良くないかもしれない。そんな時は、もう少し時間をかけて、何度も推敲し、磨きをかける必要がある。

ソフトウェアエンジニアは文章を書く必要がある。なぜなら、彼らは書くことを楽しむかもしれないからだ。多くのソフトウェアエンジニアは、自分たちが開発したソフトウェアが「影響を与える」こと、つまり人々の生活に変化をもたらすことを期待している。実際、文章を書くことによっても人々に「影響を与える」ことができる。例えば、マネジメントに関するブログ記事は、他の人が自分のチームを鼓舞するのに役立つ。プログラミングを教える内容は、学生にコンピュータサイエンスを学ぶ興味を引き起こすかもしれない。キャリアプランニングに関する記事は、卒業生が新しいキャリアの方向性を見つけるのに役立つ。

たとえ誰もあなたの記事を読まなくても、書くプロセス自体は有益で無害である。それは、思考を整理し、特定の問題に対する見解を明確にし、ある種の考えを強めたり弱めたりするのに役立つ。乱れた考えを簡潔な文章にまとめることは非常に価値がある。

とにかく、文章を書くことはソフトウェア開発の質を高めるのに役立ち、開発過程でのコラボレーションもより円滑にする。たとえ理系の人間であっても、十分に価値のあることだ。

原文:http://www.36kr.com/p/218600.html