「x=x+1」の見え方は、プログラミング経験で180度変わる【プログラミング体験2】
HTML-код
- Опубликовано: 10 июл 2024
- 「プログラミング体験」の第2回です。「プログラミングと数学は別物」「初学者あるある"おまじないを書いておけ"」「=と==の違いでつまずくし、コロン忘れでもつまずく」など、つまずきながらプログラマーへの一歩を進めました。
【目次】
0:00 プログラミングと数学は別物
2:51 初学者あるある「おまじない」
10:07 プログラミング初学者つまずきポイント
29:45 Lesson1-3 チャットボットを作ろう
49:05 「==」と「=」の違い
1:09:14 バグを起こさないための型理論
1:13:36 学習の難しさが観測できた
【サポーターコミュニティへの加入はこちらから!】
yurugengo.com/support
【親チャンネル:ゆる言語学ラジオ】
/ @yurugengo
【実店舗プロジェクト:ゆる学徒カフェ】
/ @yurugakuto
【おたよりフォーム】
forms.gle/BLEZpLcdEPmoZTH4A
※皆様からの楽しいおたよりをお待ちしています!
【お仕事依頼はこちら!】
info@pedantic.jp
【堀元見プロフィール】
慶應義塾大学理工学部卒。専門は情報工学。WEBにコンテンツを作り散らかすことで生計を立てている。現在の主な収入源は「アカデミックに人の悪口を書くnote有料マガジン」。
Twitter→ / kenhori2
noteマガジン→note.com/kenhori2/m/m125fc452...
個人RUclips→ / @kenhorimoto
【水野太貴プロフィール】
名古屋大学文学部卒。専門は言語学。
某大手出版社で編集者として勤務。言語学の知識が本業に活きてるかと思いきや、そうでもない。
Twitter→ / yuru_mizuno
【姉妹チャンネル】
◯ゆる音楽学ラジオ( / @yuruongaku )
◯ゆる民俗学ラジオ ( / @yuruminzoku )
◯ゆる天文学ラジオ ( / @yurutenmon )
◯ゆる書道学ラジオ ( / @yurushodo )
◯ゆる生態学ラジオ ( / @yuruseitai )
◯ゆる哲学ラジオ ( / @yurutetsugaku )
#プログラミング体験 #ゆるコンピュータ科学ラジオ_プログラミング体験
【サポーターコミュニティへの加入はこちらから!】
yurugengo.com/support
【おたよりフォーム】
forms.gle/BLEZpLcdEPmoZTH4A
※皆様からの楽しいおたよりをお待ちしています!
小中学生向けのプログラミング教材作っている身としては、水野さんが賢すぎるという感想。
マンツーマン授業であるとはいえ、いきなりPythonで、最低限の演習量で、過多な新規学習事項を理解できるのすごい。
もしかすると水野さんは小中学生よりすごく頭がいいかもしれない。
もしかして1億語って集めるのは大変かもしれないし、もしかすると水野さんは小中学生よりすごく頭がいいかもしれない。
チンパンジー>水野さん>小・中学生ということか…
水野さんは「どこが」分からないかを特定するのが凄く早い気がします。
小学生とかだとこれが難しそう
@@user-ec5lh5mt6j わかります。わからないを言語化するのがうまいですよね。なんかわかんないけどできないみたいな感じじゃないのすごい
「プログラミング学習実況」という新たなコンテンツを生み出した記念すべき動画
確かに、今の学生たちに対して「いきなり便利なツールを使って、内部動作を知らなくていいのかな?」と思うときもあるのですが、
よくよく思い出してみると、私も先輩から「今の学生はいいよな。俺らの頃は Print 関数を作るところからだったんだぜ」と言われていました。
おそらくその先輩たちは、若いときに「今の学生はいいよな。俺らの頃は電気回路を組むところからだったんだぜ」などと言われていたのだと思います。
分からない事への耐性が高い水野さんと、教えるのを待てる堀元さんのコンビがプログラミング初心者の感覚を明らかにしてくのがとてもいいっすね
妻が子供に勉強教えてるとき、子どもは間違えたらすぐやる気無くすし、妻はすぐ答え教えたがるしで大変なんすよ…
わかるわー
教える方にも、教えられる方にも素養が必要ですね
おばあちゃんと姪が同じようにすぐ訂正したがったりすぐ諦めてやめようとしたりするのを見て既視感ありすぎますね
学ぶ側が躓くのには必ず理由があって、教える側がそれに気づいて適切に導いてあげるのが良い教育、ということを再認識させてくれる動画
C言語の全行末にセミコロンを打つのは不満に思うのに自然言語の全文末に句点打つのは違和感ないの不思議
セミコロンが無いと改行マークの後も文は続くっていう仕様。パーザを簡略化するための苦肉の策っていう
代わりに改行がその役割を果たしてますからね。
見えるか見えないかの違いかと。
プログラミング実況はもっと流行るべき
本人は「何がわからないのかわからない」状態なのに
過程観察してる側は不足知識を的確に把握できるのは強い。
他の勉強も同じように出来たら学習効率凄いだろうな。
それは個別指導に求められてることだね
無限のリソースがあるなら理想的なやーつ
このコメント、めちゃくちゃ分かる
水野さんが優秀な生徒なのに初心者しぐさを連発するの本当に好き。
堀元さんも水野さんが正解にたどりつくまで辛抱強く待つあたり教師として優秀。
初心者にプログラミングを教えることをエンタメ化できるお二人はやっぱり持ってらっしゃいますわ。
めちゃめちゃ面白いです!水野さんのように「いま何がわからないのか」「目の前のものをどう解釈したのか」「何を試したか」を自分で説明できる学習者は大変貴重なサンプルだと思います……!
堀元さんの忍耐強さ……というか試行錯誤の間十分に待ってくれるのが素晴らしいですね
54:54 ここでエラーが==を怒ってくれなかったのは1つ目の ” が全角なので2つ目の " が開きになって閉じてなくてプログラムの最後まで文字列扱いになって終わってるせいでシンタックスの解析もできずにパースエラーになってるせいですね.代入文のミスについては,Pythonはif文の中で代入文を書けないのでランタイムに関わらずエラーが出ます.
この回が終わった後「こんなめんどくさいことしないでChatGPTに書かせればええやん」と思う日常に戻った水野さんが、「プロンプトの書き方ってプログラミングに似てね?」って気づく日が来ることを期待しております
一度変数に入れさせたほうが、構造を理解しやすいと思う
i = random.randint(0,3)
txt = greetings[i]
print(txt)
追記:最後に補足されてた
エクセル経験値がやりがちな多重関数 LETが導入されてからは変わったかな
その昔(C言語の時代)、メモリを節約するために1行で書くという文化がありました。
そのマインドで書くと下記のようになりますよね。
print(greetings[random.randint(0,3)])
パッと見で何をしてるのか分からないw
分けておくとデバッグもしやすくなりますね
i = random.randint(0,3)
print(i) ←デバック表示(random.randint(0,3)が何をしてるのか確認できる)
txt = greetings[i]
print(txt)
尚、デバッグ表示を下記のように間違えてしまい、混乱する人がいるのも想像できます😅(同じようなことをしたことがあるので)
i = random.randint(0,3)
print(random.randint(0,3)) ←デバック表示
txt = greetings[i]
print(txt)
from random import randint
print(greetings[randint(0,3)])
水野さんがかなりボトムアップ型の理解を好む一方、プログルさんが優しさでトップダウンの解説をするもんだから、相性が悪い笑
このシリーズ無限にやって欲しいな…
水野さんがプログラム体験する関数を用意して一生ループさせよう
論理好きな水野さんにはぜひこのシリーズ続けてもらって何か簡単だけど巧妙なアルゴリズムの実装まで体験してほしい。
floyd-warshall algorithm とか?
よく理解している人に隣についてもらいながら勉強できるの、マジで羨ましいな
初学のうちは全てが未知だから、分からないことに突き当たったときにスルーしていいものなのか、できる限りまで理解に努めるべきなのか悩むけど、こうやって助言をもらいながら進められるとすごく心強い気がする
水野さんまじ賢いな〜理解力がまず素晴らしいし、学習意欲も高いしエンターテイナーとして学習者に徹してるのもすごい
いや、むしろ「みんなのコード」さんにとって有用な動画
見れば見るほど「あー!あの概念導入してなかったから躓いてるのか!」が大量に出てきて面白い
自分は23年にIT会社に入社した(元)新卒なのですが、前回に引き続いてダイPONとけんちゃんの両視点から楽しむことができて非常に旨味のある動画でした。
今年度は無事に倒産することなく後輩が入ってくるので、ダイPONの気持ちに寄り添えるような、りっぱなけんちゃんになろうと志すことができ感謝しています。
水野さんの頭の良さが良くわかる回でした
確かにゲーム実況をみているようでした
面白いです
そして普通に水野さん理解早い
水野さんの「自分で分りたい」の姿勢、尊敬します。
1:07:55 Pythonの整数型は無限桁扱えるので9999999999999999999999+3とかでも普通に動いてしまうのである
水野さん、ちゃんとリストの範囲を理解して例外を出さないようにしててえらい!
水野プログラマーへの道企画一生続けて欲しい
わからない状態が続くのが苦痛で癇癪を起こすタイプなので、わからない状態で色々試そうとする「わからない耐性」がたかい水野さんの姿勢、本当に素晴らしいし羨ましい
水野さんって、ホント頭のいい間違え方するなあっと思いますね。
共テ終わってから見るプログラミングに翻弄される水野さんは最高だな
今回で結構理解進んでそうだし水野さん頭いいから後1回やれば結構サクサク進めるようになりそう
水野さんが悪態をついてる所は全て通りましたし、何なら20年以上経っても同じような悪態を日常的についてるプログラマはこちらです。
こんな学習が理想なんだろうね…私は良い学習者になれる気がしねえ
学習の過程がエンタメになるの素晴らしいです。2人がすげえんだこれ
特にプログラム(人造?)言語は、学習者にとっては「何が塊なのかを見分けれるようになる」という前段階が存在するんだろうなあ
プログラミング体験シリーズ、面白すぎる。
というか、教育でとても有用な気がする。どうしても勉強していく上で、自分が初学者の時につまずいたところって、忘れてしまう。
けれど、この動画を見れば、「あぁ、ここって確かに難しかった~」と振り返れるから、とても貴重なサンプルな気がしている。
マジで元気をもらえる動画。
等値演算子は昔は=で書いてたけど、C以降は==になったイメージ。いまでもVBAとかは=のままですな
VBA書けるようなったところでPython始めたらあまりに何書いてるか分からなすぎて1回諦めたんですけど、水野さん見てたら頑張ろうって思えるようになりました。頑張ります。
if data = "こんにちは":
^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?
Python はやさしいな…
ゲーム実況と違って、水野さんがうまく進めないところが、全然もやもやせず、笑って見れたのが不思議でした。
また、堀元さんが、ヒントを出さないように徹底しているのも素晴らしかったです。
毎度水野さんの理解力が高くて凄いと思ってしまう
でも途中分からなさ過ぎてちょっと不機嫌になってる水野さんも良い
堀元さんが教えるのめちゃくちゃ待てるのが素晴らしいなぁ
自分だったらもっと早い段階で教えちゃいそうだけど、それは学習者のためにならないんだろうなと
他の方も仰っているがなんだかゲーム実況のようでとても面白かった
…別にやる夫とやらない夫みたいだなとかは思ってないです
非常に楽しめましたが、本当の初学者には何のこっちゃという感じでしょうか?ある程度プログラミングできるようになった時に見返して、笑いながら自分の成長を確認して満足できる、ある意味神回でした。
隣で教えてくれる人が居るのがどんなにありがたいか、学習を進めるかを見せつけられた。
三十年以上前にN88basic、四半世紀前のネット環境のないころにC言語で「何をどうしたらプログラムになるのかが判らなかった」挫折者からすれば
ただただ羨ましい限り。
水野さんに写経(プログラマ的意味で)を体験してほしいなあ
このシリーズは、秀逸! ほんとおもしろい🤣
テキストはトップダウン的に書かれてるのに対して、水野さんはボトムアップ的に理解を進めたい人だから、うまく噛み合わない部分がある気がしますね
初学者の理解の構造が分かる良い動画ですね。
会社等で教えたりする事もありますが、概念を理解してもらうのは難易度高いですね。せめてステップ実行出来る環境で1行ずつデバッグ出来るとハードルが下がる気がしますね。
水野さんのようにちゃんと勉強したい人には最初に変数、型、関数の概念を知ってもらったほうが良さそうだなと思いながら見てました
水野さんが間違うたびに全部消して書き直すのえらい。
異なるジャンルを覚える過程って、こんなに面白いんだというのがわかりました。
動画を30分見たところで、これは本当にx=x+1にたどり着けるのか?と不安になったが、動画が1時間19分あって安心した
ついでにサラッと読む関数の名前、ちゃんとした英語の発音にしてて面白かったです。
でもプログラミング的には、randintを「ランド・イント」と読める人のほうが「わかってる」感があると思う。
逆に、randintを見て直感的にrandom integerのことだと気づけないと結構しんどい。「赤リンゴ」という単語を赤ともリンゴとも無関係のa-ka-ri-n-goとして丸暗記しているような状態なので。
堀元さん側の立場で見てますが、ひたすら面白い!(funnyじゃなくてinteresting)
めっちゃ面白いのでぜひシリーズ化して今後も続けてほしいです!
C言語から始めた人間としてはPythonのイテレータとか内包表記が便利すぎて衝撃だったんですが、初学者には逆に直感的に使えるからわかりやすいんですかね。
いつになるかわかりませんが、水野さんに感想を教えてほしいです。
プログラミング学習実況楽しい!
45:28 確かにゲーム実況と同じでプログラミングの実況プレイ実況動画としての可能性をこの動画で感じる
「エラーメッセージを読めって言われるけどエラーメッセージ読んでもわからん」はその通りで,こう言われ続けた結果最近はやさしくなってきました.それでも,未だにだいたいどの言語のコミュニティでも「この言語のエラーメッセージ不親切なんだけど!!」って(半分難癖で)言ってる人がいるので,エラーメッセージ意味ワカランは大丈夫です.ただエラーメッセージは読みましょう
まさにCの授業で#include の意味を質問したらおまじないと言われて挫折しました。
私は若手プログラマなのですが、先日EC2のドキュメント見たらわけわからなくて泣きそうになったので個人的にタイムリーでした!
水野さんの頑張りを見ていると、お仕事頑張るための元気をもらえて嬉しいです。。
水野さんなら、ラバーダックがいなくてもイマジナリーホリモトデバッグができそう
水野さんが躓いてた部分、中学で突然変数にxとかyとかaとかが出てきて、y=axとかやりだしたとたんに数字じゃないから計算できない!!ってなるのにめっちゃ似てるなぁと思いました。
また、入れ子の内側から順次解決されていくっていう構造も、割と慣れるまで悩ましい部分なのかもしれないですね~。いずれにせよ、プログラミングにガチで向き合おうとする水野さんのやる気、エモい!
記号の全角半角見づらい問題は本当に根深いもので、等幅フォントとか全角スペースを可視化するフォントとか、1lIO0などが区別できるフォントとか、そういうのを求めて彷徨うのもあるあるだといっていいかしら。。。
堀元さんがイベントですねって補足してくれるまで送信時プログラムがなんなのか分からなかったので適宜専門用語も使ってほしい
ナイスアブダクション!
プログラム始めたばっかりの時のこと思い出してほっこりした・・・
プログラムって課題があってその課題解決するためにはどうすればいいかゴールまでの道のりを考えていく
それって普段の生活にも当てはめられるから論理的思考を鍛えるには非常にいいとおもう
BBCで専門家を呼んだはずが、間違えて同姓同名の就職面接に来た人をスタジオに呼んで質問して、その人が凄い顔してるNGシーンを思い出した。所属をちゃんと指定しないと同じ名前で全く違う動きになるんだろうなあ
めっちゃ良い教師役と生徒役
虚空に消えていくこんにちは大好き
ソースコードに書かれるものをオマジナイでごまかすのが大嫌いなので、例えば C言語のincludeの説明であれば、初手からプリプロセッサの動きやコンパイラが内部的に行っているコンパイル手順などの説明から入ります。私はこのメソッドで百人単位の後輩に嫌われています。
恐縮ですが「プリ」プロセッサですか?私もよくプリプロセッサをプロプロセッサと間違えて書きます😂
@@jimscheurtz8224 typoです。すみません、なおしちゃいます
その説明を聞きたいタイプの人間です。人によりきりなのでアレなんですが、個人的には「おまじないだからつべこべ言わずとりあえず覚えとけ!!」みたいのが許せない人間なのでC言語を学ぶときに説明欲しかったです。
やっぱり、苦Cしか勝たん
何も説明せずに「とりあえず書け」は私も好きではないと言うか悪手な気がしますね。
せめて「この1行目が走ると有る関数の辞書を取り出して来ます」程度の説明が有ると多くの人が幸せになりそう。
print(random)からやり始めるの頭良すぎてプログラマに向いてる
根っこから理解できるとマジで何でもできるようになる
いつもpodcastで聞いていますが、今シリーズはRUclipsで見るしかないですね。
Pythonの挙動は初学者向きではないかもなーと思いながら見ています。
このシリーズ面白すぎて、右脳の回は許した
教えてくれる人が隣にいるってこんなにいいんですね
ほんとにおもしろいなぁ。ありがたい
副作用に躓いてる感じが強い。水野さんに関数型プログラミング教えたら意外と伸びそう
プログラム言語習得に苦労した昔の自分と重ね合わせて、あ〜これ分かる〜って共感できるから見てて楽しい
うちも水野さんみたいに、1つ1つの役割と構造が分からないと進めないタイプだから、「とりあえず入れる」が出来ない…めっちゃ気持ち分かる。
水野さん見てて、資格取るために専門学校の講座をとった時のことを思い出しました。先生が「ここはそこまで気にしない方がいいです。試験にも出ないので。」と言ってくれたから割り切って考えないで済むけど1人だと結構気にしちゃっただろうな、と当時思ってました。
まったくの未経験から、逐一自分なりに理解しながらでこれくらいの時間でここまで進めるのは (プログル、堀元さんの補助があったとはいえ) 普通に早い方だと思う。
サンプルをコピペしてたらもっと早く解けるだろうけど、それじゃ自力でプログラム書けるようにならない。
45:55 全角ダブルクォーテーションでエラーになっていた時、エラーメッセージは「^」しか表示されていませんでした。
おそらく、エラーメッセージは2行あり、プログル情報に出てくるのは1行だけだったのではと思われます。
エラーメッセージ1行目に、使用できない文字があることと、エラーがある1行が書かれており、
エラーメッセージ2行目に、どこでエラーが発生したかを、スペースと「^」で示していたのでしょう。
昔の仕事で業務効率化を目的に作ってたExcelマクロの変数名に「unchi」「だの「geri」だの「ramenjirou」だの適当な命名しまくって遊んでたの思い出した
そのものはちゃんと動いていました
Stormworksってゲーム内で書くLua、文字制限きつすぎて(1ユニット約4000文字、ユニットを経由すると1tick遅延する)、みんな自然に糖衣構文みたいなことするのでリバースエンジニアリングしたいとき可読性が終わる
楽しみに待ってました
ぼくも!
たのまち
水野さんの挙動を理解している堀元さんなら水野さんが一発で全てを理解するメタファーを用いた説明ができるはずなのに、ちゃんと泳がせてニコニコしているのが偉い
型は形式意味論でも重要なんで、嶋村先生呼びつつゆる言語学ラジオにも生かせそう
水野さん、中級者以上だと躓かないところで躓く、理解することへの熱意が高い、絶対に投げ出さない
プログラミング初学者としてはあまりに適切すぎる
幸せの値をずっとインクリメント(++)していきたい!
イコールで代入はスッと理解しにくいポイントの一つですよね
車のアクセルブレーキが同じ操作ですぐ隣にあるとかもそうだけど、ミスや誤解が少なくなるアイデアはあっても
慣れが定着しきった後なので簡単に変えられないものって世の中にたくさんあるんでしょうね
苦手な分野を水野さん本人の腕力でねじ伏せてるの凄すぎる...
周りのプログラマー、こんなに辛抱強く待ってくれない…
工業高校までですけどプログラミングの授業をすべてCでやってきたので逆にセミコロンが無いと不安になりますねぇ
水野さんの間違え方面白いなぁ。PROGRAMMERS MISTAE AWARD優勝
なるほどなぁ😮
全くの初心者がこれを使って勉強するのはかなり難しそうだなと見てて思うな
もっと良い教材がありそう…
綺麗な堀元さんがアドバイスしてくれる教材なら使いたい
@@user-ie5nq4he8z
綺麗な堀元「まずプリンがあって〜その中に引数としてカラメルを入れるんですけど〜」
水野さんがtype()を学ぶのが楽しみ
「虚空に消えた…」ってのでワロタ
ifの条件文で誤って代入しちゃうのC言語とかでも非常にあるあるな上にホントに代入されちゃうのでヤバいですね。代入防止のためにヨーダ記法とかあったなぁ
プログラミング学習にいつでも堀元がいないことがつらい
躓いた時もう一回立てるように手を貸してくれる人がいないから振り出し近くにうつ伏せの骸が転がってる