Student-Business

プログラミング・フィリピン留学・海外旅行など自分の体験を記事にしています

プログラミング

ド素人学生がPythonを独学で勉強!上達の方法・本・参考書を詳しくまとめてみた。(随時更新)

2017/08/23

StockSnap / Pixabay

はじめに

Pythonの勉強方法や参考書がいまだにネット上で充実しておらず、初学者の僕は苦労しました。その為、他のプログラミング初心者の方の役に立てばと思いこの記事を書きました。

僕の勉強手順備忘録でもあります。

とりあえず、初めに僕がどんな感じのスペックでどうしてPythonを始めたかをご紹介するところから始めます。

Pythonを始めた動機

  • プログラミング何かしらできたらカッコいい。
  • ビッグデータという言葉が流行っていて、データ分析に興味がでてきた。
  • データ分析ができれば、大学院・就職後に何らかの意思決定をする際に役立つから。
  • 大学で学んだ理論的な知識より、技術・スキルの方が重要だとわかったから。
  • スキル欲しい・・・。

初期スペック

一応、初期スペックはこんな感じでした。

僕のスペック

  • html, cssはfc2ブログでテンプレをコピペしてたので少し読めるが、書けない。
  • Javascriptを独習JavaScript 第2版で勉強してみたが、半分くらいで挫折。
  • プログラミングの学習は諦めようかと半ば決意

→ この時点では、完全なプログラミング初心者で、学び方も分からない状況でした

PCのスペック

追記) 2017/02下旬にMacBookAir買いました。スペックもまんまこれ↓

Macは種類あるけど、初心者はMacBookAirがイチオシです。MacBookProとかは高スペックすぎてほとんどの人が宝の持ち腐れだし、MacBookはイロモノって感じで、CPUがゴミで使い物にならない。

いやぁ、MacBookAirはサクサク動いてはかどりますね。デザインもかっこいいし。

目標とするところ

・まずは基礎的なコードを書けるようにする。

・最終的には、自身で気軽に素早くデータを収集して、データ分析ができるようになる。

(別途統計の勉強もするが、はじめはPythonを身に着けることに専念しました。)

学習の過程

初心者の僕が独学でPythonを勉強してみた上で、「便利だと思ったサイト」や「こういった過程でこの本を使うといいよ」といった感じのことをまとめていきます。

はじめはやっぱり入門書を

まずは、入門書ということで一通り簡潔に載ってて、プログラミング初心者でも読めるみんなのPython 第4版を選びました。僕は何度もプログラミングに挫折しているのですが、この本はそんな初心者でも全部理解することができ、Pythonの基礎を作るのに役立ちました。

Pythonスタートブック」というもっと簡単な本もあるのですが、内容が少し薄いと感じました。「Pythonスタートブック」は買わずに、「Python-izm」を読むだけでも十分に基礎は理解できそうです。(ただこの本、はじめての方からはかなり好評)

▲丁寧な説明でPythonの基礎を身につけられる定番書!Python3系完全対応してます。(僕が買った時は第3版でしたが、人気なので何度も改訂されてます。)

読んでみた感想としては、入門書はこれ一冊で十分だとも思いました。終わった後も、簡単なコードの辞書本としても役立ってくれています。Amazonの評価はそこそこですが、間違いなく最高の一冊目でした。

インターン生はこぞってこの本を使い、「みんなのPython」を「○○のPython」と名前に書き換えて気合いをいれてました。遅い人でも2週間で終えていたので、何かしら次の本を準備しておくと買いに行く手間が省けるし、やる気に繋がると思います。

加えて第4版では、人工知能、機械学習についても程よく触れているので、そこで他の入門書と一線を画している。

しかし、入門書に向き不向きはありますし、上記の本の表紙が嫌いという方やプログラミングをしたことがない人向けの本がいいという人もいるでしょう。そんな方はやはり先ほどいった本がおすすめです。

難易度的には、「みんなのPython 第4版」より少し簡単、まさに「超」入門書といった感じの「Pythonスタートブック」。初めてPythonに触れるという方から好評です。

「入門」書は上記の「みんなのPython 第4版」だけでいいと思うのですが、もう一つおすすめしたいのが、「初めてのPython 第3版」という「基礎」本。実はこの本めちゃくちゃ素晴らしい。

「初めての」と書いてあり、たしかに難しすぎるということはありませんが、すごく分厚い書籍で網羅性があるので初心者には荷が重いと思われます。しかし、上記の参考書をやった人であれば、基礎を完全に固めるのに役立ちます。

今まで、学んできたPythonの基礎の浅さに僕は気づかされました。二冊目に買っておきたかった本です。

▲知識を深めるのに最適な本。網羅性があり厚いけど、初心者でも読めます。2冊目or3冊目におすすめ!(辞書本的な立ち位置の本)

