SSブログ

業務を通した学習の落とし穴 [プログラマー現役続行]

拙著『プログラマー現役続行』では、「業務を通した学習の落とし穴」(110頁)として次のように述べています。
 新たな技術を習得するのに最も効率的な方法は、業務で使用している技術について学習することです。業務で使用していますので、すぐに業務に役立ちますし、多くの時間その技術に接しているため、効果的に学習することができます。
 業務を通じての知識の蓄積は効果的なのですが、落とし穴もあります。それは、業務をこなすのに最低限必要な事柄だけしか学ばないで終わってしまうことです。
業務で使用する技術が自分にとって初めての場合に、その技術を学習方法には、大きく次のどちらかのパターンに分かれるのではないかと思います(極端な分類ですが)。
  1. 初心者本を買ってきて、それを読んで、あとは、詳細を理解することなく、他人のコードをコピー&ペーストしてソフトウェア開発を行う。
  2. その技術のバイブルとなるような書籍を探して、それを読んで、技術の詳細まで学ぶ努力をしながら、ソフトウェア開発を行う。
業務で使用する新しい技術の経験はなくても、その技術習得のための態度が重要です。(A)と(B)の差は、非常に大きいです。たとえば、社会人になって5年目の人を考えてみると、(A)で5年間過ごした人と、(B)で5年間過ごした人では、大きな差として現れます。それをソフトウェア開発組織に適応してみると、物凄い差となります。

つまり、(A)で5年間過ごした人ばかりの集団は、(B)で3年間過ごした人の集団に絶対に負けます。それは、可読性も含めた作り出されるソフトウェアの品質に大きな差となって現れ、結果として組織としての生産性の大きな差となります。

たとえば、仮に20名のソフトウェアエンジニアから構成される開発組織でJava言語を用いた開発だとして、そのほとんどの人が『プログラミング言語Java 第4版』『Effective Java 第2版』 を読んでソフトウェア開発をしている場合と、どちらも全く読んだことなく単なる初心者本だけでしか学習したことがない場合では、必然的に大きな差となって現れてきます。

前職で2000年に始めて、今年の8月まで継続していた「プログラミング言語Java教育」は、今振り返ってみると(B)を経験させる教育だったと思います。

(「Don't Live with Broken Windows」)
nice!(1)  コメント(2)  トラックバック(0) 

nice! 1

コメント 2

Shou Takenaka

はじめまして。最近このブログの読者になった者です。

そうだよなぁ~、とすごく共感する投稿でした。
チーム全体の力の底上げには、やっぱり一人ひとりが深く学ばないといけないわけですが、チームを変えていくというのは難しいですね。何とかしたいとは思うんですが、なかなか。とりあえず、自分自身がレベルの高い技術者になっていけば、周りにいい影響を与えることにもなるだろうと思って努力してます。
by Shou Takenaka (2009-09-23 09:40) 

Yoshiki

Shou Takenakaさん、

ブログを読んでくださり、ありがとうございます。

一人一人が努力するということがなければ、チームの底上げは難しいのはその通りだと思います。そして、そのようなチームを作り上げること、つまり、チーム(あるいは組織)のカルチャーを変えるのは、容易なことではないですね。

おっしゃるように、まずは自分自身の技量を高めていく必要があります。そして、その後は、自分が知っている事柄でも、教えたり、勉強会を開催したりして、若手の育成を意識して継続していかないと思います。

もし、回りが同じ年代の人が多いのであれば、何らかの勉強会を主催して一緒に勉強するという習慣を定着させるということでも良いかと思います。
by Yoshiki (2009-09-23 20:32) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0