初プロ(通常クラス)はなぜ難しいのか
今でこそクラス制になった初級プログラミングですが
以前は今でいうところの通常クラスしかない状態でした。
突破率も10%行くか行かないかの難関科目だったんですよね。
しかも情報マネジメント学部は必修なので避けて通れないというものでした。
何がそんなに難しいのか
知りたくて通常クラスを受講しました。
◆難しさの原因
・いつ説明されたかわからない用語が当然のように出てくる
・マクロなどの置き換え文字を多用している
・大まかな説明のみで細部に触れない
・読みにくい書き方
・課題の題材が楽しくない
「これいつ出たの?」という用語がよくあります。
「〇〇は△△なんですね。あ、△△っていうのは〜」と横道に逸れていくこともしばしば。
「こういうものだと思って良い」とかそういった文言も見かけます。
大事なことは3回以上、かつ小テストでも出す位でようやく覚えられると思います。
独自表現が好きなようで下記のようなマクロをよく目にします。
#define D 10 → Dという文字が出てきたら10と置き換える
#define less(a,b) a<b →less(a,b)ときたらa<bと置き換える
これ自体はまだ良いんです。
(できればif(a<b)〜のが直感的で良いですが…)
問題は定義部と使用部が同一ページに書かれていないことです。
なので文の意味を考える時にこの宣言が書かれていた場所を探さないといけないんです。
(coderoomに記載されているものはそれが正しいのかどうかはわかりません。)
パラパラ漫画のようなスライドからそれが定義されている場所を探す
それも750枚近くあるスライドの中から。。
探してるうちに流れを見失うこともあります。
使用部分でちらっと「Dは何」みたいに書かれているだけでも違うと思うんですよね。
講義ではどのように考えればいいかというアルゴリズムの部分は大まかに教わります。
ですがそれ以外に細かな疑問が出てくるんですよね。
何でここの処理はこうなんだろうといったものから
それっぽく書いたけれどなぜかエラーが出るといったものです。
エラー原因はエラー文に書かれているんですけれど
初学者にとってはこれを読むこと自体が辛いです。
思わず日本語でOK!と言いたくなります。
一番遭遇して嫌だったエラーは「セグメントエラー」です。
演習課題が数学寄りのものが多くあまり楽しめませんでした。
プログラムの挙動がわかりやすくて良いと思いますが無味乾燥で。。
数字嫌いの方は回れ右したくなるレベルです。
ストーリー性やエンタメ要素があったり改良したら使えるとかそういったものがあるといいなと思いました。
ボート屋の課題とか暗号製作なんかは楽しかったです。
◆良いところもある
・流用可能な形式のものが多い
・質問への返答が早く丁寧
最小に近い構成で書かれていてコードが綺麗だなって思います。
課題では「整数がきたとき」と書かれているにも関わらず
ちゃっかり文字列や他のどんな形式のデータが来ても大丈夫な構造になっていたり。
そういった部分でとても勉強になります。
課題に対して質問するとすぐ返信がきます。
早い時は朝の3時に返信がきたことも…一体いつ休んでらっしゃるんでしょうか。
返信内容はともかく、とても丁寧な解説をしてくださいます。
質問の意図とは違う答えが返ってくることも多いんですけれどね。
これは自分がうまく質問できていないというのと
先生がなまじ出来すぎてしまうが故に初心者がつまずきやすいところが理解できない故だと思います。
めげずに何度も質問しても快く質問に答えてくださるのは本当にありがたいです。
◆まとめ
プログラム言語は本を読んだだけで使えるようにはならず
講義を見たとしてもそれは同じなんですよね。
1行1行根気よく読み解いていく、それを自分の手で作り上げていく
それ位時間が必要な授業なのだと思いました。
・柔軟さ、シンプルさを追求するがあまりとっつきにくい講義になっている。
・説明が最小限
・そもそも時間が取れない
が重なった結果、難しいという評価に繋がっているように思えました。
◆実際やってみて
実際難しかったです。
演習だけで20時間以上かかってますしね。
最初は難解でも読み込んでいけばいくほど…という部分がスルメイカに似てますね。
今も理解できたかというと何となくレベルで止まっています。
あ、でも、昔はさっぱり読めなかった基本情報試験のC言語は少しは読めるようになりました!
理解が浅いところは初学者クラスの講義を見て補完したいと思います。
通常クラス→初学クラスなら理解できそうですが
初学クラス→通常クラスは理解できる気がしないな、と思ったのも通常クラスを選んだ理由でした。