オールドタイプは体で覚える
わたしはパソコンに触れ始めて、それなりに長い年月を重ねたオールドタイプな人間です。初めて触ったものはシャープの「X1」という、テレビとパソコンが合体した珍しいタイプのものでした。当時はたくさんの雑誌が発売されていたこともあって、雑誌片手にプログラムを打ち込みまくって、プログラムの世界に足を踏み入れたのです。有名な「マイコンBASICマガジン」という、ややマニアな(笑)「テクノポリス(投稿プログラムを集めたプログラムポシェットという増刊とか)」がわたしの教科書でした(他には「ポプコム」ですとか「I/O」ですとか……懐かしい……)。
思い起こすと、この時代の人間にとって、プログラムの勉強というのはほとんどがこのように「雑誌のプログラムを片っ端から打ち込む」ことがスタートだったと思います。まずはそのまま打ち込んでみて、次に自分でソースを改造してみて、という行為を繰り返しているうちに、基本的な考え方が身についてきたのだと思います。また、このようにすることによって「他人のソース」に対する抵抗が薄くなり、結構なソースが読めるようになったものです。
その甲斐あってか、意識して考えるよりも先におおまかなロジックが頭に浮かぶ、または頭に浮かびながら既に手でコードを打ち込んでいる、というような状態になりました。体に染みついているんでしょうね。
ですが、今の時代を考えると、このような勉強方法はなかなか取れるものではありません。何より雑誌が発行されていないのです。オープンソースなどでソースを見ることができたとしても、そこまでやろうと思う人はかなり稀だと思います。ネットが発達しアプリケーションは物理的な媒体に保存されていなくとも、ネット上で簡単にダウンロードし入手できるようになった現在。余程の人でなければ自ら作ってみようと思ったり、ましてやソースを見てみようなどという考えには至ることはないでしょう。
そう思うと今の時代は勉強のやりにくい状況なんだな、とも思えてしまいます。今の状況で「やりやすい」と思えるのは、恐らくある程度「デキる」人なのかも知れない、とまで思えます。同じやり方で他の人が勉強できるとは残念ながら思えません。
もともと学習塾のようなところと一時期、関わりを持っていたこともあり、「教育」するということの難しさはかなり承知していると思っています。「どんな人でもその人に合った方法で教えれば必ず身に付く」というところが、いい歳になってしまった今でも深く心に刻まれています。相手が理解できないのは、相手が原因のケースよりも教える側が考えて教えていないというケースの方が多い、というのも実体験としてあります。それもあってか、今でも「わたしは物を教えるのは下手です」と公言してます(本当に下手なんですけどね)。
話がそれてしまいましたが、今のわたしが行っていることの中で、簡単で誰にでもできそうなことというのがあります。
それは「RSSで色々なサイトから見出しだけ取得しておく」ということです。細かい記事の内容は興味がわいた時だけ見ればよく、ほとんどの記事というのは見出しだけ、もしくは記事の触りだけを読めば事足りてしまうのです。新聞ですら記事の見出しだけ読んでおけばかなりの話題を入手できると思います。たったこれだけのことでも、何も目にしていないより、遥かに多くの情報が頭の中に残ります。個人的にお勧めしたいのは次のようなサイトです。
- ニュースを扱ったサイト(ここ@ITとかITmediaとか)
- 気に入った人のBlog、Webサイト
- Windows系の仕事を行っているならマイクロソフト系の更新情報
このあたりの見出しだけでも押さえておくと結構な量になります。個人的には上記に加え、ニュースなどをざっと目を通したいので、2ちゃんねるのヘッドラインもRSSで取得して目を通すようにしています。それだけのことで、時事的な話題から技術的な話題まで「さわり」は話せるようになると思います。もちろん詳細となると流石に無理ですので、あくまでも興味をもったものについてはちゃんと内容にも目を通す必要はありますが。
それにしてもRSSはネット技術の中でも個人的には1、2を争うテクノロジー(というか仕組み)だと思いますよ。その少し前ですと、ホームページの更新確認とかになるのですが、その時代ですと何かしらのソフトを利用して、更新されたかどうかを確認していたものです。RSSが一般化して、一度設定すれば後は放っておくだけで一覧として取得できてしまうのですから。素晴らしいと思います……が、このようなところに素晴らしいと思うあたり、「自分も歳をくったなぁ」と思ったりも……。
強いてもう1つあげるとすると「とりあえず手を動かす」ことですね。変に考えてしまうことが一番の障害だと思います。考えるよりもまず手を動かす。動かして何かしらのコードを書いてみる。動いたら改造してみる。これがわたしにとって一番効率の良い学習方法です。考えているだけですと、なんとなく外側からみた感覚というのはつかめるのですが、実際に利用してみて初めて気づくことというのは段違いに多いと思います。昔からの性格なのでしょうが、とりあえず打つ。打って手を入れる。そしてさらに手を入れる。この繰り返しこそがプログラマとしての最短ルートではないでしょうか? そうこうしているうちに、ロジカルな思考法や処理フロー、その他プログラマとして必要な技術というのも磨かれていく気がします。
まぁそれ以前に「楽しめるかどうか」というのもあると思います。楽しめないものはいくら手を動かしたところでなかなか覚えないものです。楽しめないならやり方を変えてみるか、割り切って「やらない」、などと視点を変えてみるのもお勧めです。
……ええ、わたしは間違いなく古いタイプの人間ですので、あまり参考にはならないと思いますけどね。
最後にこれから自分で勉強してみたい技術を何点か列挙しておきたいと思います。後日見返した時に「何を言っているんだ自分は……ッ!?」とならないよう祈りながら。
- マルチコアを有効活用するためのパラレル処理手法
- WPF等による既存UIとは異なるタイプのユーザーが操作しやすいUI(いかに入力を行わなくできるか)
- WFによるワークフロー型プログラミング
個人的に必要なのは「1」、存在から怪しいのは「3」だったりします。さて半年、1年過ぎた後に見返してみて、なんて思うことやら。
コメント
インドリ
体で覚えるって大切ですよね。これは歳なんて関係ないと思います。
私も情報処理技術全般さわりまくっています。
一つの分野に習熟するものいい事ですが、まず触らないと何も分かりません。
これは、現実を知らない上流が増えてきた背景にも繋がっていると思います。
昨今の企業は即戦力ばかり叫んで学生だよりです。
でも情報処理技術はそんな甘いものではありません。
そもそも学生レベルで通じる専門分野なんてありません。
当然、生涯学習だと考えるべきでしょう。
その当たり前の事を考えない経営者が、この業界を駄目にしていると私は考えています。
企業はもっと情報処理全般を触れさせる事を考えるべきです。
Ahf
インドリさんコメントありがとうございます。
同じ意見でいてくださるようで何とも嬉しい限りです。
私も技術者である以上、常に学び続ける必要があると思っています。少々異なるのは経営者側にも考えて貰いたいですが、私達技術者側でもそう考えて欲しいという点ですね。
インドリさんのように生涯学習と考えられている割合の方が少ないような気がしてならないのです。上に変化を求める時は、同じく私達の側も変化していくべきだと考えています。
としろう
覚える為という事では体で覚える為にやってみることは大賛成です。
しかし、これが開発などの実務になると
「とりあえず手を動かす」事は、よほど開発者本人に
「既に作ってしまった部分をきれいに直す」意思と覚悟がないと
グダグダで駄目になってしまうのが殆どではないかと思います。
その意味でOJTといいつつの勉強がてらの実務は気をつけないと
「とりあえず動けばよい」あとは力技の実装、スパゲッティプログラム化等
早いうちに悪い癖が定着しそうです。
タッチタイピング同様、下手に昔から独自で変な癖がついたのより
自分の見た例では、大学で正規のタッチタイピングから始めた友人の方が
ベーマガ見ていた世代の昔から使っていた自分より速くなった等のように。
難しい問題ですよ
Ahf
としろうさんコメントありがとうございます。
言われる通り実務が関係した場合は直すという意志と覚悟、そして直すことが出来る体制が重要になるかと思います。仕事でAPを作成する会社では最優先するのは「仕様通り動作する物」であり、一度完成したAPに対して修正を入れる事はかなりためらう(というか反対される)会社が多いのではないでしょうか。
本当であれば基礎からの教育がしっかりとできるのが最善だと私も思います。私も我流でやってきた人間ですので尚更。我流でやってきた場合、ある時どうしても壁にぶつかるというかそれ以上伸びることが厳しい事があると思っています。
本当、難しいですよね。