トップコンテンツプログラム>プログラム歴とか



プログラミング歴とか


上から順に、

  1. HTML (プログラミング言語?)
  2. JavaScript
  3. C 言語
  4. C++
  5. Java
  6. その他諸々

といった感じです。以下、プログラミング関係について、学習歴と各プログラミング言語への個人的意見を。


まがりなりにも始めてプログラミングに触れたのは (確か)中学2年の時。
友人がホームページを作ったのがきっかけで「“自分”もホームページ作りたい!」と思い、父に HTML の文法の初歩を教わり、父が持っていた HTML の本やらネット上の情報を参考にホームページ作りをしていたのが最初。
その後ホームページ作りに凝り始めた結果、「CSS」とか「JavaScript」にも興味が出始め……という流れです。
と言っても CSS と JavaScript は、当時はソースのコピペとか勘とかだけで扱っていましたが。

そんな感じで高校卒業までには HTML は一応マスター,
CSS と JavaScript は……使えないこともなくはない、かな?というレベルでした。
その後大学に入って、1年生から C 言語を学びました。
まあ、現在はある程度は扱えるレベルにあると、“自分”では思っています。
というか、C 言語をやって始めて、CSS と JavaScript のコードの意味を理解出来ました。

次に大学2年の後期(10月~2月)に、とある授業で「Java」を学びました。が、個人的にはあんまり。
関数名とかクラス名が異常に長いものばっか, いろんな関数を使いたい場合にも System.out.print みたいな形でうじゃうじゃ長い! みたいな理由です。オブジェクト指向だからそれが普通なのだろうか……。
そういえば JavaScript も、関数は document.write みたいな感じだし似たようなものか。
それでも、やはり Java はクラス階層がかなり深い気はする。

そして Java と同時並行で学んだのが C++。
これも Java とは違う意味でめちゃくちゃ複雑。だが出来ることは多い。
「C++はオブジェクト指向型言語じゃないだろ!」みたいな事を言う人もいるようですが、まあ、あれでいいんじゃない?と個人的には思う。
ただ、仮想関数は少しわかりにくい。Java は virtual なんかつけなくてもオーバーライド出来たので、最近まで戸惑っていた。
普通は 「virtual がついてる = オーバーライド OK」という感じで何の疑問もないんだろうけど、個人的に戸惑った。
ともかく、個人的には C++ はそれなりに使いやすいと思う。
ちなみに現在は主に C++ でプログラミングしていこう、と考えております。

その他、Windowsのバッチファイル(PowerShell使えよ!)だったり, AppleScriptだったり, Python, Scheme, Prologなんかも、軽くなら触りました。なお、ほんとに軽くです。

他にも、個人的にはメッセージ重視のオブジェクト指向, 関数型言語, アスペクト指向など様々なプログラミングパラダイムに興味があります。
今後習得したいプログラミング言語としては、Mac 好きという理由で Objective-C, 他にはPython, PHP, D 言語とか。
ただ、Python は 2 から 3 への移行が途中段階で、いくつかのライブラリが 3 に対応してなかったりするのでちょっと検討中。
D 言語は assert を知った後、「契約プログラミング最高!」という流れで知った言語で、見てる感じだと機能豊富で使いやすそうなのですが……ちょっと仕様変更の頻度がありえないぐらい多いからなぁ……ちょっと手を出しにくい。
うーむ、難しい。

ここでちょっと変なのが、一番最初にオブジェクト指向を学んだのが JavaScript,
そしてその後、初めてプログラム言語( HTML除く)を本格的に学んだのは C言語、という学習順。
箇条書きで書くと、

プロトタイプ型という、どうやら特殊な部類らしいオブジェクト指向

半分アセンブラ, 半分高級言語扱いの C (手続き型言語)

C++ 式オブジェクト指向(それなりに)

Java 式オブジェクト指向(あっさり)


なんだろ、これ。色々歪んでるなー。
まあ今の時代、似た流れでプログラミングを学んだ人もそれなりにいそうだが。