はじめに
Python学習を始めて2ヶ月が経ちました。
この1ヶ月は、コードを書く練習というよりも「処理の構造」を理解する学習が増えてきた期間でした。
そしてもう一つ大きかったのが、スマホでコードを書ける環境ができたことです。
Pythonistaというアプリを使うことで、簡単なコードであればスマホでも十分に試すことができるようになりました。
今回は、この1ヶ月でどんなことを作りながら学んできたのか、そしてスマホ学習の中で感じた変化を整理してみます。
この1ヶ月で作ったもの
この期間は、クラスを使った簡単な処理を作りながら学習を進めていました。
主に作っていたのは、ボートレースの選手データをイメージしたクラスです。
例えば、選手の勝率などを持つクラスを作り、そこから条件に合う選手を抽出したり、平均を計算したりする処理を書いていました。
この中で体験したのは、
データを条件で抽出する
↓
必要な情報を集計する
という、データ処理の基本的な流れです。
最初は単純な処理でしたが、「こういう流れでデータを扱えるんだ」という感覚が少しずつ見えてきました。
クラスを使った処理は、以前PCでクラスの実験をした経験がベースになっています。
※そのときの話はこちら。
(→ PCで初めてクラスを触ってみた話)
ランキング処理を作ってみる
次に取り組んだのが、ランキング処理です。
例えば、
・最も勝率が高い選手
・最も勝率が低い選手
を探す処理を書いてみました。
ここでは、
max
min
などを使いながら処理を作りました。
その後は、sorted() を使って複数の選手を順位順に並べる処理にも挑戦しました。
さらに
enumerate()
を使って、順位表示の処理も追加しました。
このあたりで、
データを評価する
↓
並び替える
↓
順位を表示する
という流れが少し理解できるようになってきました。
スコアリング処理を作る
この期間で一番面白かったのは、自分の考えをコードにしてみることでした。
ボートレースの予想をするとき、自分の中ではなんとなく次のような要素を見ています。
・勝率
・スタートタイミング(ST)
・コース
そこで試しに、
score = 勝率 − ST + コース補正
のような形でスコアを作ってみました。
もちろんかなり簡単なものですが、
人間がなんとなく判断していること
↓
コードにしてみる
という体験ができたのは面白いポイントでした。
コードを書く感覚が少し変わった
この1ヶ月で一番大きく変わったのは、コードを見る視点かもしれません。
最初の頃は、
コードを書く
という感覚が強かったのですが、
最近は少しずつ
処理の構造を見る
という感覚に変わってきました。
例えば、
forループ
sorted()
lambda
などの役割が少しずつ整理されてきました。
「この処理は何をしているのか」を前より意識して見るようになってきた気がします。
スマホでここまでできた
この1ヶ月の学習で、もう一つ大きかったのがスマホでコードを書ける環境ができたことです。
Pythonistaというアプリを使うことで、簡単なコードであればスマホでも十分に試すことができます。
※Pythonistaを実際に使ってみた話は、こちらの記事で詳しく書いています。
(→ PCがなくても前に進める。Pythonistaで見えた新しい選択肢)
例えば、
・クラスの簡単な実験
・ランキング処理の確認
・小さなコードの修正
などは、通勤時間やちょっとした空き時間に触ることができました。
以前は、
PCの前に座らないと何もできない
という感覚がありました。
でもスマホでも少し触れるようになったことで、気軽に隙間時間で触れるようになり、心理的なハードルはかなり下がった気がします。
以前書いた学習ルーティンの記事でも触れましたが、平日は通勤時間などの隙間時間を使って学習することが多いです。
※普段の学習ルーティンについては、こちらの記事でもまとめています。
(→ 35歳会社員のリアルな1日Python学習ルーティン)
忙しい社会人にとっては、この変化はかなり大きかったと感じています。
Pythonが分析ツールに見えてきた
もう一つ面白かったのは、Pythonでデータ処理ができる感覚が出てきたことです。
例えば今回作った処理は、
・条件でデータを抽出する
・平均を計算する
・順位を並べる
といったものです。
これって実は、Excelでよく使う
COUNTIF
AVERAGEIF
などの処理とかなり似ています。
今はまだ簡単なことしかできませんが、
Excelでやっていた処理
↓
Pythonで書く
という感覚が少し見えてきました。
次にやってみたいこと
次にやってみたいのは、実際のデータを使った分析です。
ボートレースのデータをCSVで扱いながら、例えば
・コース別の成績
・STと成績の関係
・コース × ST
などを見てみたいと思っています。
まだ学習途中なので、どこまでできるかは分かりませんが、少しずつ試してみたいと思っています。
今の現在地
2ヶ月の学習を振り返ると、今の自分の感覚はこんな感じです。
文法理解 → だいぶ安定
クラス操作 → 少し慣れてきた
データ処理 → 簡単なものは書ける
CSV分析 → これから
まだまだ学ぶことは多いですが、少しずつできることは増えてきました。
まとめ
この2ヶ月で感じたのは、
忙しい社会人でも、隙間時間を使えば少しずつ前に進めるということです。
スマホでコードを書ける環境ができたことで、
「PCの前に座らないと何もできない」
という状態ではなくなりました。
まとまった時間が取れなくても、少しずつ進める方法はある。
少なくとも今の自分にとっては、このやり方が続けやすい形になっています。
