【ゆる募】
プログラミング初学者にプログラミングの基礎を叩き込むには何をさせると良いか

なお入門書を写経させてもページ消化が目的となってしまったのか、まったく身につかなかった模様

@kumanotetu プログラミングの入門書的な内容をこなすには、言語としての理解が必要そうです。それこそさんすうセットよろしく、変数やらif文やらを手で動かしてみるという感じのことが効くでしょう。プログラムを作るときは頭の中でこれをやることになるので。

@204504bySE そうなんですよね
判断(if)と繰り返し(while,for)が基礎として身についてない感じなんですよ

コントローラーのAボタンを見ながら押してる感じなので、これを実現するには繰り返せばよい、って落とし込め無いというか…

@kumanotetu forにしろwhileにしろ、if+gotoの糖衣構文に過ぎないのですが、それを教えない入門書がやたら多くて、そしてみんなそこで躓くという。平気な人は考えるまでもなくそれをわかっているだけのことです。

@kumanotetu gotoでやればいいじゃん→gotoだとみんな間違えるのでwhileやforを作りました という流れを説明してあげる必要があります。

Follow

@204504bySE そうですね
そのあたり説明するうえでスコープも説明できそうですし

· · ミニ四駆DON(福岡市) · 1 · 0 · 0

@kumanotetu スコープの話が出ると、今度は変数の寿命の話が必要になって、スタックとヒープの話になりますね。ローカル変数はスタックに突っ込まれて、変数を宣言した瞬間に場所が確保されて、{ } を抜けた瞬間に捨てられて、その場所は他の変数がいずれ使うと。ローカルじゃない変数はヒープに確保するのでそういう寿命はないと(GCなどは後でいいかと)

@kumanotetu C言語でよくある「ローカル変数のアドレスをポインターに入れてしまい当然動かない」はこれを知ってれば防げます。そう、これを誰も教えてくれません。

@204504bySE 値渡しと参照渡しなど、Cのポインタを理解できたらその後だいたいの言語で活きますよね

@204504bySE
大学とかで習うと最初にやる変数定義の基礎ですね
これ理解してないと配列や参照わからなくなるんですよね
やっぱりしっかりその辺から説明していきたいなぁ
少なくとも来年度の新人さん向けにその辺やろうと思います(今年度はその辺理解してそうだったのでやらず。。)

Sign in to participate in the conversation
ミニ四駆DON

ミニ四駆好きが集まる雑談中心のインスタンスです