見出し画像

「X=X+1」が理解できないという記事

こんちは、まんじゅうです。

今日はちょっとTwitterやGoogleのニュース欄で流れてきて
あ~・・・。って感じになった記事を紹介しようと思う。

ただ、後半が有料会員限定の記事なので前半部分のみの
紹介になってしまうけど、許してほしい。

じゃあ、行こうか。


今回話題になった記事

上記のXTechの記事なんだけど、
京都大学国際高等教育院の喜多一教教授の基調講演での話。
この方はPythonでのプログラミング教育を担当してると言うんだけど、
京都大学という超名門大学の学生でも「x=x+1」の意味がわからない
それはなぜか?という講演の内容を記事にした感じ。

たしかに一瞬、分からなくなった(笑)

Googleニュースでこの記事が流れてきた時、
「京大生でもx=x+1が分からない」、喜多教授が明かす
ここまでが大きく表示されていてPythonの話とわかるのは
小さく表示されたところに書かれていたこともあり、
僕も一瞬、
「ん?プログラミングの代入?数学の話?でもこんな式あんの?」
みたいな感じで脳がバグった。

でも、記事へ飛んで冒頭部分読んだだけでもまぁ理解できたから
プログラミングを勉強している人だったら簡単に理解できるだろうから
ちょっと記事の前半部分だけでも読んでみてほしい。

結局「X=X+1」ってなんなの?

結論から言うと、Xって名前の箱の中身に1を足してまたXの箱の中に戻す。
たったこれだけ。下にはちょっと細かいところ書いてみるけど
文章力と説明力が欠如してるので、注意。なるべくがんばるけど。

プログラミングってなんでもそうだけど、"変数"という概念がある。
"変数"はなにかを入れておく"箱"に例えられることが多く、
変数は自分で名前をつけることができる。

例えばだけど、"Answer"って変数を定義するとする。
ここに"1+1"の計算結果である"2"を入れたいって時には

Answer = 1 + 1

こうすれば"Answer"って名前の箱に1+1の計算結果である"2"が入る。
簡単でしょ?(簡単じゃないって人はすまん。調べて欲しい)

で。たとえば、Answerに1を足してまたAnswerに戻したいって思った時に
使うのが「X=X+1」の書き方ってわけ。

そんな元の変数の中に戻さなくてもって思う人がいるかも知れないけど、
プログラムでいっぱい変数を作っちゃうと、どの変数がどんなデータを
持っているのかが分からなくなってどんどんコードが複雑になって
問題が起こってしまう確率があがる。

Answer1~10って沢山変数を作っていちいち中身を表示して
やっていくなんて非効率的でしょ?
厳密には変数の使い回しとか色々考え方はあるだろうけど、
まぁ、基本的には変数の数が少ないほど問題が起こりにくくなる。

プログラムの世界では変数の箇所は変数の中身に置き換わるって
思ってくれたら良いかもしれない。この場合は

Answer = Answer + 1
 
Answer = 2 + 1

って感じで右辺の"Answer"が"Answer"の中身のデータ、2に置き換わる。
左辺の"Answer"が置き換わって無いのはなんで?ってなるだろうけど、
これは変数Answerに代入するという処理になっているから。
まぁ、そういうルールだからってことで覚えてもらったほうが
早い気がする。もっと詳しく理解したかったらPythonの入門を
初めて見ると良いかも。

Pythonの勉強

わかりにくい説明を垂れ流したところで、ここまでの内容で
興味が湧く人いるの?って感じだけどPythonの勉強してみたいって
人がいたときのために。

この「京大生でもX=X+1がわからない」の講演をした
喜多教授が京大生向けにPythonの教材を作っていて、
それが無料公開されている。

環境構築も教材に乗っているので頑張ったらちゃんと
Pythonのプログラムが実行できる環境が作れるから
頑張って欲しい。紹介されている方法はIDLEを使った
コーディングなので、VSCodeでコーディングしたいんじゃボケェ。
って人は自分で調べるべし。調べること大事。
初心者ですって人はこの教材に従ってやれば基本的には
できるんじゃないかな?頑張ってプログラミングに挑んで欲しい。

まとめ

と、言う訳で京大生でも分からない「X=X+1」の話でした。
大本の記事も見てもらえたら嬉しいかな。

プログラミングをこれから勉強したいけど、「文系だし」とか
「難しそう」って人に対しては京大生でもわかんないんだから
やってみたら良いじゃんって言えるようなある意味
応援とも取れるような記事だったりする(笑)

わかりにくい記事になった気がするけど、
文章力とプログラミングへの理解度向上も兼ねて
技術系の記事を書いていきたいって思うようになった。
これからも頑張っていきたいし、間違ってたらみんなで
指摘していい記事にしていきたいとも思った。
頑張ります。(ブログでも平行してやっても良いかも)

次はどんな記事を書こうかなぁ。
まだ、ネタだったりが出ないけど頑張って出すかなぁ。

じゃあ、またね。





この記事が気に入ったらサポートをしてみませんか?