見出し画像

Retro-gaming and so on

プログラミング初学者向けのPythonの学び方 2022年度版

MIT6.01で参考書として推薦していたThink Pythonだが、日本語で翻訳してる人がいて、無料で公開されていた
僕の感想では基本的に、やっぱり初心者向けリファレンス、と言う印象だが、いずれにせよ、日本の本を買って学ぶよりは遥かにマシだろう。
お陰様で現時点、日本でプログラミング初学者がPythonを学ぶとしたら、

べきだ、と言う道筋がやっと見えた。恐らくこれが現時点、日本で販売されてる全書籍を含めてベストな方法だ。っつーか、これで一銭も払わずにPythonを学べる環境が整った、と言って良い。

日本のプログラミング初学者向けのPython本で、わざわざ金払って買う価値があるものってのはまぁ、無いだろう。本屋に一回行ってテキトーに初学者用の本を見てみれば良い。ネットでタダで公開されてるにせよ、そのクオリティ(当然記述されてるコードのクオリティも)はDive into Python3の圧勝なんだ。
Dive into Python3で書かれているコードがホンモノのPythonistaが書いたコードだ。C言語脳が書いたPython()コードとは雲泥の差であり、プログラミング初学者は、C言語脳なドヘタクソなコードではなく、こういう純Pythonistaなコードにまずは触れる/慣れるべきだ。

 
実の事を言うと、以前からDive into Python3 日本語版と言う(元々は洋書だが)Web文書の存在を知ってはいた。これは非常に優れた良書で、手っ取り早く、かつシンプルに、Pythonでのプログラムの「実際の書き方」を紹介していく。
非常に平易で優秀な本なんだけど、厄介な点が1つだけあった。ぶっちゃけ別の言語でのプログラミング経験者向けの本って言って良い本だ。
平易な書き方で書かれているし、一貫してて読みやすいんだけど、ペースが早く、ちょっとプログラミング初学者向けには難しいかな?と言う印象だったんだよ。
だから、ちょっとでも、例えばRubyを学んで、そしてDive into Python3 日本語版を読む、って道筋ならこれはマジでかなり緩和されるのね。「曲がりなりにもプログラミング言語を1個触った事がある」って「経験」はそれくらい大きいんだ。
ところが初学者用リファレンスとしてThink Pythonがあればこれはかなり緩和される。Dive into Python 3で躓いたトコ、ちょっと良く分からないトコ、その部分で不明な単語(恐らくその躓いたセクションの章題か節題になるだろう)をピックアップして、Think Pythonの目次から(主に章の題名から)そこの関連項目を探して読んでみる、って事が可能となる。この躓く -> リファレンスを読む、と言うのは良い勉強になるだろう。
そしてもうちょっとその項目を詳しく知りたい、って場合はPython公式のPythonチュートリアルの目次から該当項目を見れば良い。

 
Pythonチュートリアルもチュートリアル、って名前が付いてる割にはプログラミング初学者向けじゃない。あくまで「Pythonが初めて」って人向けに書かれている(Think Pythonがプログラミング初学者向け、ってのとは対象的だ)。
Pythonチュートリアルはホント、プログラミング経験者向けには良く書けている。だからこそ初学者には極端に向かない。しかし、Think Pythonが間に入ってるだけでだいぶ違うと思う。Think Pythonで調べて、なお詳細を知りたい、って場合がPythonチュートリアルの出番だ。
言い換えるとThink Pythonで調べて、それで充分、って場合はPythonチュートリアルの出番はないだろう。っつーか人によっては、通しでDive into Python3をやっても、一回もPythonチュートリアルの出番は無いかもしれない。でもそれはそれで構わないんだ。
初学者に3冊も本を買え、って言うのはなかなか酷なんだけど、ネット上の無料の文書なら3冊あっても構わない。そしてそのうちの1冊は「使わない可能性込み」で推薦出来る、ってのは大変贅沢な事なんだ。

もうホンマ、日本で出されてるC言語脳が書いた初学者向け、と謳ったクソPython本をわざわざ買って勉強するよか100倍マシな方法、としてここで提案させてもらってる。コストパフォーマンスとクオリティを考えても100倍マシ、だと断言出来る。
繰り返すが、C言語脳に無駄な金を払うくらいだったら、

の3つのマテリアルがあれば充分だ。せいぜい金をかけるとしてもこれらのプリント代金くらい用意しておけばいい(紙代とインクジェットプリンタのインク代だ)。
そしてこの3冊は貴方が質の高い(つまりC言語脳が書いたクソコードとは真逆の)Pythonコードを書く手助けをしてくれるだろう。もう一度繰り返すが、プログラミング初学者に必要なのは「カッコイイコードを書くにはこういうスタイルに従え」と言うお手本であり、これら3冊の本には「Pythonistaが書く正しく望ましいコード」が溢れている。
文字通りプログラミング初学者向けの「三種の神器」だ。

IDEに付いて:

Dive into Python3が大変良い本なのは、読者がPython備え付けのIDLEを使う前提で話を進めてる辺りだ。これも当然だ。今からPythonを学び始めるのに、備え付けの環境を使わないテはないだろう。開発環境を苦労してセッティングするよりも、サッサとPythonによるプログラミングを学びはじめる方が正しい。当たり前田はCrackerだ。
もちろん、Dive into Python3でもいくつかIDEを紹介してる。しかしその態度は「貴方の好きにすれば?」と言うものだ。