基礎の基礎は脱出したかな?という段階

基礎的なコードは書けますという為に・・・。

みんなのPython 第4版」は辞書的に使っていたので、実はクラスのところ等は読み流しただけで理解が乏しいです。しかし、1つの本に集中できない僕は次の参考書を買うことに・・・。

参考書のレベルとしては、入門よりは難しい、基礎レベルくらいを探しました。ネットで探してはいましたが、色々ありすぎて何がいいのやら分からない。

困り果てたあげく、インターン先でPyConとかに参加してるすごい人に、「Python初心者なんですけど、いい本ありませんか?」と聞いてみると「入門 Python 3がいいよ!これ、まじ、おすすめ!」ということだったので書店で見て即買い。

この本は、基礎的な部分を前半で紹介して、後半で実用的な使い方を紹介するといった構成になっています。

前半の部分は、「みんなのPython 第4版」を読んでいたのであまり読む必要はないなと思ったのですが、後半部分が非常に素晴らしい。

情報系の学科に所属しているわけでも、IT・Webに詳しいわけでもない僕には難しい言葉も少々ありましたが、Pythonでこういうことができる!ということが分かったり、色々な分野への橋渡しをしてくれる様な内容がまとめてありました。

ただ、やはりこの本は買っておきたかった・・・「Effective Python ―Pythonプログラムを改良する59項目」。

▲エフェクティブというだけはある!プログラム改良の59項目が終わると、プログラムが見違るほど変化しています!

Pythonを勉強していてこの本を読まない人はモグリではないでしょうか。比較的、知識のない段階の僕でも読めたのと確かな力になってくれたので大いに評価したい一冊!

この本をやると、少し自分のコードに自信が持てるようになります。僕もゴミなコードから脱却できました。自分の書いたコードを講師が、矯正してくれているかのような感覚を読んでいて受けました。(覚えるべきこと的な枠が、しっかりと設けられていたせいかも)

加えて、「リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)」をやれば、コードの良し悪しがだいぶわかるようになります。

この本はPython用というわけではないですが、プログラミングをやってる方ならまず目を通してます。Amazonのレビューでこれだけの高評価を得ているのも納得の一冊

分からないことがあったら質問して解決しよう!

teratail

エンジニアのためのQ&Aサイト【teratail】

プログラミング勉強し始めた方なら知っているサイトだとは思いますが、紹介しておきます。

まず、勉強を始めようとしたら参考書を手にとりますが、必ずと言っていいほど何かしら腑に落ちない部分や理解できない部分、もっと知りたい部分というものが出てきます。そう言ったときに分からないことを質問できるのが、Q&Aサイトの「teratail」です。

Yahoo知恵袋なんかとは違い、プログラミング専門のQ&Aサイトでしっかりとした回答をすぐに返してくれます。質問したことは忘れににくくなるし、回答内容から学ぶことがものすごくあります。

質問しないにせよ、最新技術に関する質問も多くなされているので、他人がした質問とそれになされた回答を見て、知識の幅を広げておくといいでしょう。(僕はメールアドレスで登録しましたが、teratail NEWSLETTERというのが届くので非常に勉強になっています。)

▼登録してブックマークに入れておくと、すぐに使えて便利!

エンジニアのためのQ&Aサイト【teratail】

Pythonで分からないところは、このサイトで質問するとしっかり回答してくれるので、忘れずに登録しておきましょう。

オススメ

 

追記:サイト利用者急増中!

ちょっと実用的なことPythonでやってみた(データ分析編)

追記:データ分析の勉強に関して少し書きました。

データ分析・機械学習について、すぐさま学びたい方は以下のリンク先の記事を参考にしてください。ただ、データ分析となると、統計について学びながらコードを書いていくことになるので負担は大きいと思います。

この時点で、Pythonのコードについては上記の本「みんなのPython 第4版」等を読んでわかったけど、実際どう書けばいいかわからないという方も多いことかと思われます。そういった方は、データ分析などにはまだ手を出さず、スクレイピングのコードを書いてみるといいでしょう(詳しくは以下)。

僕自身は、データ分析(統計・機械学習)の勉強は、Pythonをある程度かけるようになってからやりました。しかし、ここまでで紹介した本で学んだ知識があれば、データ分析の勉強を始めることもできなくはありません。

Pythonでデータ分析入門のための本・参考書を独学した僕がまとめてみた

▼統計学の学び方については、最近僕が書いている記事が参考になるかもしれません。(書いている途中ですが)

入門・基礎レベルから統計学を学べて成長できる本・参考書・サイトとやり方を完全紹介!|数学が苦手な初心者にもおすすめな勉強方法

▼機械学習について手っ取り早く学ぶならこちら

Pythonで機械学習するための本・参考書と勉強方法など独学した手順でまとめ(随時更新)

