読者です 読者をやめる 読者になる 読者になる

まどかの戯言集

美容・恋愛についてアラサー男子が実際に使ったり/試したものを書き綴る

『実践力を身につける Pythonの教科書』を読んだ後に読むと良いpythonの良書3選を紹介したい。

はじめに

某メルマガで

 

統計解析とか人工知能もPythonでいいですし、まあ、このメルマガ読者なら、黙ってPythonですよ。僕はいま売られているPythonの入門レベルの本は全部買いましたが、この一冊が圧倒的に良かったです。

 

とpythonを激推しされていたのを読んで、僕自身もそこで紹介されていた一冊を読んだことがあったのでとても共感を覚えた。

 

学生時代からプログラミングに慣れ親しんでいたが、メルマガでも触れられているRailsでウェブサービスを作ったり、研究室ではRを使ってデータ分析をして過ごしていたため、pythonに触れ始めたのは社会人になってから。

 

現在、開発言語はnodejs(javascript)をメインにサーバーサイドのエンジニアをしつつ、AWSやGCP上に構成されたインフラも見ているが、1.5ほど前に「継続的インテグレーション」を実現するためにpython製のdeployツールを使う必要があり勉強を開始した。それからしばらく経過して、その本に出会ったのだ。

 

pythonは美しい。コードブロックをindentで表現するところも綺麗だ。専門的なライブラリも豊富で、話題の人工知能・機械学習等についてはかなり豊富になっている。Googleの提供している「tensorflow」もpythonで書くことが出来る。

 

今日存在するエンジニアで「Deep Learning」を触りもしないエンジニアは本当にいらなくなっていくエンジニアだったりするし、そういった意味でも、最先端の技術にとっつきやすいpythonというのは、今流行りの言語と言っても過言ではないのだ。

 

今回、僕はこの記事で

 

  • 読み終えた後の学習の流れ
  • 目的別オススメの書籍

 

の2点を皆様に共有したい。「タイトルと違うじゃないか」と言う点はスルーしてくれ。本記事は、プログラマ、エンジニア、理系よりのエントリーになるため、ここまでの文章を読んで理解できなかった人はこの記事を読んでも何も意味がないので黙ってブラウザを閉じてTwitterに戻ろう。少しでも興味があるなら読み進めて欲しい。

 

 

目的別・読み終えた後の学習の流れ

この一冊を読み終えるとpythonの文法・作法が一通り身についているはずだ。pythonと言っても、それ自身は「言語」ということには変わりないので「英語」や「他国語」を学んだこととそんなに変わりはしない。

 

プログラミング自体に慣れ親しんでいないと「変数」とか「メモリ」とか「array」とかプログラミングの概念に関する諸々を言われると「ポカーン」としてしまいがちだが、この本は丁重にそういう部分から書かれている。「四則演算子」「関数」「ループ」etc.. プログラミングの基礎も全てサンプルコードが付属しているので、写生するだけでも初心者であれば充分勉強になるだろう。

 

言語の基礎を理解したなら、後は「それを使って何をしたいか?」がとても重要になってくる。英語を話せるだけでは意味がないことと同じだろう。

 

その目的によっては、pythonに限らず高度な数学の知識が求められる場合もあるし、単純にフレームワークの勉強が必要になるかもしれないし、紹介されていた本の後半部分でも触れられている「ライブラリ」を使えるようさえなればいいので殊更勉強しなくても良い場合もある。

 

このメルマガを読んでいる人のクラスタの偏りを考えると、僕個人的には「ウェブサービス作成」「ウェブクローリング&スクレイピング 」「データ分析」という大きな3つの需要があるのではないかと思う、python自体についてではなく、あくまでツールとしてpythonを使って何かを実現したいという目的。

 

