.この薄っぺらいブログが見えるというのか/

自転車・PC・読書感想。サイクリング部の大学生やってます。

俺的python初学者学習フロー

これはなに?

python流行ってる。俺もdeep learningにつられてpython触った。ついでにいうとそれがきっかけで大学も決めた。で、初心者がpython触っても文法覚えるトコまでは行けるけどその後がどうにも繋がんないと思う。このあと何やったらいいんだろう・・・ってなる。そんな人に向けて書く俺的指針。 ただここに書く流れは今振り返って理想的だと思う流れを書いたのであって、別に他の分野やってフラフラしてもいいと思う。結局下に書く知識は必要になるので、そういう経験してモチベあげるとかも全然あり。というか俺がそうだった。

あなたは誰?

情報系の学部一年生。まぁ俺も初心者で全然業務で使ってるとかじゃないんで、「新入社員100人を教えてわかったpythonの学習法!」とかそんな大したもんじゃなくて、つまりはこの記事に特に信憑性はない。ちなみに1つだけpythonのパッケージ作りました。使ってやってください・・・ github.com

はじめの一歩

とりあえず入門書を買ってやりきれ。間違っても 分厚い蛇の本買ってはいけない。俺はこれで勉強したけどまぁ人気あるのならなんでも良いんじゃないかな。とりあえず文法を知らないことには話にならない。

文法を覚えたらLinuxをやれ

ここで残念なお知らせなんだけど、pythonを覚えただけじゃpythonで開発できるようにはならない。 「Web系に興味があるからDjangoでもやってみようかな〜〜」とかほざいてる君。1000000%ドキュメント読めないので諦めよう。俺がそうだった。

次に進むためにはlinuxを使えるようになろう。「おれはpythonがやりたいんであってlinuxじゃない!」「pythonの上にlinuxは無理」などなど言いたいことは沢山あるのはわかる。でもしょうがないじゃないか。こればっかりはどうしようもない。だって大体のpythonのドキュメントがlinux前提で書かれているんだもの。

たとえばこれ読めるか?

Python インタプリタは、それが使えるマシン上では通常 /usr/local/bin/python3.7 としてインストールされています; Unix シェルの検索パスに /usr/local/bin を入れることによって、次のコマンドをタイプしてインタプリタを開始することができます

$ python3.7

出典: https://docs.python.org/ja/3/tutorial/interpreter.html#using-the-python-interpreter

linuxの勉強してなかったらわかんないと思う。公式ドキュメントとかこんなんばっかだから。諦めてlinux勉強しよう。

参考図書は例によってなんでも良いんだけど一応言っておくと俺が読んだのはこれ

まじで教科書みたいに全部書いてあって、あとで説明するけどGitの使い方とかもあってとても良かった。

Windowsを使ってる人、windowspythonは無理なのですぐに窓から投げ捨てよう。Linuxのコマンドが一つも使えないから。

Macは知らんがまぁある程度応用が効きそうだと言う話は聞く。でも初心者がいきなり応用しようとするな。Linuxを入れろ。

仮想環境

Linuxやったら今度は仮想環境を使える様になる必要がある。 Ubuntu環境のPython - python.jp

ここがとてもわかり易く解説してくれている。ちなみにvirtulaenvやらpyvenvやら仮想環境を作るツールは色々出てるけど、venvが標準なのでおとなしくvenvを使うと良い。

Anacondaは初学者がとりあえず文法を触ってみたいというときには大いにあり。ただその後に仮想環境とか使って開発しようとするとAnacondaじゃ必ず躓くのでそうなったらアンインストールするといい。俺もそうだった。

pipとcondaは全くの別なので、あれ?このパッケージ入れたけどimport出来ないぞ?あ、condaでインストールしてたわみたいなことが起こる。

仮想環境使うと試しに触ってみたけどなんか全然使えねぇわみたいなパッケージを気兼ねなく削除することができる。

Gitを使う

使えないと話にならない。大体のパッケージはGithubで公開されてるのでGitとgithubの使い方がわかんないとどうしようもない。やれ。

公式ドキュメントを読めるようになる

次に公式ドキュメントを読める様にならなきゃいけない。Qiitaだったりブログだったりはざっと目を通すには良いが、その正確性だとか網羅性とかは信用してはいけない。結局公式ドキュメントを読むことになる。俺はいつの間にか読めるようになってた。多分上述の分野の勉強した後から読めるようになったんじゃないかと思う。

あと日本語なんてマイナー言語はどのドキュメントにも使われてない(相当でかいプロジェクトにしか邦訳はない)ので英語は必須。

もう君はpythonで開発ができる

ここまでやってようやく個人で開発ができる。作ったプログラムを配布したい? Python Packaging User Guide — Python Packaging User Guideを読もう。君ならもう読める。BeautifulSoupでスクレイピングがしたい? kondou.com - Beautiful Soup 4.2.0 Doc. 日本語訳 (2013-11-19最終更新)を読もう。コマンドを自分で作りたい? Argparse チュートリアル — Python 3.7.3 ドキュメントを読もう。

加えて読んでおいたほうが良い本

pythonプロフェッショナルプログラミングはできれば読んでおいたほうがいい。

これはグループで開発する際のノウハウを主に書いた本だけど、個人でも使えるところは多いし、そもそも自分で使うパッケージが会社で開発されたものだったりすることが多いので読んでおいて損にはならない。

最後のほうとかめんどいので適当になったけど許して