会社の部下に教えたいテーマ

最近中途採用を集中的に行っていることもあり、会社の部下に教えておきたいことをまとめようとしている。それのメモ書き。


・技術は目的ではなく手段
まず最初に、技術は目的ではなく手段であることを忘れてはいけない。目的は人それぞれ何であっても良いが、会社としては「会社の利益と顧客の利益をバランス良く追求すること」であり、個人としては「社会全体の利益と自己の利益とのバランスを取ること」と言えるのではなかろうか。利益というのは必ずしも金のことではない。自己表現を達成出来たというような精神的満足かもしれない。
ちなみに、技術を探求し駆使する私の目的は社会への貢献とそれによって得られる自己満足である。「お前のプログラムは役に立ったよ」と一人でも多くの人から言われたい。もちろん生きていくための手段でもあるが、それだけではないのだ。


・正解は複数ある
そして手段は一通りでないことも忘れてはいけない。学校で教えられる正解は常に一つであるが、現実社会における正解は必ずしもそうでない。いや、正解が唯一無二であるケースは皆無と言ってもいいだろう。しかも、複数ある正解にはそれぞれ一長一短あるのだ。
重要なのは、複数ある正解の中のどの長所に重きを置くべきかを判断する力を養うことだろう。バイクの乗り方と同じで、バランス感覚が大事なのだ。


アルゴリズムとデータ構造を覚える
基本的なアルゴリズムとデータ構造の習得はプログラミングのド基礎である。これを知らずしてプログラマーを名乗るな。また、それらを知ることによってオブジェクト指向を理解する一歩を踏み出せる。それらを知らない奴はオブジェクト指向など一生理解出来ない(かも)。


・本物のオブジェクト指向を把握する
Java言語を使ってもそれはオブジェクト指向ではない。手続き型のプログラムを書いているJavaプログラマーは掃いて捨てるほどいる。手続き型のプログラムを書きたいならJavaなぞ使わない方がよっぽど生産性が高い。Javaと付き合うならばオブジェクト指向の理解を避けて通るな。ちなみにVBは、かなり優れたオブジェクト指向言語であるが、それを知らないVB使いが多いのが現実だろう※。
オブジェクトとは何かを一言で言えるように理解すべき。


VBは継承が使えないが、継承には副作用があるため「むやみに使うな」とさえ言われるぐらいなので、継承が無いからと言ってオブジェクト指向言語でないとは私は思っていない。