今日はこちら
木漏れび日記:C
C言語を学ぼうという方。
Javaにせよ、C#にせよ、今日使われる言語の基本形とも言えるのは、C言語。
PlayStationのゲーム開発もできる!と聞いたときにはやる気が起きた覚えがあります。
というわけで、C言語を覚えるのはとても有益なことです。
…しかし。
たとえば、何かソフト開発しようと思う。
Visual Studio .NETでもいい。JDKでもいい。
いずれにせよ、今ある環境では、ハード・ソフト間の具体的な知識が乏しくとも、
簡単にプログラミングできてしまいます。
これは、プログラムの本質的な理解を阻むことになり、
結果、優れた開発者を減らしていくのではないかと懸念してしまいます。
> UNIXのことがよくわからないからだ。
彼はそう言っていますが、C言語を理解するには、まずOSが何たるかを知る必要があります。
私の持論でいけば、
他の言語を幅広く理解するにはまずC言語(ここでは文法だけでも)理解が必要になります。
ということは、順序としては、
OS、C言語、その他Cに似た言語という具合に勉強しなければならないのではないかなと。
そうすれば、優れた開発者になれるでしょう。
長くなりましたが、まだまだ長くなります。(´Д`
優れた開発者、というのは、視野が広い。
つまり、幅広い知識・技術を持ち、どんな環境においても
実力が発揮できる人のことを言うのだと思っています。
「私はJavaを知っている、けれどC#は扱えない」
たとえば、こういう人が適応力、というか応用力があれば、
「JavaとC#の似ている点を探して、自分の理解しやすいように習得する」
となり、より効率的に技術を習得できます。
まあ、これはあくまで私の想像のなかの一例でしかありませんが。
> 時間はかかるが、いつも独学で何でもやろうとするから、失敗も多い。
人から習うと、知りたい部分だけ教えられ、それだけで完結してしまう。
一を聞いて十を知る、というタイプの人ばかりならよいのですが。
独学の場合、(私も全てが独学です)
十を知るために一を知る。
これが基本なのではないかと思ってます。
で、十を知った時、他の分野の事を二、三くらいまで理解できてしまっている。
それが自分が今関わっていない分野であろうとも。
話を戻します。
今述べたような事をC言語にあてはめると、
OSを理解できた! = C言語がどうやって動くものなのか、など十のうち数ステップは理解できる。
C言語を理解できた! = JavaやC++、C#などの基本的な文法や開発手法、など以下略。
Javaを理解できた! = オブジェクト指向の言語へその概念を応用できる、など以下略。
PG言語を覚えるということは、コンピュータを知る事と同義。ぽいです。
これからPG言語を覚えようという方、この話を覚えておいて欲しいなと。
それで、意識して勉強していれば、
それは特定の言語のみならず、"プログラミング言語"を覚える事につながるのではないでしょうか。
うーん、良い事言ってるふうで、そうでもない。