もちろん、ちょっとした便利コードを書いて「普段の雑多な手間を省くような自動化をしたい」みたいな需要はあると思うが、それはとてもパーソナルなのでここでは扱えないし、「pythonの言語自体に興味が出てきた!」みたいな人であれば勉強の流れなんて紹介しなくても自分でどんどんのめり込んでいくのでここでは扱わない。

 

今後の基本的な学習の流れとしては

 

  1. 目的を見つける
  2. 目的のための学習経路を模索する
  3. 学習・目標へチャレンジ
  4. 目的を達成する

 

プログラミングに限らず、何かツールの使い方を覚えたら次は「そのツールで何をするか?」を考える時と同じフローだ。

 

個人的には、先程上にも書いたように「ウェブサービス作成」「ウェブクローリング&スクレイピング 」「データ分析」が大きな目的になるので、その順で学習していくと楽しいかもしれない。

 

一度Webサービスを1人で作り上げる経験はとても勉強になるし自信にも繋がる。そうするとただのWebサービスじゃなくて、色々なデータを表示したり、データを集めたり、そういった分析みたいなことを、何故かしたくなるはずだ。そこでスクレイピング技術を身につけてデータを集め、データ分析の基礎を勉強してpythonで実装してみる。良い学びのループが完成する。

 

今回紹介する書籍にはpythonのウェブアプリに関するものはない。一番シェア率が高いDjangoに関する書籍はあまりないので、こちらの記事を参考にはじめるのが一番最善だろう。

qiita.com

 

ウェブスクレイピングがデータ分析に関しては、後ほど紹介する書籍でかなり詳しく勉強できるのでそちらを参照してほしい。

 

そうやってpythonというツールを使って自分が実現できる事の幅が広がるとプログラミングの楽しさを実感するに違いない。そうすると楽しみの連鎖でどんどん学習意欲が湧いてくる。そうなれば、もう君は立派なエンジニアだ。

 

だが、本当に何度も何度も繰り返すが「プログラミング言語」は「言語」と同じで、ただの「ツール」であり、その「ツール」を使って何をするかという目的が一通りの学習を終えた後に一番重要になってくる。

 

目的を定めないと、コードを書かなくなり、結局すぐに忘れてしまうし、目的なくコードを書いていても面白みなんてない。

 

「pythonを書けるようになったら何をしたいか?」ということを常に意識しながら、某メルマガで紹介されいた本を読み進め基礎をつけ、その後の学習にぜひつなげて欲しい。

 

目的別オススメ書籍3選

 

ウェブクローリング・スプレイビング

Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-

Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-

 

 タイトル通りで、こちらの書籍を一通り実装するとウェブ上に存在する様々なデータを収集するプログラムを書くことができるようになる。

 

「ウェブ上からデータを集めて何がしたいか」の目的や例も掲載されているので「これができると〜ができる」というイメージが湧きやすくコードを書くモチベーションも湧くので、最初に手にとって欲しい本はこちらだ。後半は、取得後のデータの加工、データベースへの保存や、定期的実行のための方法についても幅広く書かれているので初心者でも手がつけやすい。

 

「商品n」を売っている「ECサイトA」、「ECサイトR」で値段を比較し、その差が「x」以上になった時アラートを飛ばしたり、自動で買い取り一方のサイトで売るみたいな、せどりの自動化プログラムなんぞ、この一冊読めばかけるようになる。

 

自動化のあれこれ

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

  • 作者: Al Sweigart,相川愛三
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2017/04/25
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る
 

まだ未発売だが、同じ著者が書いた英語版なら既に発売されていて僕は英語版を読んだ。

Automate the Boring Stuff With Python: Practical Programming for Total Beginners

Automate the Boring Stuff With Python: Practical Programming for Total Beginners

 

基本的には単純作業の自動化の話がメインになる。日々の仕事の中で頻繁に発生する、ファイル名の変更や表計算のデータ更新といった作業の自動化や、そのような単純な繰り返し作業はコンピュータに肩代わりしてもらおうという内容。日々のちょっとした単純作業や雑務をしないだけで、驚くほど精神的にも体力的にも負担が減ることは、社会人の皆様ならご存知のことだろう。

 

