OKの日記

アヒャヒャヒャヒャとしか・・・

僕のプログラミング習得記

Geekなぺーじ : 初心者はプログラミングをどうやって学ぶと良いのだろうか?
304 Not Modified: プログラミング初心者はギークから学べるのか
404 Blog Not Found:いきなりCの方がよっぽど難しい
Geekなぺーじ : プログラミング学習に求められるのは夢と想像力かも

このあたりの一連の流れを受けて。ふと思った話。

まあ見ていて自分がどういう言語の習得順序だったかとか、ずっと前から書きたかったことを書く格好のチャンスだと思っただけなんですが、一応21世紀にプログラミングを完全我流で習得した人間としての意見でもあります。

さて、その違う部分についてだが正確に言えば自分は、

ほんの少しJava→少しHSP→少しC→わりとHSP→わりとPerl→わりとHSP→かなりPerl→わりとAction Script→かなりPHP→かなりC→わりとScheme→かなりC(今ココ!)

とかいう、非常に謎の流れをたどってる。

まず最初のほんの少しJava、ではコマンドラインとか環境変数とか、そういう非常に基本的な物について知った。自分はWindows XPからPCを始めたような人間だったから、そういった事柄は当たり前とはほど遠いように思えた。でもmanameさんが書いてるように、Javaのオブジェクト指向についてはさっぱり理解できなかった。まあ当時私がまだ小学3年とかだった事を考えれば当然のようにも思える。基礎的な理解力が今とは全然違うし、当時はJava本の漢字が何割方読めていたかすら不明である。

そして、使い方すらよく分からず、プログラムを書くと言われても何を書けばいいかすら分からなかった当時の私はHSPを知って、次の少しHSP、に突入する。
HSPというのはハッキリ言って粗悪言語で、言語学習の観点からいくと、論外と言わざるを得ない。今でこそ少しはマシになったが、当時はかなり酷かった。インデントをしないコードを書くのが当たり前という異様な世界だったし、それに関してMatzが噛みついていた記憶がある。しかし、たしかに高度なIDEも何もないHSPでは、UI部品をフォームで配置していくなんて事はできなかったけれども、インデント無しのコードでUIを考えていくというのは、当時の私にとってはコマンドラインにHello worldとか書いて遊ぶ事しかまともにできないように思えたJavaなんかに比べれば、余程面白かったから、そこでプログラミングの楽しさに気付いたと言ってもいい。そういった点ではHSPは評価できる。
ところが大抵の人はここで道をそれてHSPでインデント無しの何かを量産する行為に走ったりするのであるが、私は運良くそこで「C言語というものをやればさらにすごいプログラムが書ける!」などという謎の思い込みだかによって、C言語について一通り学習する。

その少しC、であるが一応変数や配列についてはJavaやHSPの通りだったし、何故かポインタも自然と受け入れられた。だから私はポインタでつまずく人の心理というのがよく分からないが、C言語は今思えば悪書が書店に溢れていた記憶があるので、これはハッキリ言って運かもしれない。
しかし、やはりコマンドラインに何か出すだけの行為に当時の私は意義を見いだせず、再びHSPに戻ることとなる。

その次はわりとHSPをやっていた。相変わらずインデントもせずに遊んでいただけのようにも見えるが、仕方がない。
しかし、一応の形になるものを作ることはできるようになっていた。気がする。

その次はふとしたきっかけで、掲示板を設置したいなどと思って、一行掲示板たいやきライトを設置して友人と遊んでいたりしたのだが、次第にPerlプログラムをいじったりしたくなって、たいやきライトのソースを読んだりしながら一応のPerlの書き方を覚えた。
そして友人達としばらくの間自分で設置した掲示板で結構遊んでた気がする。スクリプトをいじってもあまり友人からの反響とかはなかったのだが、当時の私は自分が少しでも手を加えた物を友人に見てもらえるだけで結構嬉しかったので、Perlスクリプトいじりに結構長い間はまってたりした。これがわりとPerlという奴である。

それと平行して、相変わらずHSPで汚いコードを書いたりするのだが、HSP本体のバージョンアップもあり、また多言語を一定量習得したこともあって、次第にHSPの汚い部分をいかにきれいに書くかだとか、そういった事に精力を費やすようになり、何かお題を出されればささっと一定度まとまったコードをHSPで書けるくらいになっていた、と自負している。今でもHSPは他の人より遥かにきれいにコードを書ける自信がある。

その後がいよいよネットで香ばしい人とか言われはじめた頃である。
黒歴史である2ch避難所の開設、無駄に1からPerlスクリプトを書くという行為に及び、かなりキチガイのような目で見られつつも、XSSやらなんやらへの耐性をここでつけたりした。様々な面でツッコミ所や痛々しい所だらけで、しかもオチは最悪なので、当時を知っている人は絶対に触れて欲しくないあたりであるが、正直当時各板への宣伝を呼びかけた結果、かなり全板に行き渡っていたようで、たまに当時のレスがまだ生きている過疎板のスレなどで当時の宣伝とそれに併記されているうちの自宅サーバーのDDNSアドレスを見ると、非常に申し訳ない気分になる。

さらにその後Perl等に味をしめた私はキコキコ動画(α)と称してニコニコプレイヤーのUIをまねたFlashインターフェイスをFlex 2で組むなどして、ZAPAの人に取り上げられるなどしたが、とくにプレイヤー部分の実装が酷かったので使い物にならない感じだったのもあって、あまり流行らなかった。

全盛期がその後の、ニコニコ動画本家プレイヤーの流用実験、キコキコ動画(MX)である。Perlによってニコニコ動画のコメントサーバー側の実装などを再現した物だったのだが、最も注目されたのがニコニコ動画(RC2)時のプレイヤー流用である。
その時、ちょうどバージョンアップのメンテナンス中に本家がまだ稼働する前に、本家の最新プレイヤーを流用して、本家のメンテナンス終了を今か今かと見守るスレに投下したのだった。
それがわりとウケたようで、それである程度注目されて声がかかったりしたのをきっかけにTwitter始めたりして、それでかなりモチベーションは向上して、サーバー側の処理言語をPHPに移行させようとPHPを勉強したりして、結構オブジェクト指向なPHPのソースをかけるようになったりはしたが、PHPのオブジェクト指向ってのはわりとアレだったというのが感想。

それからflvからmp3抽出するソフトをCで作ったりして、結果的にCがそこそこ書けることに気付いた。

↑の途中にSchemeとか書いてあるのは、一応小飼さんのブログで最初にSchemeみたいな事が書かれてたから。
Schemeは面白半分で初めてそこそこ書ける気がするけど、まあ要するにあんなものを最初にやるのはアレだとか、そんな感じの意図ですね。

まあ結論として、プログラミング学習に王道なんか無いって事です。

おもしろい。続き希望

>>hogelog
書き終えました。

将来oksoftwareの伝記が執筆されるときには重要な記録となるでしょう

はい

コメントの投稿

管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://oksoftware.blog52.fc2.com/tb.php/1058-a578f9b4

Re:僕のプログラミング習得記

自分の経過とかなり似てると感じてビックリした件について。 ほんの少しJava→少しHSP→少しC→わりとHSP→わりとPerl→わりとHSP→かなりPerl→わりとAction Script→かなりPHP→かなりC→わりとScheme→かなりC(今ココ!) 僕のプログラミング習得記 : OKの日記 自分は、