※最新版(2021年バージョン)がこちらにありますので合わせてご覧ください!
毎年恒例, Python本と学び方の総まとめです!*1
プログラミング, エンジニアリングに機械学習と今年(2019年)もPythonにとって賑やかな一年となりました.
今年もたくさん出てきたPythonの書籍や事例などを元に,
を余す所無くご紹介します.
来年(2020年)に向けての準備の参考になれば幸いです.
※ちなみに過去に2019,2018,2017と3回ほどやってます*2.
なお, このエントリーの内容は@shinyorkeの私的見解・意見であり, 現在および過去に在籍したチーム・組織とは無関係です.
まず書籍ですが, もういきなり紹介します.
数行のコメントと共に紹介しますが,この後の本文に色々背景とか書いているのでそちらもお読みいただけると嬉しいです!*3
手元に一冊ほしい名著です!
独学プログラマー Python言語の基本から仕事のやり方まで
昨年(2018年)出版, 何版も重刷されてておなじみかなと思います.
Python言語に限らない, プログラマーとしてエンジニアとして大切な,
をまんべんなくかつ, レベル感に合わせて紹介しているのがすごく良いです.
なお昨年もこちらでオススメさせてもらいましたので興味ある方は読み返すと良いかもです.
Pythonを使ったデータなお仕事では必読・マストな一冊.
「本書は入門書ではありません」とある通り,
という方向けに,
事により,「いつまでもirisとかタイタニックやっていても?」的な所から抜け出すのには良い本かなと.
また, 私のようにすでに仕事にしている人にもTipsやレシピ的に使えるのですごく便利でありがたい一冊です!
きれいなサンプル図やコードを元に無理なく学べる機械学習の本です.
sciket-learnなどを使っていて初心者にも無理なく読めそう...というあたりはこちらのエントリーでも紹介させてもらいました.
さきほどの「Python実践データ分析100本ノック」と合わせてマストハブアイテムな感あります, ぜひこれもご一読を!*4
実務で特徴量エンジニアリングをする方必読.
機械学習のための特徴量エンジニアリング ―その原理とPythonによる実践 (オライリー・ジャパン)
レベル的にはちょっと上級者向きかもですがいい本です.
想定されるパターンごとのエンジニアリングのコツとか上手く乗ってて読みやすいですし実際参考になります.
ちなみに, 前処理大全も合わせて読むとなおベストです!
前処理大全[データ分析のためのSQL/R/Python実践テクニック]
というわけで本題です.
なお対象読者は,
のいずれかを想定しています.
今回紹介する全体像です.
プログラミング およびソフトウェア・エンジニアリングといえば, Webエンジニアリング, 機械学習, スマホアプリ開発・組み込み開発etc...とたくさんありますが, (この記事を読んでいる)大多数の方はおそらく,
に特化していると思います.
というのは, 今年流行ったこちらの書籍でも明確かなと思います.
データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理
というわけで今年のこのエントリーでは,
と分けて, 「いい感じにデータなエンジニアリングをするための歩み方」を紹介します.*5
なお,
などの流し読み・ながら読みをメッチャ推奨します!*6
物事をはじめる際はやはり「急がば回れ」で, コツコツと基礎を伸ばす所からかなと.
ということで, 独学からコミュニティ参加, 何かを成し遂げる, Webと書籍を行き来するあたりから紹介します.
まず, プログラミングの学習方法として,
この2つがあると思います.
個人的にはどちらの学び方も長所短所があり, 組み合わせて使うとベストなのですが,
まずは一人でこもって学び(つまり独学), いい感じに慣れてきたらコミュニティに出かけるのがオススメです!
今までお会いした(元)初心者の方で特にプログラミングを覚えて結果を出してる人は,
ことを自主的に, 計画的にやってる人がほとんどでした(サンプル数:おおよそ3名)
この辺の考えおよび自分が伴走して教えたときのノウハウはこちらにまとめてますので気になる方は見ていただくとして.
スラスラ教える・教わるPython - 押し付けない・楽しむプログラミング学習のカタチ - Lean Baseball
というのをやりつつ・気をつけながらいい感じにするのがコツかなと思います!
なお, この辺をいい感じにやる書籍としては独学プログラマーも良いですが, 個人的にはスラスラわかるPythonが推しです.
明確に作るもの・やりたい事の目標を作ってそこまで一直線にやる!成し遂げる!!が大事です.
よくあるキッカケとして,
と色々あると思うし別になんでもよかったりする*7のですが,
事を目標にやる人はやりきってる感あるし, はじめたキッカケそのままの人は続かない感あったりもします.
スラスラとPythonを教わっていた私の生徒は,
を明確に決めた結果, 3ヶ月程度でちゃんと使えるようになってました.
ので,
を計画的にやるときっといつか結果でるので頑張ってみましょう.
学び方ですが, 勿論書籍もありますがWebラーニングもかなり良いです.
これも毎年推してますが個人的にはPyQがメッチャ好きです.*8
年々コースが増えているのと, 操作性もすごく良いです.
個人的には力を伸ばしたかった数学・統計力を高めるのに久々にその手のクエスト・写経をやりましたが結果も出ましたしいい感じでした.
そして並行して独学プログラマーや100本ノックをこなすとかがちょうどよいと思います(推しの理由は最初に書いたとおり).
また, このタイミングで機械学習にちょっと触れるのもアリです, 個人的には先ほど紹介の機械学習図鑑もベストですが,
機械学習のエッセンス -実装しながら学ぶPython,数学,アルゴリズム- (Machine Learning)
基礎からじっくり学ぶのにこちらも最高だったので合わせてオススメです.
自分で調べたり, 人に聞きながらある程度目的のことができるようになったら仕事にしましょう.
その際にはぜひ, 現状のお仕事から.
これは断言レベルで言い切りますが,
今やっている仕事の効率化・退屈なことを追い出す事からやる, 本数をこなすが上達への近道
です!
自分の周りでもちょっとプログラミングやPythonに馴れ始めた頃に,
という方が結構いますし話も聞きます.
一方, 成功している方は,
事によって転職したり異動したりに成功しています*9.
何がいいたいかと言うと,
スキル(Python)が使えるようになるのはスタートラインで, 実績を積む今がスタートだよ!
ってことです.*10
というわけでこの段階では,
といった,
「回数が多く, 属人性が少ない」退屈なことをPythonにやらせる
事に注力するといくつでもテーマがみつかるかつ, 仕事の場合は成果も出るのでオススメです.
書籍的にはこちらの2冊なのですが,
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング
これらの書籍をチェックしつつ, 退屈なことを見つける・定義するといったあたりはこちらも参考にすると良いと思います(手前味噌).
この手の「退屈なこと」を100本とまでいかなくても10本20本と実績を積む頃にはきっといい感じに仕事になってるかと思います.
機械学習やデータサイエンスを志向する方は,
をこの頃からやると良いでしょう.*11
データベースをゼロから扱うという方は,
この辺の書籍の内容を理解し実践できると最高だと思います.*12
また, データの前処理・クレンジングも100本ノック的に訓練するのもこの頃かなと.
100本ノックの本を抑えつつ,
前処理大全[データ分析のためのSQL/R/Python実践テクニック]
前処理大全やJupyter実践入門, 最近来ているKaggle本*13の内容を押さえながら学習したり訓練するとすごくいいと思います.
この頃にはおそらく,
してるようなプロフェッショナルかなと思います.
このタイミングを上手く過ごしいい感じにするための話です.
少なくともWeb関連のサービス・プロダクトを扱っている方は両方ともあったほうが後々幸せです.
Webやアプリの事に精通していてもデータの扱い・意味がわからないとデータでなにかするのは夢のまた夢ですし, いくら数学やデータサイエンスに精通していてもサービス・プロダクトの事, Webの事を何も知らなければトンチンカンな提案・仕事しかできません(っていう両方の例はきっと皆さん思い当たる節があるでしょう*14).
という大切さは名著「仕事ではじめる機械学習」などで学ぶことができますのでこれも必読です.*15
私はデータサイエンス由縁というより, 業務システム・Webアプリのエンジニアとしてのキャリアを踏んでから今に至るのですが,
事により今の仕事(後述するデータ基盤エンジニア)もいい感じにすることができてます.
この視点でちょうど折り合うポイントはいくつかありますが, 個人的にはWebスクレイピングを攻めるのが丁度いいかなと思っています.
Pythonクローリング&スクレイピング[増補改訂版] -データ収集・解析のための実践開発ガイド
お仕事や学習のバランスを見ながらいい感じに学べると楽しいのでオススメです.
また, 昨今では
という仕事・ニーズが結構あり, そのせいか「データ基盤エンジニア」というポジションが脚光を浴びています(いい切っちゃうけど多分間違いない).
※かくいう私もデータ基盤エンジニアの一人です.
データ基盤エンジニアは,
を存分に活かせる良い仕事です.
今年になって, そんなデータ基盤エンジニアの定義・ガイドラインや役割を示すような書籍「ビッグデータ分析のシステムと開発がこれ1冊でしっかりわかる教科書」がでたり(この本は超いい本です!必読),
図解即戦力 ビッグデータ分析のシステムと開発がこれ1冊でしっかりわかる教科書
以前からデータ基盤エンジニアとして活躍されている@yuzutas0さんのブログや, プロのデータ基盤エンジニア@takegueさんのアドベント・カレンダーにも色々乗ってたりします.
Webから行ってもデータサイエンスから入ってもイケる仕事だと思うのでキャリアの目標にしていいかもしれません.*16
これはエンジニアリングに閉じないもっと広い話&私個人の私見ですが,
という局面に当たることが多くなると思います*17.
この辺については,
であるかなと思います.
何がいいたいかと言うと,
ホントのプロになるころにはプログラミングだけやっていれば・できればエエってもんじゃないぞ!
ってことです.
賛否両論はあると思いますが徐々にアジャイルやサービス志向も学ぶとよりベストかなと.
ソフトウェア・ファースト あらゆるビジネスを一変させる最強戦略
Lean Analytics ―スタートアップのためのデータ解析と活用法 (THE LEAN SERIES)
正しいものを正しくつくる プロダクトをつくるとはどういうことなのか、あるいはアジャイルのその先について
個人的には「イシューからはじめよ」が大のおすすめです.
ちなみに自分の仕事では正にそんなISSUEと戦っており, 会社の技術ブログにも書かせてもらいました.
この辺はもうちょっと色々やりながら学びたいですね.
というわけで2020年に読むべきPythonの本(と付随するいろんな考えやポエム)を紹介させてもらいました.
Pythonに限らず, プログラミングやエンジニアリングで業務や社会の課題を解決したり, 趣味的なモノをエンジョイする機会は今後ますます増えると思います.
このエントリーがそんな世の中の役に立つといいなと思うと同時に, あくまでも個人のイチ意見なので読まれている皆様はぜひ自分を信じて楽しいPython, プログラミングな生活を送ってもらえると幸いです.
最後までお付き合いいただきありがとうございました!
これも恒例のオマケです.
自分のnoteで読書ログなるマガジンをやっているのですが, こっちは技術書以外も多いので技術書, 特にPython・データサイエンスに特化した本年のオススメ3冊を.
※本編で紹介した書籍を除く.
機械学習を覚えながら一気にアプリを作る, AWSなどを使いこなすなど攻めた内容.
これの内容をできるようになるといい感じな機械学習エンジニアになれると思います.*19
ハーバード数学科のデータサイエンティストが明かす ビッグデータの残酷な現実―――ネットの密かな行動から、私たちの何がわかってしまったのか?
実際のデータ活用という意味で興味深く読ませてもらった一冊.
現実が生々しくわかるという点では色々考えさせられました, 年末年始の読み物としてもすごくおすすめ.
所属するJX通信社 がサーバレス・アーキテクチャ主体の会社なので予習とお遊び程度に読みました.
サーバレスでアプリを作るという当たりがすごくわかりやすくて良著でした, 初心者から中級者に上がるあたりで読めると良いかも.*20.
*1:ちなみにこのエントリーはPython Advent Calendar 2019の24日目となります.
*2:リンクは都度更新していますが可能な限り最新版(つまりこのエントリー)をご覧頂くのが一番幸せです.
*3:オススメ本を早く知りたいニーズにお答えして要約から作ってみました. が背景を知るとより幸せかと思いますのでどうぞ最後までお楽しみください.
*4:電子・紙どっちでもいいですがコンセプトおよび装丁を考えると紙の方が推しです.
*5:Webをやるにもデータサイエンスをやるにも, データと向き合うことが大半なので今年はデータエンジニアリングにテーマを振り切りました. PythonそのものやWebの話は機会あれば来年またやりたい.
*6:例年通りこの先長いと思いますので流し読みぐらいがちょうどよいかなと思います.
*7:けれども, 流行りや憧れ駆動だと上手く行かない時にぶち当たると続かないので明確な目的を(とこの後に書いてます)
*8:ちなみに他のサービスやってないので比較しての優越はコメントできないです. PyQじゃなくても手に馴染んでる・いいなって思うものがあればそれを続けるのがベストかと思います.
*9:未経験の状態でも社内での異動や転職で職を得るケースもありますが, 大抵の場合忙しかったり割とソルジャーな環境が多いとだけ言っておきます. ソルジャーな仕事をこなして力を伸ばす人も中には居ますが向き不向きある&心身ともに後々きっついので個人的にはあまりオススメしません.
*10:ようするに謙虚になりましょう, スキルだけでデキる仕事じゃないことを覚えましょう!ってことです.
*11:「機械学習タスクの8割は前処理」と言われるくらいこの辺重要かつエンジニア的な創意工夫や純粋な実力はこのタスクで磨かれると私は思っています.
*12:これからはじめるSQLの方はホントの初心者レベルの方にオススメ, ビッグデータ分析・活用は知識をつけつつレシピ的に使えるので実践な人にオススメです.
*13:コンペ本と思いきや実践的な内容も多く普通に参考になりました.
*14:両者のスキルやスタンスはたしかに異なりますが, 折り合いながら仕事をする・価値を出すならお互いの事を知っておくべきだと思いますし世の中両方できる人もいます.
*15:毎年推してますがそれぐらい良い本です.
*16:とはいえかなりなハイスキルが要求されるので「やってました」レベルだけだと辛いってことは一応補足しておきます.
*17:し, 局面に当たらないのは微妙だし「考えたこともない」に至っては正直プロじゃない気もします.
*18:プログラミング言語はPythonがいいのか他がいいのか, アジャイルとスクラムどっちがいいのか(これはトンチンカンな例ですが), っていうのは個人的にはどうでも良くて「眼前のISSUEや課題に対して適切な解決策で前のめりに取り組めるか?」が最も重要で, プロフェッショナルはその中で「選択肢が複数あってチョイスできること」かなあと思っています.
*19:が, 真似するのには多少難易度が高いので本編のオススメからは外しました. とはいえすごく良い本です. 余談ですが著者の一人は先程紹介した@takegueさんです&一冊頂戴しありがとうございました!
*20:なお, こちらは誕生日プレゼントで著者のお二方からいただきました, ありがとうございます!
引用をストックしました
引用するにはまずログインしてください
引用をストックできませんでした。再度お試しください
限定公開記事のため引用できません。