ググれる時代だけど覚えることは重要
プログラマは、ソフトウェア開発に関わるあらゆる知識をとにかく多く覚えている方がいい。 あらゆる局面で「知っていること」が有利に働く。 創造性があるとか、頭がいいとかよりも、知っていることの方が重要である。
知っていることの最大の利点は、速いことである。 すでに知っているので、知識を使ってやりたいことを即座に実現できる。 一方で、ググりながらコーディングするのは、辞書を引きながら言葉を喋っているのに似ていると思う。 ググる行為はスピードを犠牲にするのであまりにも代償が大きい。
ソフトウェア開発においてスピードは重要である。 速いほど試行回数をこなせる。 当然ながら、試行回数が多いほど優れたものを生み出せる可能性が高い。 『UNIXという考え方 ― その設計思想と哲学』に出てくる第三のシステムを構築する方法も、やっぱり試行錯誤である。 スピードによって生み出された量が質に転化する。
ではどうすればスピードが身に付くかというと、とにかくたくさん訓練する以外の方法を私は思いついていない。 ソフトウェア開発は極端に捉えれば CPU との会話なので、たくさん会話している内に脳に染みつくんじゃないかと思っている。
比喩に乗っかったまま話を進めると、ソフトウェア開発にもネイティブと非ネイティブみたいなのがいる。 子供の頃から CPU とともに育った人間と、そうではない人間である。 私は非ネイティブなので、ネイティブとの差は残念ながら相当努力しても埋められないかもしれない。 それでも脊髄反射1でプログラミングできるように大量にコードを書けと自戒しながら終わります。
もっと説得力のある Rui Ueyama さんの記事も存在するので読んでみて欲しいです。 http://blog.sigbus.info/2014/11/blog-post.html
Footnotes
-
私が推し量ろうとするのもおこがましいですが、登大遊さんが仰る「論理的思考の放棄」が脊髄反射に近かったりするんでしょうか...。https://softether.hatenadiary.org/entry/20070324/p1 ↩