- TechTrain流 学習ロードマップ - Pythonの学び方
TechTrain流 学習ロードマップ - Pythonの学び方
この記事に登場するメンター
TechTrainにはさまざまな技術領域に長けた ITエンジニアのメンターが約140名所属しています。そんなメンターの方々から、「その技術、いま学ぶならどう学ぶ?」をテーマにインタビューした結果から、分野別の学習ロードマップにまとめてご紹介します!
メンター紹介
Pythonとは?
Pythonは、1989年にグイド・ヴァンロッサム氏によって開発された言語です。その後1991年に一般公開された後も次々と新しいバージョンがリリースされています。シンプルな文法で書きやすく、Web開発やデータ分析、機械学習など幅広い分野で利用されています。豊富なライブラリが用意されているのが特徴で、さまざまな分野や用途に応じて手軽に動く機能やものをつくることが叶う言語なので、ぜひチャレンジしてみてください。
ではさっそく、Pythonのカジュアルさが好きというkodaniさん直伝の学習ロードマップを紹介します。
オススメは以下の3つ!
kodaniさんおすすめの学習コンテンツとして以下の3つをご紹介いただきました!
コンテンツを紹介する前に、本記事で紹介する3冊についての補足です。
- 1:Pythonでプロダクトを開発する場合の情報が豊富
- 2:Pythonでプロダクトを開発する場合の情報が豊富
- 3:Pythonでデータ分析の処理をする面での情報が豊富
ひと通り読んでいただくことはもちろん、自分に必要な学習に応じて読む場所を選んで良い記事となっています。ぜひ、ご自身の学習したい希望に合わせて活用してみてください!
学習の進め方
今回ご紹介いただいた学習の進め方については、すでにPythonの基礎を習得しており、よりPythonのスキルをアップさせたい方に向けた内容となっています。Pythonでもっと色々なアプリケーション開発を極めたい、より多くのデータを扱うときの処理方法を知りたいという方はぜひ読み進めていってください。
これからPythonを学び始める方へ。この記事の「Pythonをはじめる」をお読みになってから、チュートリアルやTechTrainのRailwayを利用して、まずはPythonのコードの書き方を知り、コードを書くことに慣れるところから始めましょう。
Pythonをはじめる
Pythonはインタプリタ上で”>>> import this”と入力すると、Pythonの思想である”The Zen of Python”がテキストで出力されます。(ぜひ自分でテキスト全文を出力してみてくださいね!)
プログラマが持っておくべき心構え、Pythonの考え方の根幹となるものなので、さっと目を通してから学習を始めてみると良いと思います。
①Effective Python 第2版
アプリ開発で汎用的に参考になる書籍です。1冊で実践的なPythonテクニックを幅広く学ぶことができます。テクニックとしては、並行処理や並列処理、非同期処理、コルーチンなどパフォーマンスを最適化するために必要な処理の情報が豊富です。
前半は基礎的な内容から始まり、徐々に読んだだけでは頭に入ってこないような高度な技術が増えてくるので、実際に書いて手を動かしながらキャッチアップすることが必要です。
こちらの書籍は、kodaniさんも手元に紙で置いていました。初めて買ったのは第1版だったそうですが、アップデートされている最新版(2024年11月時点)の第2版もお持ちでした!
kodaniさん自身も実際に、もともとPythonの経験がまだそんなになかった時に選んだ本。入門書を読んだ後に、実際のプロジェクトに入るには足りない知識、例えば、並行処理や並列処理のPythonでの書き方やそれに関連する実践的な部分を補うという目的で初版を購入したそうです。
今でもPythonで実案件の開発にあたるときには、細かいところをチェックするときのリファレンスとして活用しています。Pythonでアプリを開発する場合は、手元に置いておくことをおすすめします。
by kodaniさん
kodaniさん的「Pythonを理解したといえるレベル」はここ!
まず、Pythonはオブジェクト指向的なプログラミングも関数型のプログラミングもできるので、プログラムを作る中で、その両方を使いこなせるようになったら一定Pythonをできてきたと言って良いのではないでしょうか。
また、パフォーマンスにフォーカスした場合にはなりますが、並列処理、並行処理の書き方、コルーチンという型、非同期のプログラミングの要素それぞれを使って性能面を意識したプログラミングができるようになると理解したといえます。それに加えて、必要な場面や場合によって、C言語風にPythonを書くことができるというのも理解度を測るポイントになります。この点は次の②で詳しく記載しています。
Pythonは、自由度の高い言語であるため、場面によって様々な書き方やその機能を使いこなすことができるようになると理解が深まったと感じる言語だと思います。
②ハイパフォーマンスPython 第2版
こちらも、Pythonでアプリ開発、特に、時間効率性や資源効率性を高めたい局面で読むとためになる本。
パフォーマンスの話をするにあたって必要なコンピューターアーキテクチャや、Pythonのリソースの使われ方の特徴などの話から始まります。パフォーマンスを改善するにあたり、ボトルネックとなっている部分の特定方法や、その特定したボトルネックの改善方法を複数提示してくれます。1冊で、パフォーマンス改善の基本から実践まで幅広く学ぶことができます。大量のデータを捌くための処理を知りたいときや、パフォーマンスで苦戦した時には欠かせない書籍です。
kodaniさんが、元々あるプロダクトの刷新に向けバッジ処理の開発に携わっていた際、なかなかパフォーマンスを改善できず苦戦していた状況を打破するために選んだ本だそうです。
Pythonのパフォーマンスに関して書いている本はあまり数自体が多くなかったので、選んだ記憶があります。この本に限ったことではありませんが、書籍を選ぶときは、購入前に本屋で実物を手に取りパラパラと目を通し、自分が望む情報が載っているかを確認して選ぶことがほとんどです。
by kodaniさん
③Pandasクックブック―Pythonによるデータ処理のレシピ―
この書籍は、PythonのライブラリであるPandasでデータの操作や分析をする際の参考として適したコンテンツで、テーブル形式のデータを加工するときにおすすめしたい1冊です。読むシチュエーションとしては、巨大なCSVデータや、エクセルなどの表計算形式のファイルで処理するには大きすぎるデータをPandasを利用して加工したい時をイメージしています。
こちらの書籍では、Pandasの使い方だけにとどまらず、ネットでもなかなか見つからない細かい部分の説明や性能面への考慮含めた多角的な視点での説明もあるため、あらゆる面で参考になる書籍です。
実際、kodaniさんが過去にバッジ処理の実装でPandasを利用していた際、複数の書き方があるがどれがそのバッジ処理に適した書き方なのかを確認するための拠り所にしていたとおっしゃっていました。
大量のデータを扱うときのパフォーマンスにも言及されており、その部分も実際にかなり参考にしていました。 Pandasで業務にあたることがある場合は、辞書のように必要に応じて読む使い方をおすすめします。
by kodaniさん
まとめ
今までの経験の中ではデータエンジニアリングな側面でPythonを扱ってきましたが、それに加えてバックエンドとしてアプリ開発ができたり、日常の効率化のツールの開発など、いろいろな使い方が手軽にできるところが魅力的な言語です。そして、フレームワークやライブラリも豊富にあり、コードを作り込まずとも簡単に動くものを作ることができるという点でも、始めてみやすい言語なのではないかなと思います。
いろいろな利用シーンで活躍する言語なので、ぜひ、皆さんも自分のやりたいことを実現するための様々な書き方やPythonの活用方法を学んでみていただけると良いのかなと思います!
by kodaniさん