ググれる時代だけど覚えることは重要

Change log
9sako6
9sako6
9sako6
9sako6
9sako6
9sako6

プログラマは、ソフトウェア開発に関わるあらゆる知識をとにかく多く覚えている方がいい。 あらゆる局面で「知っていること」が有利に働く。 創造性があるとか、頭がいいとかよりも、知っていることの方が重要である。

知っていることの最大の利点は、速いことである。 すでに知っているので、知識を使ってやりたいことを即座に実現できる。 一方で、ググりながらコーディングするのは、辞書を引きながら言葉を喋っているのに似ていると思う。 ググる行為はスピードを犠牲にするのであまりにも代償が大きい。

ソフトウェア開発においてスピードは重要である。 速いほど試行回数をこなせる。 当然ながら、試行回数が多いほど優れたものを生み出せる可能性が高い。 『UNIXという考え方 ― その設計思想と哲学』に出てくる第三のシステムを構築する方法も、やっぱり試行錯誤である。 スピードによって生み出された量が質に転化する。

ではどうすればスピードが身に付くかというと、とにかくたくさん訓練する以外の方法を私は思いついていない。 ソフトウェア開発は極端に捉えれば CPU との会話なので、たくさん会話している内に脳に染みつくんじゃないかと思っている。

比喩に乗っかったまま話を進めると、ソフトウェア開発にもネイティブと非ネイティブみたいなのがいる。 子供の頃から CPU とともに育った人間と、そうではない人間である。 私は非ネイティブなので、ネイティブとの差は残念ながら相当努力しても埋められないかもしれない。 それでも脊髄反射1でプログラミングできるように大量にコードを書けと自戒しながら終わります。

もっと説得力のある Rui Ueyama さんの記事も存在するので読んでみて欲しいです。

Footnotes

  1. 私が推し量ろうとするのもおこがましいですが、登大遊さんが仰る「論理的思考の放棄」が脊髄反射に近かったりするんでしょうか...。

     論理的思考の放棄 - 登 大遊 (Daiyuu Nobori) の個人日記
    論理的思考の放棄 - 登 大遊 (Daiyuu Nobori) の個人日記
    僕は、1 日に少なくとも 3,000 行程度、多く書くときで 10,000 行以上のプログラムを書くことができる。その結果、多い月で 10 万行 / 月くらいである。なお、言語は書くソフトウェアの性質上、大半が C 言語である。また、プログラミングにはバグが付き物だが、ここ 2、3 年の間は、発生するバグの数を極めて少なく保つことに成功している。 とても大きく複雑で、かつレイヤ的に OS に近い処理をたくさんやるプログラムを書く場合は、プログラミングをするときでも、事前の設計が極めて重要となる。設計をうまく行わないと、後になって全面的に書き直しをしないといけなくなったり、パフォーマンスが低下し…
    faviconsoftether.hatenadiary.org

0
2020-Present 9sako6