amazonでの紹介を見るとノンプログラマーの人でも読めるそう。

 

本書で基本をマスターすれば、プログラミング未経験者でも面倒な単純作業を苦もなくこなす便利なプログラムを作れるようになります。 

 

初心者でも手にとってみる価値はあるに違いない。英語ができるなら英語の方で進めると手っ取り早い。英語版の内容は個人としてはとても簡単な内容だった。

 

話題の機械学習

はじめての深層学習(ディープラーニング)プログラミング

はじめての深層学習(ディープラーニング)プログラミング

 

話題の「Deep Learning」の超オススメの一冊。昨今のトレンドを見ると機械学習の知識があるのと無いのでは今後マジで年収にも響きそうな勢いなので、とっついておいて損はない。

 

ただ、文系出身だったり、数学からしばらく離れて生活していた人だと数式を見た時点で卒倒するので、まずはディープラーニングの仕組みや理論を知らなくても、とりあえずコードを写生すると実際に機械学習の分析ができちゃうよ!と言う一冊がこちらだ。

 

こちらの一冊はpythonの基礎知識さえあれば誰でも読み進み実装できるので機械学習の触りとして読み始めるにはもってこいの一冊だと僕は思う。

 

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

 

『はじめての深層学習(ディープラーニング)プログラミング』を読み終えて満足してしまったら、それはそれでも構わないが、実際に機械学習の仕組みや理論から学びたいという人にはこちらの一冊を強くオススメする。

 

一定以上の数学の知識も必要なるので、社会人になり数学と遠く離れている人には少々つらい一冊になるだろうが、内容は神。3章あたりまでは簡単だが、4章あたりからきつくなる。僕自身もすっかり数学知識が抜けていたので挫折しそうになったがちゃんとやり終えた。

 

プログラミングのための線形代数

プログラミングのための線形代数

 

 そんな数学に苦しむみなさまにおすすめする一冊がこちら。

 

機械学習にはつきものと言っても過言ではない「線形代数」。少し古い本だがプログラミングのために特化して書かれており、かつ基礎の基礎から書かれているので、高校・大学の授業を思い出しながら読み進めていける。

 

そうすると、機械学習で頻繁に出てくる数式にもアレルギー反応がでなくなるだろう。こいつには本当に助けられた。

 

まとめ

以上が、現役エンジニアのおすすめする「プログラミング言語を習得後の学習の流れ」、そして「目的に応じたおすすめの書籍」の紹介だ。

 

文部科学省は小学校でプログラミング教育を必修化する検討をしているというのは既に皆様もご存知のことだろう。日本でも既に子ども向けのプログラミングスクールが存在し大変賑わっているというもの有名だ。

 

誰もがプログラミングできる時代がそのうちにやってくる。そんな時、プログラミングが全く出来なく取り残される大人になりたいか、否。

 

実務で使わなくとも触りぐらいはできる程度の知識とスキルは最低限身につけておくべきだろう。

 

そんな時、学ぶ候補として一番おすすめされているのが今回のエントリーの中心でもあるpythonだ。

 

理系、文系関わらず、ぜひ興味を持って取り組んでみて欲しい。

 

実践力を身につける Pythonの教科書

実践力を身につける Pythonの教科書

 

 

番外編

少なからず、プログラミングを覚えると誰しもが少しは夢をみるハッキング。そんな中二病な読者の皆様にはこちらの一冊がおすすめだ。

サイバーセキュリティプログラミング ―Pythonで学ぶハッカーの思考

サイバーセキュリティプログラミング ―Pythonで学ぶハッカーの思考

  • 作者: Justin Seitz,青木一史,新井悠,一瀬小夜,岩村誠,川古谷裕平,星澤裕二
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2015/10/24
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログ (10件) を見る
 

  

www.madoka-saotome.xyz