2018-10-21

プログラミング論理的思考の訓練

プログラミングを教えててよく分かるのは、ちゃん論理的思考が出来ているかどうかを計る道具として非常に有用だということ

口先だけで乗り切ってきた人はプログラミングを教えてもちゃん理解してくれない

知識化するときに表面上だけを理解することに慣れきってしまっていて

試験とか面接突破できるんだけど実際のところ分かってない

からプログラミングを教えて新しい物を作らせようとすると全然作れない

からあるソースを少し触る、とかもできない

例えば

def hoge(a, b):
    c = a + b
    return c

def gaga(a, b):
    print("Hello ", a, b)

っていうソースがあったとして、gagaっていうメソッドhoge演算結果が表示されるように変更してみよう、っていうことをさせると

def gaga(a, b):
    print("Hello ", a, b, c)

って答える。

もちろんスコープとか名前空間とか、そもそもそれが生まれてきた経緯とかメソッド意味とかはちゃんと教えてるんだけど

それでも理解してくれない

この問題に関して正解を教えると、この問題は解けるようになるが、しばらくすると似たようなミスを連発する

一方で論理的思考が出来る子は全然分野違いから来てる子でもそんな間違いはしない

頭の中を整理して理解しているからなのか、とんでもない間違いはほぼない

入試とか面接だと両者の区別は付かないし、下手したら普段業務でも顕在化しなかったりするんだけど

しばらく一緒に仕事をしたりすると

「あ、なんかそもそもを分かってない」

っていう子はプログラミングができない

プログラミングで何かを作らせるっていうのはそういう人間を見分けるテストとしてすごく有用だと思うし、重宝してる

  • プログラミングができるぐらいで「俺は頭がいい」とか勘違したり、自慢してるやついる? プログラミングなんて本当は簡単なのに、素人相手にマウンティングしてるだけ? 情報学科の...

  • 折角だから聞いておきたいんだけど def gaga(a, b): print("Hello ", hoge(a, b)) こう答えたら何点取れるの

  • その言語、初心者にローカル変数をイメージさせるのに向いてない気がする。 int hoge(int a , int b){ int c = a + b; return c:} (defun hoge(a b) (let ((c (+ a b))) c)) わかりやすい。

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん