赤い月

amelia2007-08-05

ここ2年ばかり新人プログラマちゅうものに遭遇していないんだけど、日本の未来を担うプログラマの教育て、本当はもっともっと力を入れなければ駄目なんじゃないかなぁと思う。
プログラマの質ちゅうのは、個人のセンスちゅうものに依存する傾向があるのは確かなんだけど、それでも、ちゃんとした教育を受けたか受けてないかで、相当の差が生じると思われる。
昔ながらの職人的教育で現場で「見て学べ」「切磋琢磨して手に仕事をつけろ」で育ってきたプログラマを何人か見ているけど、それでも学校で情報処理やら何かしらプログラミングに携わった経験のある人ならば、なんとかギリギリで持ちこたえている感じがする。だけど、社会人になってからソフトウェア開発にアサインされて、それも職人気質な人(悪く言えば教育を疎かにする先輩)の下についたりして育った人は、正直、使い物にならないプログラマになっている。
まず、我流スタイルを構築しちゃっていると、本当、独りで開発するような職場ならば別に問題ないけど、その先、ずっとプログラマで食べていくつもりだったら、共同作業で白い目を向けられ、更には雑用に回され、挙句の果てには「使えねぇー」て、どっかに投げ出され、アイデンティティの崩壊に繋がるような結末を辿る可能性が高い。それは、歳を重ねてSEに転身しようと、結局一緒のこと。
プログラミングをする上で、いつも気を付けないといけいないのは、シンプルであること。パワープレイで「動くから問題ねーし!」みたいなことばかりやり続けてきた人のコードは、残念ながらシンプルさに欠ける。シンプルちゅうのは、コードがシンプル、それ故、実装がシンプル、それ故、設計がシンプルちゅうことになる。まず、設計段階で「こりゃ、きっつい実装だなぁ」とか「三ヵ月後に見たら意味不明になるなぁ」と薄々気付くのならば、それはシンプルじゃないってこと。頭を回して回して、これがベストだぁ!て導いたモノが、そのうち更に洗練されたモノになる経験は誰しもがあることでしょう。だからこそ、適当に考えて、こんな感じー!て八分なアイディアには、自ら妥協しちゃいけない。究極の実装なんちゅうもんは、世の中に存在しない。だけど、究極を目指した実装は数多く存在する。その多くはシンプルであり、芸術でもある。シンプルなコードは、普通のプログラマならば即座に意図まで読み取れる場合が多いと思う。
あと、指示待ちな人や調べれば分かるようなことを平気で質問してくるような人は、やっぱり駄目プログラマな場合が多い。別に言われてもいないことを勝手にやれなんてことじゃなくて、その受動的な思考能力や、自ら状況を打破しようとする推進力ちゅうものが無いと、プログラマに不向きだと思われる。資質の問題。ここら辺は、直そうとして直る問題じゃない。そういう人間は居て不思議じゃないし、別に悪くも何ともない。そういう人を必要とする職業もあることだろう。だけど、プログラマに限っては、そのようなタイプの人の場合、周囲にも己にも良い結果をもたらせないことになるだろう。
結局、今、タイプしてきた文章を読み返すと、教育云々と言いながら、センスの問題で終わってる。
ちゅうことは、センスのある人間は、教育なんてしなくても、自ら這い上がってきて、素敵なプログラマになるとでも言いたげな。。すべてのプログラマが其ならば、どんなに楽なことか。
にしても、日本のソフトウェア産業界は大丈夫なんかなぁ。。