トップページ

本棚


両手で1000まで数えられますか?:2進法の話
数値 - 危険物取り扱い注意
100 × 200 =32?:変数のオーバーフローの話
パリティビット
小数の扱いについて
ぽいんた
ぽいんた2
ぽいんた3
ジ・オリジン
ジ・オリジン:補足
かっこつける話
かっこつける話2
文字列のこと
タイミングの話
拡張性の話
取り込む話
staticな話

コンパイルの話1
コンパイルの話2:止まらぬビルド
コンパイルの話3:マシン語に落ちるということ1:メモリの話
コンパイルの話4:マシン語に落ちるということ2:最適化
コンパイルの話5:マシン語に落ちるということ3:変数とスタック
コンパイルの話6:コンパイラはそもそも何をやってくれるのか??
リンクの話
プリプロセッサの話

OS、というもの

オブジェクト指向1
オブジェクト指向:2
オブジェクト指向:3

オブジェクト指向:番外 C言語のソースファイルの話
オブジェクト指向:番外 C言語での「再利用性」と「カプセル化」データ構造とアルゴリズム


抽象的な話

寝込んで布団の中で考えたこと
こんなの、常識??
お仕事プログラミング
ソフトでハードなプログラム
プログラムするということ
お勉強
プログラムを学ぶということの補足
C言語:「学問」と「実務」
統合開発環境
C言語ってポータブルですか?
C言語ってポータブルですか?:2
あなたは、どう読みますか?
ああ勘違い
試してガッテン
低級品
質問をするということ
ポカ
「何もしない」 != 「無駄」
エディタの話
もっと手を抜こう

いまどきの、アセンブラ

VisualStudio2005
VisualStudio2005:2

戦争の防ぎ方、に対する私の考え
身近な差別
改革
地球に優しいなんて大嘘
統計で嘘をつく方法

言葉について
言葉について:2

神が死んだということ
善悪の彼岸から、力への意思を目覚めさせるということ

本を読むということ
本を読むということ:2

絵を描く話
地図
地球儀

オカルトのお話
がんだむさん
RPGソフトウェア
記紀神話の不思議



メニュー

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

勉強って言う言葉は嫌いな言葉でもあり、好きな言葉でもある。

正確に言うと、学生時代のような「勉強」は嫌いだが自発的にするそれは嫌いではない。かつ、その意味で使われるそれは、言葉としては好きである。

・・・ややこしい?

とにかく、「お勉強」のお話。

今日職場の女の子(実装組ではない)が「C言語を勉強したい」と言ってきた。それがきっかけでちょっと、プログラムの「お勉強」というものについて思ったこと。

プログラムができるようになるための学習って、最初の手順が難しいんじゃないかな、と思う。その理由は前に述べたように、例えばC言語ができればプログラミングができるようになるわけではないからだ。

かといって、なにがしかの言語なりが使えない状態でプログラムの勉強をできるわけではないので、まずC言語ならC言語の文法を知った上でロジックなりアルゴリズムなりの学習に入るという手順になる。

これって、理にはかなってるかもしれないけど、ベストなやり方ではないんじゃないかな、と。

C言語の文法なんてさほど難しくは無くて、初心者がつまずくなんていわれてるポインタも、やっぱりそんなに難しくはない。これについてはまた、機会を見て書いてみたいけど、ポインタの理解って難しくないんですよ。ホントに。「アドレスが格納される」だのといった判りにくい説明されるから、混乱するだけ。


本題。
文法事態は難しくないけど、それを「どんな場面で」「どう使うのか」がわからない状態で、文法の説明のためだけにあるような意味のないソースを見ながら勉強するって言うのは、つらいと思う。第一、退屈。

大体C言語なんかでも英語がベースになってるわけで、識別しなり予約語なりは大体の意味は組めるようになっているのだし、他人のソースを見ながら判らない処理を『ANSI C言語辞典』とか見たり詳しい人に解説頼んで読解するほうが理解はしやすい気がする。

次にある程度処理を追えるようになったら、一番オススメなのはアセンブラやっちゃうこと。C言語なんて緒戦アセンブラのラッパだと思ってかまわないし、その他の言語にしても最終的にマシン語に落ちる以上はやはりアセンブラからかけ離れた処理をしているわけではない。

アセンブラって単純な命令を羅列して、ひとつの処理を文字通り「組み立てていく」。命令一つ一つの処理はホントに単純なので一つ一つ追いかければ時間はかかるが理解できるはずだし、bitの扱い方、メモリの扱い方なんかは生ナマなので自然に身につく。

その後、C言語などに戻ってくると、驚くほど判りやすく感じる。それはもう驚くほど。


実際、私の習得過程がこれに近い感じだったのですよ。
しかもアセンブラは懐かしのZ80とそれとは別の8bitマイコン。Z80なんて命令に除乗算が無いし。もうひとつの8bitマイコンは256byte(MBでも、当然GBでもない!!)のメモリが2BANKしかなく、OSもなかった。その環境で作業をしたおかげで、現在はC言語を主に使ってるけど言語で特に困ったことはない(組み込みなので機器ごとにノウハウがあり、それで困ったりはするけど、それは別の話)。


文系大学出の、プログラミングなんて誰にも習ったことがない私にしてそうなんだから。

ただし、アセンブラも本を読むとかじゃなくて読解ができる環境があると一番。なかなかないだろうけど。。でも本読んでも、それだとむしろ混乱するので。。ネットなりで探して見ればなんとかなるかも。


結局、プログラミングの勉強って他の人のソースを読むのが一番。「こんな時はこう処理してる」なぁんて初心者には宝の山。


「習うより慣れよ」。これに尽きる気がします。




| 新しいページ | 編集 | 差分 | 編集履歴 | ページ名変更 | アップロード | 検索 | ページ一覧 | タグ | RSS | ご利用ガイド | 管理者に問合せ |
@wiki - 無料レンタルウィキサービス | プライバシーポリシー