プログラマが満たすべき最低基準ってなんだろ?
今、新人がいてOJT期間中ではあるのだが、慇懃無礼な教えてサンで、正直ウザい。(オイラは指導員じゃないので直接関係ないからどうでもいいのだけれど)
うちの会社(ITドカチン系)は、なんでこんなにも何の知識もない人間を採用するかなと疑問に思う。
じゃあ、プログラマになるのに何が必要なのかなと考えていたところ、人気のはてなブックマークにayato0211さんのブログ (define -ayalog ’())に「プログラマが満たすべき最低基準って?」ってエントリが挙がっていた。
まあ、こちらは、古参のプログラマがJavaの参照渡しについて、今更ながら知ったということで、「言語仕様も知らんのか」とか言われているらしい。
んで、ayato0211さんは、いつでも知ることは素晴らしいと。
然り。
言語仕様をすべて知ることはできないだろうし、知る必要はない。まずは、プログラムを作るのに必要な仕様を知って、必要な時に必要な勉強をすればいい。
そりゃ、いろいろ知っておけば取れる手法の幅が広がるから、知っておくことに越したことはないけどね。
まあ、それはそれとして「プログラマが満たすべき最低基準って何だろう」という問いに対しては、どう答えるべきか。
その前に「プログラマ」の定義は?
→”プログラムを作る人”ですね、ハイ。
んじゃ、「仕様をソフトウェアとして動くようにプログラムに落とし込める人」ってことになる。
となると必要な能力は、システムの仕様を理解できる能力、言語仕様を理解でき、それをプログラムを作るのに活用できる人ってことかなあ。
うーん、これはこれで正しいと思うけど、なんか漠然とした感じだし、語りたかったのはこういうことではない。
「プログラマになるために必要な資質」と問い直すべきか。
プログラマのお仕事としては、新規に作るのと、保守の2つがあるわけで。必要なスキルはそれぞれあるわけだけれど、でも、根柢のところは同じかなと。
んで、その根底というのが”プログラマが満たすべき資質”。
オイラが考えるに、それは「事象を不思議に思い、なぜかを問い詰め、調査し、理解できる」だと思う。
プログラムを作るうえで念頭に置かなければならないことは、「コンピュータシステムは、すべて理詰めで動いている」ということ。
決して、魔法ではない。
一つ狂うと、正しく動かなくなる。
そして、よく間違う・・・。その間違いを、動作などから推測して修正を行わなければならないのだが、それには”何となく”ではなく、理解してから修正しないと、またバグを作りこむことになる。
保守だけでなく、新規開発でも同じ。
動作や仕様について疑問を持ち、その意図はなにかをつかみ、理解して、修正なり開発なりを行う。
まあ、仕事ですから、一般的に必要な資質は。
・仕事に好奇心を持つ(主にモチベーション維持)
・作業についての知識を得る。
・コミュニケーションをとる(自分ひとりの知識だけではすべてをカバーできない。そのためにチームで作業する意味がある。)
さて、冒頭で書いた新人はどうするべきか。
新人の質問は「これはなんでエラーになるのですか?」とか「これの意味がわかりません」とか、その対象物に対する質問しかできていない。
指導員の答えも、質問に対する答えしか与えていない。新人は経験がないから、何を質問していいのかわからない状態なので、しょうがないのだけれど。でも、これでは成長しないし、教える事に時間をとられてしまう。
学校じゃないから、教えることは即座に利益にならない。将来の戦力となることを期待して教えているわけなのだが、新人は(指導員も)そこに思い至っていない模様。
どうすればいいか?
新人は自分で調べなければならないし、指導員は学校ではないのでちまちまと教えることが義務ではないし利益にならないことを伝え、自ら調べなければならないし調べ方を教えなければならない。
そして、ちまちましたことを聞くよりも、なぜそうなのかを調べることをしなければならないことを伝えるべきだ、と思う。
« おじいちゃん、なんかわいているんじゃない? | トップページ | 今週届いたもの »
コメント