社会人になったばかりの頃、マイクロソフトの新人研修に使われているという本を読んだ(当然和訳)。その本のおかげで、今に続くプログラマとしての良い部分の基礎を得る事ができたと思っている。
その中でもかなり大きいと思えるものは、『年間4冊の技術書を読め』という事と、『毎年1つの開発言語を新たに習得しろ』というものだ。
ゲーム業界の一プログラマーとして働いていた頃は、この教えに従うにしてもゲーム開発に関わる分野だったので、技術書は物理系、AI系、レンダリング系といった物が中心で、開発言語はツール開発に利用できそうなスクリプト系が中心となっていた。
この時期はジャンルが偏っていたのだけど、洋書が中心とならざるを得ない状況だったので、それなりに英語のスキルが保ち続けられたという副作用もあって、まあ、よかったのではないかと思う。
一昨年に一般のソフトウェア開発会社に入ってからは、そこの会社が自社製の組込みPOSIX OSを用いていた事もあって、今までまったく知識を得ていなかったUnix系の技術、TCP/IP等のプロトコル、DIDOやシリアル通信といったハードウェアレベル制御の知識を得るための技術習得にシフトし、若い頃はなんだか分からなかった分野が知識と技術の裏づけのおかげで、仕様の意図が理解できるようになっており、一気に技術水準を上げる事ができた。
今年に関してはWebアプリケーション製作を行なっているので、XHTMLとCSS用いたDHTML、JavaScriptとPHP、MySQL、Ajaxと、これこそ今までまったく避けていたような分野に関して一気に知識を広げる事ができた。
特にJavaScriptを用いた新たな技術体系は、根本的な仕様は昔と変っていないのに、どこかの天才が『こうやると、新しい事ができる』と気がつき、それが一気にブレイクスルーとなって進歩していく事象の最前線を見ることができるので感動的である。
AjaxとJSONは人類が他の生命と比較して優位にあるのが知識と知恵というならば、まさに新たな局面を迎えるためのツールだと思えてならない。
こう振り返ってみると、やはり当たり前といってしまえばそれまでかもしれないが、マイクロソフトの教えを最大限生かすには、自分が関係ないと思っている分野の技術を習得すると決め、それに適したとされる言語を新たに習得するというアプローチが良いのだと思う。
その中でもかなり大きいと思えるものは、『年間4冊の技術書を読め』という事と、『毎年1つの開発言語を新たに習得しろ』というものだ。
ゲーム業界の一プログラマーとして働いていた頃は、この教えに従うにしてもゲーム開発に関わる分野だったので、技術書は物理系、AI系、レンダリング系といった物が中心で、開発言語はツール開発に利用できそうなスクリプト系が中心となっていた。
この時期はジャンルが偏っていたのだけど、洋書が中心とならざるを得ない状況だったので、それなりに英語のスキルが保ち続けられたという副作用もあって、まあ、よかったのではないかと思う。
一昨年に一般のソフトウェア開発会社に入ってからは、そこの会社が自社製の組込みPOSIX OSを用いていた事もあって、今までまったく知識を得ていなかったUnix系の技術、TCP/IP等のプロトコル、DIDOやシリアル通信といったハードウェアレベル制御の知識を得るための技術習得にシフトし、若い頃はなんだか分からなかった分野が知識と技術の裏づけのおかげで、仕様の意図が理解できるようになっており、一気に技術水準を上げる事ができた。
今年に関してはWebアプリケーション製作を行なっているので、XHTMLとCSS用いたDHTML、JavaScriptとPHP、MySQL、Ajaxと、これこそ今までまったく避けていたような分野に関して一気に知識を広げる事ができた。
特にJavaScriptを用いた新たな技術体系は、根本的な仕様は昔と変っていないのに、どこかの天才が『こうやると、新しい事ができる』と気がつき、それが一気にブレイクスルーとなって進歩していく事象の最前線を見ることができるので感動的である。
AjaxとJSONは人類が他の生命と比較して優位にあるのが知識と知恵というならば、まさに新たな局面を迎えるためのツールだと思えてならない。
こう振り返ってみると、やはり当たり前といってしまえばそれまでかもしれないが、マイクロソフトの教えを最大限生かすには、自分が関係ないと思っている分野の技術を習得すると決め、それに適したとされる言語を新たに習得するというアプローチが良いのだと思う。
来年は次の技術を学ぶ予定だ。
・Java 6
・Android
・Objective C
・Haskell
・Lisp
・Java 7
●Java 6
Javaも開発言語としては習得しているうちに入るのだけどバージョンが1.4の時代の仕様なので、ここで改めてバージョンアップをしておきたいと考えている。その際、EclipseとJUnitを用いた開発を、呼吸をするのと同じレベルの自然さで行なえるレベルを目指す。
●Android
Javaの焼き直しも本当の目的はAndroid習得のためだ。月額で安く使える携帯が発売されるごろまでには習得しておきたい。実は俺はクラウドコンピューティングにコンピューターの発展を視ているので、Googleに全力で飛び乗っていこうと考えているのだ。
(余談だけど、Googleのサービスはブログ以外は無理やり使ってみている)
●Objective C
iPhone系の開発環境はMacしかないのでiPhoneアプリを開発する意図はないのだけど、ちょっと仕様を見てみたらC++とは拡張部分の仕様がびっくりするぐらい違ったので、C言語の進化の一つの形として押さえておきたいという程度。
●Haskell
何度か前にも取得しようと考えていると書いた言語だけど、どうも関数型言語は絶対に業務では使わない上、手続き型言語で100%事足りるので学習する気持ちがあっても行動が起きないものだ。とはいえ、関数型言語を1つも習得していないというのは、何かの可能性を大きく失っているのかもしれないので来年こそは絶対に習得する。
●Lisp
これはもはや人生の目標だ。このLispの存在意義というか、真にLisp最高といえるシチュエーションが何かを俺は知りたいと10年以上思い続けてきた。しかし、そのつど挫折。挫折というか今更DOS時代のBASICを勉強する事に意義が見出せないと同じ程度に、LISPを学習し続ける事に意味が見出せないのだ。しかし来年は決着を付けたい。
●Java 7
このバージョンは再来年に登場の予定となる。当初の予定から開発が遅れているようだが、来年中ごろには評価SDKが出てくるかもしれないのでそれにあわせて学習をする予定。これ以降、Javaは最新のバージョンを常に押さえておきたい。
グラフィックエンジン(特にレンダリング)に関する知識の習得は、常に甘美な誘惑が漂っているのだけど、個人的におこな学習は上積よりも拡大に使うほうが良いと思うので、ここはあえて我慢しておくつもりだ。
一応、LISP習得ができたら、LISPからOpenGLを呼べるようにでもしようかと考えている。
なんとなくだけど、LISPを使ってエキスパートシステムを作る技術体系を応用することで、シェーダーの自動生成が行なえるのではないかと考えている。
そういう、意味があるんだか無いんだか分からない事にチャレンジするモチベーションとして、グラフィックエンジンへの興味は取っておきたいものだ。
・Java 6
・Android
・Objective C
・Haskell
・Lisp
・Java 7
●Java 6
Javaも開発言語としては習得しているうちに入るのだけどバージョンが1.4の時代の仕様なので、ここで改めてバージョンアップをしておきたいと考えている。その際、EclipseとJUnitを用いた開発を、呼吸をするのと同じレベルの自然さで行なえるレベルを目指す。
●Android
Javaの焼き直しも本当の目的はAndroid習得のためだ。月額で安く使える携帯が発売されるごろまでには習得しておきたい。実は俺はクラウドコンピューティングにコンピューターの発展を視ているので、Googleに全力で飛び乗っていこうと考えているのだ。
(余談だけど、Googleのサービスはブログ以外は無理やり使ってみている)
●Objective C
iPhone系の開発環境はMacしかないのでiPhoneアプリを開発する意図はないのだけど、ちょっと仕様を見てみたらC++とは拡張部分の仕様がびっくりするぐらい違ったので、C言語の進化の一つの形として押さえておきたいという程度。
●Haskell
何度か前にも取得しようと考えていると書いた言語だけど、どうも関数型言語は絶対に業務では使わない上、手続き型言語で100%事足りるので学習する気持ちがあっても行動が起きないものだ。とはいえ、関数型言語を1つも習得していないというのは、何かの可能性を大きく失っているのかもしれないので来年こそは絶対に習得する。
●Lisp
これはもはや人生の目標だ。このLispの存在意義というか、真にLisp最高といえるシチュエーションが何かを俺は知りたいと10年以上思い続けてきた。しかし、そのつど挫折。挫折というか今更DOS時代のBASICを勉強する事に意義が見出せないと同じ程度に、LISPを学習し続ける事に意味が見出せないのだ。しかし来年は決着を付けたい。
●Java 7
このバージョンは再来年に登場の予定となる。当初の予定から開発が遅れているようだが、来年中ごろには評価SDKが出てくるかもしれないのでそれにあわせて学習をする予定。これ以降、Javaは最新のバージョンを常に押さえておきたい。
グラフィックエンジン(特にレンダリング)に関する知識の習得は、常に甘美な誘惑が漂っているのだけど、個人的におこな学習は上積よりも拡大に使うほうが良いと思うので、ここはあえて我慢しておくつもりだ。
一応、LISP習得ができたら、LISPからOpenGLを呼べるようにでもしようかと考えている。
なんとなくだけど、LISPを使ってエキスパートシステムを作る技術体系を応用することで、シェーダーの自動生成が行なえるのではないかと考えている。
そういう、意味があるんだか無いんだか分からない事にチャレンジするモチベーションとして、グラフィックエンジンへの興味は取っておきたいものだ。


