みなさん、Pythonの学習頑張ってますか?
私も今、PyQでPythonを独学しています。ちなみに私は、プログラミング学習経験のない超初心者です。
以前はエラーが原因で心が折れかかってばかりいましたが、最近ではエラーが出てきても冷静に対処できるようになりました。詳しくは以前書いた記事をお読みください。
現在の課題
エラーに慣れてきた一方で、最近は辞書
とファイル読込
の知識を使って、おみくじプログラムを作る問題から先へ進めないことで悩んでいます。
おみくじのようなミニゲームを作るためには、基礎だけではなく応用力が必要です。
そのため、その時には今まで学んだ基礎知識を応用して組み上げる必要があります。けれども私にはそのための応用力が身についていないのです。
そのような状態なのは、下記のことが原因だと思います。
- 学んでいることがどんなことに役立つのか分からないため、すぐに忘れてしまいがちである
- 基礎知識を理解したつもりになっているが部分的な理解で、本質的な理解ができていない
日本語の習得にたとえるなら、「日本語はひらがなとカタカナと漢字で成り立ってます」という前提知識をしっかり認識しないで学習していることに近いと思います。
私は「ひらがなを覚えましょう」という学習テーマに対し、何のために覚えるのかはよくわからないけど、ひらがなとやらを覚えようという思考で学習しているという状態です。
このように、学んでいる理由が分からないからすぐに忘れてしまっていた訳です。ましてや、この問題で学んだことは何に使えるのかということなどなかなか理解できません。
これは必ずしも私だけの問題でなく、プログラミング経験がない初心者の方も直面しやすい壁のようなものだと思います。
そんな私がこれらの課題を解決できるようなPython専門書はないかと探してみたところ、「スラスラ読める Pythonふりがなプログラミング(以下、Pythonふりがなプログラミング)」という本を見つけたのでご紹介します。
Pythonふりがなプログラミングとは
リブロワークス著、PyQの運営会社ビープラウド監修の参考書です。
例題のコードにふりがなが振られていたり、読み下し文でそのふりがなを文章にして説明してくれたりすることが特徴です。初歩的な内容も細かく解説してあるので基礎の基礎から学習できます。
スラスラ読める Pythonふりがなプログラミング (ふりがなプログラミングシリーズ)
- 作者:リブロワークス
- 発売日: 2018/06/22
- メディア: 単行本(ソフトカバー)
冒頭には以下のように書かれています。
Pythonを含むほとんどのプログラミング言語は英語と数字、記号を組み合わせて書かれているため、初学者にとっては意味の分からない文字の羅列に見えることでしょう
これはプログラミングセンスがないと感じる人間にしてみれば、本当にそうとしか思えないものなのです。
そのあとには以下のように続きます。
本書にはプログラムの意味を日本語で捉えられるようにしています。それを繰り返し目にすることで、自然とプログラムの意味を理解できます。
この段階で読むのが楽しみになってきました。
※PythonふりがなプログラミングについてはインプレスさんのWebサイトに詳しく載っています。もっと詳しく知りたい!という方は、こちらのページをご覧ください。
Pythonふりがなプログラミングを読む前
直面していた課題
Pythonふりがなプログラミングを読んで解決したことをおはなしするために、私がもともと直面していた課題に戻って、その原因を考えてみます。
おみくじプログラムを作る問題は、辞書
とファイル読込
の知識を応用して解いていきます。
ということは、ここから先へ進めなくなった原因は、辞書とファイル読込が理解できていないことだと考えられます。
辞書とファイル読み込みについておさらいをしてみると、前提となる変数と文字列の区別ができていないことに気付きました。
変数が理解できなかった理由
# データをまとめる空の辞書を作る health_result = {} # 要素の追加 health_result['名前'] = '佐藤' health_result['身長'] = 170 health_result['体重'] = 60 # 表示 print(health_result)
例えば上記のような問題を解いた時は、health_result
は文字列なのに括られていないのが不思議だけど、そういうものなんだと思いながら次の問題に進んでいました。
PyQには変数のクエストもありますが、超初心者の自分にはPyQやPyQドキュメントの解説だけだと変数という概念をきちんと理解できなかったのです(もちろんプログラミング経験者の方だと変数という概念を詳しく教えられなくても理解できると思います)。
Pythonふりがなプログラミングを読んで変わったこと
Pythonふりがなプログラミングは、実際に私がつまずいていた変数の概念を理解させてくれました。
「ふりがな」と「読み下し文」
コードにふりがなが振られていたり、読み下し文でそのふりがなを文章にして説明してくれたりすることが特徴
と、先ほどPythonふりがなプログラミングの特徴を紹介しましたが、「ふりがなと読み下し文って何なの?」とピンと来ない方もいらっしゃるのではないでしょうか。 ここでふりがなと読み下し文について説明したいと思います。※書籍ではp.12の「本書の読み進め方」というページに説明が載っています
例えばこのようなコードがあるとします。
answer = 10
Pythonふりがなプログラミングでは、このようなコードに変数answer 入れろ 数値10
とふりがなをふって解説されています。
読み下し文は、このふりがなを人が読んでも意味が通じるように「数値10を変数answerに入れろ」と解説してくれるものです。
このようにふりがなと読み下し文を使いながら、変数、条件分岐、繰り返し文のような基本文法を解説してくれます。
また、「繰り返し文を使って作成するA VS B
、A VS C
のような総当たり戦の表」「モジュールを使って日付一覧を作成するスケジュール表」のような応用力が必要な問題もふりがなと読み下し文で説明されています。
そのため「あ!こういう風に考えれば良いんだ!これがプログラマーの感覚なのか!」と初めて読んだ時に少し興奮しました。
読み下しながら問題を解いてみました
この考え方を頭に入れてから先ほどの問題を解き直してみました。
# データをまとめる空の辞書を作る① health_result = {} # 要素の追加② health_result['名前'] = '佐藤' health_result['身長'] = 170 health_result['体重'] = 60 # 表示③ print(health_result)
- 変数health_resultに「要素を持たない空の辞書」を入れろ
- 変数health_resultの中にある空の辞書に「佐藤という名前」「170という身長」「60という体重」という情報を入れろ
- 変数health_resultを表示しろ
それにより、下記のメリットを感じました。
- 落ち着いて回答できる
- 初めて目にした時、想像以上に難しいと感じない
- どのような命令を出しているのか/出したいのかを明確に理解できる
プログラミングを想像以上に難しく捉えなくなりました
- プログラム内部で扱う値(文字列、数値など)に名前をつけて利用するもの
- 変数に値を保存することを代入と言う
- 代入には等号(
=
)を利用する。等号の左辺に変数名、右辺に代入する値を指定する- 値が代入されている変数はプログラム内で文字列や数値の代わりに利用できる
はじめて変数の解説を読んだとき、「代入する意味は何だろう?」「何だか難しそうだ」と萎縮していましたが、改めてPyQドキュメントの変数について解説されているページを読んでみると特別難しいことは言われていなかったことが分かりました。
このように読み下しながら読むことで、プログラミングを想像以上に難しく捉えることがなくなりました。
また、下記のような効果も出ました。
- 基本となる概念を理解できたので、何度も復習する必要がなくなった
- 読み下しながら読むことで構文エラーが減って問題を解く時間を短縮できた
今後の目標
たとえて言えば「辞書で出てきた問題を丸暗記して、辞書を作れるようになれば、私も辞書作りを頼まれるプログラマーになれるかもしれない!(そんな偏ったことだけを頼まれるプログラマーはいないだろうけど)」と思っていました。
けれども周りのエンジニアの人を見ていると、「ひたすら言われた通りに作っています!」って感じではなくて、「どうすれば効率化できるだろう?」と少しでも作業を楽にしようとしているように感じます。
また、応用力がなければお客さまから新たな依頼が出たときに対応できません。なので、今後もPyQで学びつつ、Pythonふりがなプログラミングなどの入門書を読みながら基礎と応用力のどちらも身につけていきたいです。
PyQチームは改善を続けます
最近では、初心者の方が置いていかれないようなコンテンツを作るためにPyQチームで話し合っています。
プログラミング初心者向け新コンテンツは今後リリース予定なので、ぜひ楽しみに待っていてください!