ちょっと実用的なことPythonでやってみた(スクレイピング・クローラー編)

スクレイピング・クローリングなんかをググると分かりますが、これはWebサイトを巡って情報を取得することを指します。

データ分析がやりたい僕は、次はスクレイピングやるぞと意気込んでいたのですが、実は当時ほぼPythonでスクレイピングに特化した本がありませんでした。

(Rubyでは、「Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例」という本がでてます。僕もRubyは詳しくありませんが、この本は買いました。RubyはPythonと似てるので簡単に読めますし、スクレイピングやクローラー作成について1から10まで教えてくれる貴重な本です。)

それなので、僕は「Python スクレイピング」と検索してヒットしたブログを参考にコードを書き始めました。サイトは挙げたらきりがないくらい参考にしましたが、初心者でも理解できるように記載されているサイトが多く助かりました。

最低限必要な知識として、Beautifulsouprequestsをググっておくといいでしょう。xpathを利用して、htmlから必要な場所を取得しているサイトをよく見かけましたが、僕は「.find」「.find_all」なんかを利用しました。

そして、スクレイピングを勉強していたら、遂に「Web Scraping with Python: Collecting Data from the Modern Web」の和訳したものが3/18日に販売されはじめました。

めちゃくちゃ難しいというわけではなく、ブログなんか見て多少知識ついていればちょうど良いレベルの本です。スクレイピングに関して、ブログでは得られらかった知識も得られて、「この本がもっと早く出ていれば!」と嘆きました。体系的に纏められていることと、データベース関連の情報も余すとこなく載っているので知識の拡大にも役立ちました。スクレイピング関係のコードを書くときは必ず横においています。

今、気付いたんですが、海外だとpythonのスクレイピングの本結構でてますね。「Python: Learn Web Scraping with Python In A DAY! 」とか、「Web Scraping With Python」とか。

洋書は読んだことないのでで良し悪しは分からないですけど・・・。

邦書で、これは買わない方がいいという本は、「実践 Webスクレイピング&クローリング-オープンデータ時代の収集・整形テクニック」です。「python スクレイピング」でAmazon検索すると真っ先にこれが出てきますが、タイトルに騙されない方がいいです。

スクレイピングの勉強に悩んだら・・・

ここらへんでScrapyを使ってみましょう。あとは、スクレイピングをクラスの知識を使って書きなおしてみるのもおすすめです。

基礎的な知識の吸収にかげりが見えてきた段階

Webアプリに関する知識を身に着けよう!

スクレイピングのコードのレベルがあまり上達しないため、複雑なコードを書くためには、オブジェクト指向などの理解が必要なのでは?と思い始めました。

みんなのPython 第4版」の著者の方が、「Pythonで学ぶWebアプリ開発のABC みんなのPython Webアプリ編 HTML版(無料)」を公開してくれています。それなので、無料で分かりやすいこのサイトをまずに勉強しました。

次に、「Pythonで学ぶwebアプリケーションの作り方by Flask」を読みました。ただ、これらは導入部分なので深い知識は得られませんでした。

Pythonの知識をもっと深めよう!

他人の書いたコードを読む!

他の方が書いたコードを読んで、標準的な書き方や状況に応じたコードを学びましょう。

おすすめのサイトは、ActiveState Codeです。英語で書かれているので、英語に対する免疫が必要ですが、なくてもコードだけ読めば参考になります。

短いコードで大量のレシピが載っているので、これをやることでパイソニスタへと一歩近づけそうです!

コードの書き方を身に着けよう

ここまでいろいろと勉強してきたけど、うまいコードがかける気がしません。自分で書いてみたコードも実行はできるが、もっと簡潔な書き方があるかもしれないと、自信は身についていない・・・。

いいサイトはないかとググってはみたものの、ここまでくるともう、流し読みしたサイト・読む気が起きないサイト・難しくて読めないサイト・内容薄いサイトばかり引っかかるようになってきます。

そこで、レシピ盛りだくさん、雑魚学生にも読めて力が付きそうなPython クックブック 第2版をやろうと決意しました。

結構分厚いんですよね、これ。でも、この時の僕にはうれしい厚さです。

と思っていた時期が僕にもありました。

これは難しすぎました。というか深いところまではいり混みすぎていて勉強する気が失せました。完全に参考書選び失敗です。

ActiveState Codeで参考になるコードを探した方が、僕にはまだ勉強になりそうです。あとは、ActiveState Codeを読むだけだと少しつまらなかったので、先ほど紹介したリーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)と見比べてどういう風に書いたら良さそうか検討しました。

ちょいとここらで一休み。簡単なドラクエ制作。

クラスも基礎知識はあっても、使ったことがほぼないので、このスライドの後半(P215から)のドラクエ作るやつを楽しみながらお勉強。けど、ActiveState Codeでスクレイピングで検索して出てくるコードを参考にした方が勉強になるなと思った。

