中の技術日誌ブログ

C#とC++/CLIと
VBと.NETとWindowsで戯れる
 

目次

Blog 利用状況

ニュース

自己紹介

東京でソフトウェアエンジニアをやっています。
お仕事大募集中です。
記事執筆や、講師依頼とかでも何でもどうぞ(*^_^*)
似顔絵 MSMVPロゴ
MSMVP Visual C# Since 2004/04-2013/03

記事カテゴリ

書庫

日記カテゴリ

00-整理

01-MSMVP

どうやってプログラムを学ぶ?

がるさんがプログラムを学んだ方法で書いてます。

http://d.hatena.ne.jp/gallu/20090223/p1

…一番初めに組んだっつか打ち込んだプログラムは、多分こんな感じだったと思うです。

言語はN88 BASIC

10 FOR I=0 TO 100 STEP 10

20 LINE (0,I)-(I,100)

30 NEXT

シチュエーションは…あまり好ましくないので省略*1

まぁ。とりあえず打ち込んだらグラフィックが出るですよ。なんとなく格好いいですよ(おいちゃんのセンス的に)。

で。

STEPの値をちょっといぢると、またその網目の密度が広がったり狭まったりするですよ!!

ここで多分重要なのは。

「初めての人でもごにょごにょできる程度にシンプルで単純でプログラム量が少ない」事。

いきなりン千行とかあったらめげるでしょ?

プログラム初学の時にはHello, World と相場は決まっているけど、その次の手がじつは結構大がかりになってきたり、いきなりイベントドリブンだったり。たしかに改造する覚え方には向かない。

何十行何百行っていうプログラムから「とりあえず自分がごにょりたいところ」を探してごにょってる内に、何となく「プログラムという文法」に慣れたんだな。わからないなりに。

…もの凄く怪しい知識なので不安なんだけど。もしかしてこれって「乳幼児が言語を覚える過程」に似ているのではないかしらん?

ステップアップして、しかも改造出来て、なおさらゲームも出来てしまう。

そんなソースを繰り返し解くことはひとつの教育モデルになり得るかもしれない。

こういう事を考えると、セキュリティ対策コードなんてやっぱり勉強始めるには邪魔なコードなんだよねぇ・・・・

投稿日時 : 2009年2月24日 0:26

コメントを追加

# re: どうやってプログラムを学ぶ? 2009/02/24 0:55 倉田 有大

昔のBASICはコードが行番号通りにながれて、直感でつくれたんですけどね。
初めてのVisual C++では、メッセージループやイベントの意味がわからず、挫折しましたね~

ある意味今の方が難しいかもしれませんね。

>「初めての人でもごにょごにょできる程度にシンプルで単純でプログラム量が少ない」事。

>いきなりン千行とかあったらめげるでしょ?

MFCなんかブラックボックスのソース行ができすぎるし、
APIだけで窓だそうとしたら、それだけでも何十行。
挫折するな~普通は。

# re: どうやってプログラムを学ぶ? 2009/02/24 9:07 インドリ

ボクの場合は本格的に学び始めたのがVB4だったから、逆に隠蔽されている部分が知りたくて、プログラミングWindowsを読んで100行ぐらいの基本プログラムを見てときめきました。
ページをめくるのももどかしい、あの興奮は今でも覚えています。
最近あのときめきが感じられないんですよね・・・
今の人は「土台が出来すぎて」プログラミングの面白さが感じられないかも。
OS自作入門の様な本がもっといっぱい出版されたら、どう学ぶかなんてどうでもよくなっていると思います。
だって、ボク未だにどう学ぶかなんて考えた事ありませんもの。
プログラミングを上達させるのは、「どう学ぶ」なんていう小手先のテクニックではなくて、パッションです!

# re: どうやってプログラムを学ぶ? 2009/02/24 13:18 aetos

あぁ、わかるわかる。
特に座標を指定して何かを描く関数なんかは、ちょっとパラメータを変えるだけでできる図形が全然違ったりして、「どこが境目なんだろう?」って1ずつ変えて試してみたりするのなんか楽しいやねー。

> APIだけで窓だそうとしたら、それだけでも何十行。
> 挫折するな~普通は。

「やりたいこと」に直結しない(ように見える)コードが多すぎるんですね。
そういう意味で言うと、近年の LL とか DSL とかの流れはいいのかもしれない。

> 今の人は「土台が出来すぎて」プログラミングの面白さが感じられないかも。

うーん。
「プログラミングの面白さとは何か?」って人それぞれだなぁ、って思いますよ。

> プログラミングを上達させるのは、「どう学ぶ」なんていう小手先のテクニックではなくて、パッションです!

それには同意。
じゃあ、どういう言語だったりどういう教え方だったりすれば、パッションを損なわずに維持できるか、ということかと。

# re: どうやってプログラムを学ぶ? 2009/02/24 14:10 PATIO

コンソールプログラムだって色々やりだすと結構面白い事が出来るんですけれどねぇ。

ウインドウを出すようなものだとそのウインドウを出すのに必要なコードがいるわけで、プログラムが長くなるのは仕方が無いわけです。

で、コンソールならいきなりprintfしちゃっても良いわけでコンソールが面白くないのではなくて、面白い事をしようとしてないのではないかなぁと。

コンソール上で動くシンプルだけど、自分的には面白い物をたくさん作ると自然と色々わかってきたりするのではないかなと思います。

とは言え、私もBASICからはじめた口ですけれど、当時はBASICの本一冊あれば、何とかなったんです。
特にROM上に焼かれているようなBASICなら本一冊で何とかなりました。
その後、DISK-BASICなる物が出てきてDOS上で動いたりとかするようになって色々くっついて。
でもそれでも本一冊あれば何とかなったんですよね。

今の環境だと、Windowsの理屈を覚えろとか、イベントドリブンだとか覚えなきゃいけない事がたくさんあって、
それらを理解していないとプログラムを組む事自体に影響があるわけで。
コンソールは地味かもしれませんけれど、
覚えなきゃいけないことが割りと限定されるので初学者が弄り倒すには良い題材だと思うんです。
あとは、モチベーションをいかに維持するかですねぇ。

# re: どうやってプログラムを学ぶ? 2009/02/25 11:54 aetos

イベントドリブンとかって、HelloWorld のレベルでは必ずしも必要なものではないと思うんです。
Paint イベントで描画するあたりでは必要でしょうけど、Click イベントだけを扱っているあたりでは、教えなくてもいいのかと。

# Re: どうやってプログラムを学ぶ? 2009/02/25 19:07 biac の それさえもおそらくは幸せな日々@nifty

ネタ元:がるの健忘録: [親方][初心者]…どうやって学んだんだろう?中の技術日誌ブログ: どうやってプログラムを学ぶ? ん~… どうだったっけ? f(^^;大学の授業でやった FORTRAN と、 大学生協に展示してあったマイコン ( 当時はあまりパソコンとは呼んでなかった ) と、 どっちを先に触ったんだったか、

タイトル
名前
URL
コメント