2010年10月19日火曜日

学問と事業の境界

絶賛凹み中の筆者です。
いつまでもこの状況というわけでもない・・・ 事に希望をつなぐのみです。


今日の話題のきっかけは、来年の新人研修の内容についての相談でした。
プログラミングについて、何を教えようか? というのが大まかな内容だったのですが・・・
筆者は大学では古典的なプログラミング通論を学び、それをベースにしてここまできているので、ついつい
『スタックとキューの概念は共通認識』
とか
『ソートのオーダの問題は一般常識』
などと危険なことを考えてしまいます。

これは一般的なIT技術者(ソフトウェア開発系)の一般常識ではないのが現状なので、あくまで学問としての常識でしかありません。
本音を言えば、比較的整列されていることが予想されるデータと、全くのランダムに入ってくるデータとでソートのアルゴリズムを変えるくらいはしてほしいところですが、本気で期待してはいけないという割り切りをしています。
(データベースにソートを任せるほうがトータルで速いというのが主流というのもあります。メモリやオーダを意識せずにコーディングできるのが良いか悪いかは保留します)

新人研修、というと、ほぼ大学の1,2年次の講義内容と同じ事をやっておけばそれなりにコーディングできるようになるわけで・・・
実際に、筆者の学生時代の同学年(情報工学科180名)のうち約半数がパソコンを持っていなかったりパソコンを使ったことがなかったりした人だったのに、1年間で8割くらいがちょっとしたプログラムを書けるレベルになっています。
え? あとの2割はって?? どこでも、課題やノートを写す人は居るものです^^;
あるテスト前の日に、顔見知りですらない人に「ノートを貸して欲しい」と言われて、あまりの集約記述(要するに細かく書きすぎで字の汚さが目立たない書き方です)ぶりを見られるのが嫌さに断ったこともあります。

学生の1年間=30~40コマ=45~60時間(演習時間除く) となりますので、新人研修で言えば1ヶ月もあれば十分に同じ分量のことを学べます。
が、ここで学問的に必要な基礎と事業で必要な基礎の差を考えねばならないわけです。
正直、教養としてデータ構造(スタック・キューなど)やソートの種類と特徴はおさえておきたいのですが、実際に仕事で使うのかと言うと・・・ 技術文書を読む際に出てくるかどうか? というレベルです。
使わないから必要ないのか・・・ と言うと、これまた違って。教養とは何ぞ? という議論になってきます。
ある程度の割り切りは必要ですが、今使っているもののルーツを知ることは本質を知ることに不可欠でもあります。

と、いうように考えていくと『必要』『不要』が目まぐるしく変わって悩みが深くなる一方です。

とりあえず、パズルのノリで原理を知らずにコーディング、というのを回避できるくらいの内容を揃えたいなぁ、と思う次第だったりします。





特にjavaはいろいろな要素の寄せ集め状態の為に、いい年をした技術者でも説明が十分にできないケースもあったりなかったり。
筆者はその辺の曖昧具合ゆえにjavaとは距離を置いていた時期があります。
(その割りに、フレームワークになるとガチガチなのです・・・ 定型のものを作るには便利だけど、ちょっとでも外れるとやたらと影響が大きくなると言う特徴があります)

ソフトが無料のものが多いので安上がりに済むのは明らかなのですが、人件費が大きくなるケースが多いのではないかな?
と思ってしまうSE7年目の秋でした。

0 件のコメント:

コメントを投稿