クラスを使って関数をまとめあげてあげるとコードが見やすくなるだけじゃなく、いろいろと便利になります。ある程度のレベルに達したら今まで書いてきたコードを書き直しながら勉強しましょう。

Djangoで簡単なWebサイト作ってみよう

Djangoは公式マニュアルを読むのもいいと思いますが、僕は躓きました。

その後、調べているとDjango入門に良さげなサイトを発見したのでまずはこれをやりました。

Python Django入門 (1)
Python Django入門 (2) Win編
Python Django入門 (2) Mac編
Python Django入門 (3)
Python Django入門 (4)
Python Django入門 (5)
Python Django入門 (6)

ただ、このサイトだけだと情報が希薄で独学の僕にはDjangoが全く理解できませんでした。そのため、結局はYoutubeの動画でチュートリアルをやりました。詳しくは以下の記事を参考にしてください。

PythonでDjangoを勉強するなら参考書でなく英語のチュートリアル動画がおすすめ

作りながらDjangoを学べるサイト

code4

https://code4startup.com/

サイトを作りながらフレームワークを学べるサイト。Djangoで作れるUberは有料だけど、fiverrは無料でできます。数が少ないのが残念ではありますが、十分役立つと思います。

Railsの演習用のものを探していたら見つけました。

Pythonということで、Djangoを紹介しましたが、結局日本語で書かれた資料が少なすぎて勉強はなかなか大変だと思います。

僕は、Pythonはスクレイピングしたり機械学習などデータ弄る用の言語として使うものとして割り切り、Ruby on RailsでWebサービス作るための勉強を始めました。

udemy_django

UdemyでDjangoを学ぶ

英語で有料だけど、一から十まで教えてくれるUdemyという動画サイトもあります。手っ取り早く確実にDjangoを学ぶならこのサイトです。

無料のものも実はありますので、値段を取るか質を取るかですね。

>>>UdemyでDjangoを学ぶ

 

Ruby on Railsに関しては、つい最近勉強を始めたばかりなのと、機械学習他の勉強との兼ね合いもあり、すぐには記事が書けそうにはありませんが、興味がある方がおりましたら少々お待ちください。

学校始まる前の春休み1ヶ月チャレンジでどこまで勉強できるか試して見て記事にまとめたいと思います。専攻がITとはかけ離れているので、1ヶ月で進捗出したい・・・。

追記:Railsチュートリアルの記事が完成しました。書きなぐったものなので後々修正しますが、参考になれば幸いです。

Ruby on Railsチュートリアルを読破できた勉強方法と手順・参考書!Rails初心者が独学での挫折を回避する方法

終わりに

この記事はいかがだったでしょうか。初学者のお役に立てたなら幸いです。

なお、僕自身まだ勉強途中であるので、今後もこの記事を追記・更新していく予定です。

ここまで読んでくださった方、ありがとうございます。

適度なリフレッシュは、最大の効果をもたらします。Huluで映画・ドラマ・アニメ鑑賞を楽しみましょう!

おすすめ【2017】Huluのおすすめ海外ドラマ紹介!メリットは?評判は?

マクドナルドや他多くの加盟店で、楽天ポイントが使用可能に!今後は、どこでもポイントが量産できます。

おすすめやばい!マクドナルドで楽天ポイントカードが使用可能に!マックでの使い方・活用方法まとめ

歯を白くできる歯磨き粉がマイブームです。

おすすめ【レビュー】自宅で歯の色を白くできる歯磨き粉トゥービーホワイトが超絶おすすめな理由

-プログラミング

おすすめ記事

1
【ホワイトニング】自宅で歯の黄ばみを白くするなら歯磨き粉トゥービーホワイトがおすすめ!理由と効果まとめ

  自宅で、歯磨きするだけで歯を白くできる市販の歯磨き粉をみなさんはご ...

h1_kv_04 2
ポイントたまりすぎ!マクドナルドで楽天ポイントカードが使用可能に!マックでの使い方・活用方法まとめ

  早くて安くておいしいマクドナルドを、よく利用しているという方も多い ...

71-iFIHKV6L._SL1500_ 3
【Aukey PL-WD06】スマートフォン用カメラレンズなら旅行で風景写真が綺麗にとれる!

いい写真を撮りたくて、一眼レフやコンデジを買いたいと思う方は多いでしょう。しかし ...

StockSnap / Pixabay 4
【在宅ワーク】在宅で記事を書くライターになり1文字1円以上の収入を得る方法

最近、文章を書く力・文章構成力にオシャレさを見出してきました。 文章を書くのにも ...

2 5
初心者のためのWebデザイン独学の方法と参考書を現役エンジニアに聞いてみた

今回は、htmlとcssといったWebデザインに関してどうやって学べば良いかを、 ...