(いくつかIDEを挙げたあと)私は9年間Pythonでプログラミングをしているが、PythonのプログラムはGNU Emacsを使って編集し、デバッグにはコマンドラインのPythonシェルを使っている。Pythonで開発を行う正しい方法や間違った方法はない。自分に合ったやり方を見つけよう! 

そう、そして「自分に合ったやり方」は「プログラミング初学者」は分からないもんなんだよ。当然だ。だってプログラミングした事ないんだから(笑)。
この時点で、「自分好みのIDEを押し付けよう」とする本の著者、ってのが如何に悪意に塗れてるかもう分かるだろ?それを人は「洗脳」と呼ぶ(笑)。

Dive into Python3の著者は正しい。彼はPythonを教えたいんであって、「どのIDEがいいのか?」と言うフレーム合戦に参加する気はない。そしてC言語脳の連中のように「PythonでC言語を教えよう」とか「俺が使ってるIDEの信者にしちまおう」と言う悪意が無いんだ。Pythonを教える本、って謳ってるのに「別の目的」があればそれは単なる悪意だ。断言させてもらう。C言語脳が書いた初学者向けPython本は「悪意のカタマリ」ばっかだ
取り敢えずプログラミング初学者はDive into Python3に従ってIDLEを使っておけ。それが一番マシだ、ってのは何万回も繰り返し語ってる。

なお、現在のMIT6.0001の場合、素のPython3と言うよりAnaconda3を用いてる模様だ。

わーい、MITでもAnacondaを導入してるならそういうのを導入すべきじゃない?

とか言うヤツもいるかもしれんが、やっぱ止めとけ(笑)。
MITに限らないんだけど、アメリカの大学にはチューターって制度があるんだよ。大学側が成績優秀な生徒に声をかけて、一種家庭教師的な仕事を斡旋すんのね。成績優秀者は大学でそういうバイトが出来るんだよ。成績不振な学生(学期毎に言えば後輩にあたる)の勉強をサポートして大学から金を貰える、と。
それで、例えばこういうAnacondaみたいなシステムを導入する際にトラブったら学生はどうすんのか?決して教えて!gooなんかには質問せんのだ(笑)。そういう躓いた層は大体まずは教えてもらってるチューターに相談するの。そうすれば成績優秀者のチューター陣(先輩)は当然、そういうコースでの導入経験があるんで、そういうトラブルに遭遇した後輩に指導が出来るわけだな。
分かる?こういうオフィシャルじゃないブツの導入ってのは、何度も言うけどまずは最初にサポートありきなんだわ。アメリカの大学はチューターってサポート制度がある。翻って日本の大学はどうだ?そういうサポート体制をキチンと作ってんのか?学生が学習で困ったら困ったまま、なんじゃねーの?だから落ちこぼれ学生が意味不明な事を教えて!gooに投稿してくんじゃねーの?
MITがAnaconda3を気軽に導入可能なのはまずはサポートありきだから、だ。言い換えると思い切った決断が出来るのもまずはサポート体制がしっかりしてるから、なんだよ。その辺がMITとダメな日本の大学との差なんだ。そして表面的な事だけアメリカの大学の真似すんな、って言いたい。バカもの共めが。

と言うわけで、プログラミング初学者でAnaconda3を導入してみたい、って人は取り敢えずDive into Python3を終えた頃で「やっと準備が整う」と思う。
そして、Anacondaってのはぶっちゃけ、フツーにPythonをインストールしたら自分でインストールせなアカン外部ライブラリを、最初からいくつもインストールしてるパッケージシステム、ってなだけなんだよな。IDEだ、ってワケではない。
Anacondaが推奨しているIDEはSpyderと言うIDEなんだけど、それも絶対ではないようだ。それこそVS CodeとかPyCharmなんかも用意されていて、「自分に合ったやり方」が分からん時点ではどれを選ぶべきか、も分からんだろう。


Anaconda Navigator。ここでAnacondaと言うパッケージに外部ツール(Anacondaとの連携を取る前提の)を簡易に導入出来るツール。
SpyderやVS CodeなんかをIDEとして選べるが、統計解析ソフトR専用のIDEであるRStudioなんかも導入出来るようになっている。


Anaconda + Spyder。基本的には画面左がプログラムエディタ、右上部が一種デバッガ、右下部がPythonインタプリタになっている。そしてそのPythonインタプリタにはiPythonと言うラッパーが使われてる、ってのがその基本的な仕組みだ。

いずれにせよ、最初はPythonのパッケージの使い方、と言うのをキチンと知ってた方が良いと思う。それと、翻るとAnacondaは重すぎる。とにかく何やるにしても起動が遅くて、ぶっちゃけ初心者がこれを使ってプログラミング、とかアホちゃうかって思うほど重い。IDLEのスピーディな立ち上がりとは大違いだ。これだけ起動が重いと「プログラムを書く」ってのが億劫になるんじゃないか。
と言うわけで、やっぱりPythonで初めてプログラミングを学ぶ、なんて人は無難にIDLE使っておくのが一番だよな、と思っている。
  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「プログラミング」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事