プログラミングはどうやって勉強するの?
2006.08.31
プログラミングはどうやって勉強するのでしょうか?僕の働いているアリエルという会社では、今まではプログラミング経験者しか開発としては採用してきませんでした。けれども、最近は経験者以外も受け付けようと言う風潮になってきています。
そこで、そのような未経験者にどうやってプログラミングを教えるかという問題になってきます。今いる開発者はほとんどがプログラミングを始めたのが十数年前のティーンネイジャーのころからです。趣味でプログラミングを始めた人と、職業的にプログラミングをしなければならない人では、勉強方法が違ってくるかもしれません。でも、もっと根本的なことでいうと、今いる開発者の人たちは、どうやってプログラミングを習得したか、覚えていません。これから始める人は、どうやってプログラミングを勉強するのでしょう?素朴な疑問です。
「変数は箱で、箱の中に値をいれて・・・」とか、「動物クラスがあって、その派生クラスにわんちゃんクラスとねこさんクラスがあって・・・」という風に教えるものなんでしょうか?遠い過去をさかのぼると、ロータスには新人研修というものがあったような気がします。でも、悲しいことに新人研修のときは別のことをこっそりやって遊んでいて、内容は「???」。あのときの同期の人たちはどうやって勉強していたのでしょう?
さらに遠い過去、プログラミングを始めた当初は、なんかの本を読んで、後はわけもわからないまま、大量のサンプルコードを打ち込んで、時々サンプルコードを改造したりしていたような記憶があります。十代の時間が沢山あったころだからできたことかもしれません。
つまりは、どうやって勉強すればいいんでしょうね?
投稿者 : 大谷 弘喜 | 投稿日時 : 2006.08.31 13:53
だって、それが嫌いだから・・・
2006.08.29
ソフトウェアを作るときに、どのプログラミング言語で作るかとか、どのライブラリを使うかとか、考えなければならないこと、決めないといけないことが沢山あります。
既存のプロジェクトに機能を追加する場合などは、必然的に今まで使っていた言語を使うことになるのですが、全くの新規の場合は、自由に言語を決めることができます。最近Webアプリケーションでは、大きなプロジェクトではJavaが主流かもしれませんが、PHPや昔ながらのPerl、最近流行のRubyなど選択肢は沢山あります。Pythonも日本でもようやく盛り上がりを見せつつあるかもしれません。
自由に決められるからといっても、制約はあります。たとえば、開発人員の確保や言語自体の安定性、問題が発生したときの情報源の量など、調べないといけません。でも、最終的に言語を決めるものは、その人のモチベーションなのかもしれません。別の言い方をすれば、好き嫌いです。
僕の場合、開発言語にJavaを選択する場合は、
- Javaは実質業界標準だから問題が発生したらJavaのせいにできる
という消極的な理由です。それ以外の理由には全くありません。
では、絶対にしない選択は?Perlを使用することです(昔は仕事でPerlのコードを書いていたこともあります)。理由は嫌いだからです。言語の良し悪しじゃないです。Perlの魔術的な書き方が好きにはなれません。Cのようなポインタをにおわせる構文や無理のあるクラス定義など、嫌いな要素は沢山あります。
PHPも宗教的な理由で好きではないです。
結局、言語の選択基準としては、好き嫌いや、なんらかの逃げ道を用意するためだったりして、それだけだと説得力がないので、ライブラリが豊富だとか、いろいろな付加価値で着飾って、それっぽく見せます。
これから、.Netフレームワークで開発を始めようとしているプロジェクトがあったら、きっと、それは、プロジェクトマネージャが.netでやってみたいだけかもしれません。僕は、今のプロジェクトを.netでやってみたかったけど、逃げ道を用意することを選んでしまいました。
投稿者 : 大谷 弘喜 | 投稿日時 : 2006.08.29 16:02
34歳おじさん職業プログラマと18歳ハッカー君の出会い
2006.08.22
ちょっと前の話になりますが、34歳おじさん職業プログラマと20歳ハッカー君がXPで言ところのペアプログラミングをしました。おじさんプログラマは10年以上この業界でプログラマとして働いています。10年間以上まがりなりにもこの業界で働いてきたので、それなりの自信は持っているようです。
ペアプログラミングして、34歳のおじさんプログラマは自分との実力の差に驚愕していました。10年間の実績が数年のプログラマにあっさりと抜かれてしまっていたのです。普通のプログラマとハッカーと呼ばれる人の間には10倍以上の生産性の差があるといわれたりします。僕は別に数字が重要だとは思っていませんし、どんなハッカーでも万能ではないと思っています。なので、ハッカーにも実力が発揮できる分野とそうでない分野があり、ペアプログラミングしたところは、たまたま、ハッカー君のフィールドだっただけかもしれません。
それでもその実力差は歴然としていて、その原因はいろいろ言われたりします。僕はその原因は基礎力だと思っています。
Googleで検索すれば、大抵のことはコード付で説明があり、そのコードを理解していなくてもコピーペーストして若干の修正や試行錯誤すれば期待通りの動作になったりします。そのとき、なぜそうするのか、どうなっているのかということを理解しようとするかどうかが実力の差に反映しているのだと思います。知識やテクニックも重要ですが、それらはすぐに忘れたり、検索すればすぐに見つかります。知識やテクニックの背景にある考え方やパターンをもうちょっと考えてみることが大事なのかなと思う今日この頃です。
投稿者 : 大谷 弘喜 | 投稿日時 : 2006.08.22 11:30
夏休みはいつ?
2006.08.17
残念ながら、IT業界の開発者は夏休みをとる間もないほど忙しいということはないです。ちょっと夏休みの時期が他の人たちとずれているかも、というお話です。
世間一般では、夏休みは暑いときにとるものです。大体、お盆の前後に集中するので、その時期はどこも込んでいて、さらに、旅行をするにも高いです。開発する人は直接顧客や他の会社と接触する機会が少ないので、わざわざ高いお金を出してまで、人でこみあったところに行く必要はありません。ほとんどの人は8月じゃなく、その前後に夏休みをとります。それ以外にも9月に製品をリリースするときなどは当然、8月が忙しくなるので、9月以降という話になってしまいます。これは、今の職場に限った話ではなく、ロータスにいたころもそうでした。アリエルという会社はロータスの出身者が作ったので当然なんですが。
さて、社内の規定では夏休みは7月から9月の間ということになっています。でも、9月末に製品をリリースするときは、9月一杯忙しくなります。そういう時は、例外的に10月とかに夏休みがとれるようになっています。(もう夏休みじゃなくって、秋休みですが)
これが、さらになし崩し的になってきて、いつの間にか、夏休みはいつとってもいいと勘違いする人も出てきます。それでも夏休みを12月にとるというのはまだいいのですが、人によっては3月にとろうとします。秋も冬も通り越して、それは春です。その人は、3月にとった後、8月に夏休みを取りました。一年に2回?ハッカーの美徳は、周りに左右されず自分の道を貫くことなので、それもありなのかもしれません。
というのが去年までのしきたりで、今年からは規定とおり取らなくてはいけなくなってしまいました。僕はというと、子供が小学生なので、8月に夏休みをとらないとどこにもいけなくなってしまいます。
投稿者 : 大谷 弘喜 | 投稿日時 : 2006.08.17 21:03
さて、変な職場から
2006.08.14
世の中ではデスクトップとしてのOSはWindowsのシェアがほとんどを占めています。僕の働いている会社の開発という部署でも、Windowsの占める割合は大きいですが、それと同じくらいLinuxというものが暗躍しています。シェアの割合としては、Windows対Mac対Linuxで大体、4対1対5ぐらいです。サーバも含めるとLinuxのシェアはさらにあがります。
Linuxユーザの人に聞いてみると、「Windowsは難しくてよくわからない」という反応が返ってきます。このあたりの常識は世間の人たちとかなりずれています。
Linuxユーザの人のモニタを覗き込むと、デスクトップ環境というものがセットアップされています。大体がGNOMEですが、一部KDEというものも使っている人がいます。これらは、Linuxをインストールしたときにデフォルトで設定されたもので、彼らにとってはあまりこだわりがないようです。
さらに彼らのモニタを注意深く観察してみると、アプリケーションは多くても4か5個ぐらいしか動いていません。よく動いているアプリケーションは、
- Webブラウザ
- メーラ(一部emacsをメーラにしている人もいます)
- emacsというテキストエディタ
- Eclipseという開発環境
- コンソール
頑固な人たちは、いまだにEclipseではなくemacsを使い続けようとしています。古くからのemacsの信奉者は、半ば強制的にバイトの学生たちにemacsを布教しています。
作業を見ていると、emacsかEclipseでソースコードを書いて、コンソールに難しそうな呪文を入れて何か作業をしてます。マウスも使うことがあるようですが、ほとんどがキーボードからの操作です。
おかしな人たちが日夜、開発にいそしんでいる変な環境です。これから、そんな現場からのお話が続けられたらいいな、と思っています。
僕はそんなおかしな職場のLinuxユーザの一人かもしれません。
投稿者 : 大谷 弘喜 | 投稿日時 : 2006.08.14 10:20



