プログラミングの100本ノック
プログラミングの100本ノックという言葉を聞いたことはあるでしょうか?
ノックは、野球やソフトボールでバッティングや守備練習のために使われる方法です。
100本ノックは、その
1回ボールを打つ
1回ボールを捕球する
ということを100回行う練習法です。
簡単に言うと、
集中的に練習する
ということです。
プログラミング学習でも、この100本ノックがあります。
1つ問題が与えられて、それに対して自分で考えてプログラミングする
という1問のセットが100個あるイメージです。
あるいは、100個の便利なプログラミングコードや技を紹介する形式のものもあります。
野球とは異なり一度の練習で100個(100回)の問題にすべてチャレンジする必要はないのですが、100問全体として内容がまとまっているものが多いので、プログラミング学習にお勧めです。
今日は、プログラミング言語Pythonの100本ノックを紹介します。
ライブラリに焦点を当てたもの、データ分析など目的からまとめたものなど多様な100本ノックがあります。
Pythonの100本ノック
ライブラリNumPy編
NumPyは、Pythonで数値計算を効率的に行うためのライブラリです。データ分析や機械学習に用いられます。
そんなNumPyの100本ノックが
です。
いきなり英語か、と思う人がいるかもしれませんが、問題文の英語は短いので抵抗感は少ないと思います。
解答のコードを見ながら、何をする問題なのか逆算する、という方法でも取り組めます。
Pythonのデータ分析でNumPyを使う機会は多いです。
気になる人は一度挑戦してみることをお勧めします。
ライブラリpandas編
pandasは、Pythonでデータ解析する際に用いられるライブラリです。pandasでは、表やテーブル形式でデータを扱う時に便利な機能が多くあります。
このpandasの100本ノックが
です。
実際に、pandasを使う時に、知っていると便利な技が多く集められています。
データ分析編
Pythonでデータ分析するときに役立つ知識がまとまった書籍として
『Python実践データ分析100本ノック』下山輝昌、松田雄馬、三木孝行 著
があります。
私も持っていますが、顧客データを分析していくというストーリーに沿ってデータ分析を100問実践できるので、学習を進めやすく、お勧めです。
この本では、ライブラリNumPyやpandasの使い方も学ぶことができます。
2020年12月には、機械学習にフォーカスした『Python実践機械学習システム100本ノック』も発売されています。
言語処理編
言語処理100本ノックというものがあります。
文字列の扱い方から、文章を使った機械学習まで、言語処理に関する幅広い問題が記載されています。解答は載っていませんが、WebのGoogle検索で、
「言語処理100本ノック 解答例 Python」
と探すと、いくつも解答例を参考にできます。
それほど、この100本ノックは認知度があります。
言語処理に直接関係しない人も、一度見てみると、
特定の分野について100問で学ぶ、ということのイメージが湧くかと思います。
画像処理編
Pythonを使った画像処理についても、100本ノックがあります。
です。
RGBの入れ替えから、物体検出まで、画像処理について100問、広く学ぶことができます。
画像処理の領域で機械学習に取り組みたい人には、特にお勧めの教材です。
番外編
ディープラーニング
ディープラーニングに関して100問ではないですが、ノウハウが詰まった教材が
です。
Pythonのディープラーニング用のライブラリとして広く使われているPyTorchを用いて、演習に取り組めます。
アルゴリズム
100 Plus Python Programming Exercises Extended
では、幾つかの基本的なPythonライブラリのみで、問題を解くことができます。
そのため、Pythonでの基本的な文法、関数やクラスの使い方に注目して100本ノックを試してみたいときには良い教材だと思います。問題文は英語ですが、英語の教材にもチャレンジしたいという人には選択肢になると思います。
は、WebブラウザでPythonのコードを書いてすぐに走らせることができます。最後の方の問題は結構難しい印象なので、
- 最近Pythonを使っていない。復習にWebブラウザでさっと問題にチャレンジしよう
- すぐにわかる問題のみ取り組んで、まだわからない問題は、プログラミング学習が進んでから戻って来よう
などのスタンスで試してみると良いと思います。
ドリル感覚で挑戦
このように多くのPython100本ノックがあります。
プログラミング学習で、100本ノックは漢字ドリルのようなものです。
Pythonプログラミングで作りたいものを決めた。後はそれに必要なスキルを習得するだけ
というゴールへまっしぐらの人は、
- 隙間時間の息抜き
- エラー解消がうまくいかないときの気分転換
などに100本ノックはいかがでしょうか。
自分の普段のコードの書き方にはない、意外な気づきが得られることもあります。
ボトムアップ型で一つずつ勉強しながら、プログラミング学習に取り組んでいる人には、
テーマに合ったPython100本ノックは、有力な教材候補になると思います。
- 1問目から100問目までしっかり取り組むもよし
- 気になるテーマの問題だけ解いてみるもよし
100本ノックは色々な使い方ができます。
気になった人は、一度見てみることをお勧めします。
目から鱗の解答法に出会えるかもしれません。
コメント