こんにちは、しらすです。
Pythonを基礎からしっかり学ぶために1日1スキルを4週間続ける「4 weeks challenge」を行ってみました！Pythonを扱うための文法やライブラリ、文字列操作から機械学習までとりあえずなんでも対象に、とにかく続けることを目標にやってみました。
先日無事に28日間のトライアルが完了したので、非常に遅くなってしまいましたが、完了レビューをしていきたいと思います。
※ルールや達成時の報酬などを決めた初回の投稿はこちらから。
トライアルした内容は以下のリンクから飛べます。
## 自分ルール
- 2020年6月15日から7月12日までの28日間とする
- 学んだスキルの大小は問わない
- 毎日ブログのPythonコーナーに1ページ作成
- 作業時間は朝の仕事前30分（できるだけ）
- 作り置きは禁止しない(できるだけ)
- 続けられたらご褒美を贈呈
## よかった点
- 毎日実施することで見直し頻度も上がり知識が定着しやすい
- 小さく少しずつやったので知識が定着しやすい
- Spyder(PythonのIDE)の使い方をとてもよくおぼえられた
- やるたびに小さな疑問が生まれ、知識がどんどん広がった
- メモリ消費やアクセス速度などに関する知識ついた
知識の定着が非常によく進んだのが一番良かった点です。最初は「長いなー」と思っていましたが、途中から色んな知識が広がってどんどんできるようになっていくことを実感できたのがとても面白いです。
また、以下のルールで進めたことで、継続性を高めることができました。正直28日間ちゃんとやり切れたのはこの辺の準備が大きかったと思います。
- スキルの大小を問わないことで毎日取り組むハードルが下がり続けられた
- 事前に調べたい内容をリストアップしておいたことで毎朝テーマを考える必要がなくなった
- テンプレートを決めたことでサイトの更新にかかる時間を大幅に削減できた
- 各ページと表紙だけは先にフレームとして2週間分くらい作成しておいた
- できるだけ朝にやるようにしたことで習慣づいた
- 罰則ではなく達成報酬を決めておいたので、気持ちよく継続できた
## 見直したい点
- 朝どうしても面倒になって夜でいいかとなってしまう
- 投稿が短いのでアクセス数が上がらない
朝はやはり面倒なのと、どうしても時間がない場合に(特に後半はなあなあになる)、朝はサボって夜やろうーとなってしまいます。仕事が大変だと夜もやる気がなくなるパターンなので、何とか朝にできるようによく注意して進めることが必要です。具体的な対策はまだありませんが、次回始める時は朝にできるように何か具体的な対策が必要そうです。
これは盲点でしたが「アクセスが上がりません」。何となく、毎日投稿していたらアクセス数が上がると思っていたところがあったので、これは割とショックでした。まずはホーム画面に表示されるように投稿を続け、最終的にホームから除外する方法がよさそうだと思いました。
## 次回に向けて
やはり取り組み最中はなかなか気を張っていたので、次回まで少し間をあけてトライしようと思います。ただ、今回やってみてこの取り組みは非常に勉強になることがわかりました。はじめは本当に小さな内容で、この程度でいいのかな、、、と思いながらはじまりました。が、最終的には色んな知識が繋がって、非常に有用な勉強となりました。また、28日間という日数もテーマとしてしっかり学習するには必要十分な時間でした！
自分の知識も、取り組みに対する自信もついたので、次回のテーマを決めてお盆明けから早速再開したいと思います。以下が次回のテーマ候補。
- Pythonで機械学習（sckit-learn, tensor flow)
- Kaggleトライアル（毎日ひとつのテーマに結果を提出する）
- Microsoft Azure (色んなツールを使ってみる）
- HTML、CSS（基本的な書き方から開始）
- 毎日プチツール作成（Gizmodeなどからテーマをひろう）
- 朝読書（学びを毎日記載する）
## 実施した内容のサマリー
### 文字列の操作
【4 weeks challenge – Python】Day 1 文字列の結合と分割
【4 weeks challenge – Python】Day 2 文字列の切り出し（スライス）
【4 weeks challenge – Python】Day 3 List型の各要素から先頭3文字を取得
【4 weeks challenge – Python】Day 4 文字列の置き換え
【4 weeks challenge – Python】Day 5 文字列の削除
### 文字列検索
【4 weeks challenge – Python】Day 6 文字列の検索
【4 weeks challenge – Python】Day 7 文字列内に任意の文字を含むかをTrue/Falseで返す
### 連番データの作成
【4 weeks challenge – Python】Day 8 連番を取得する
### ファイル名の取得と変換
【4 weeks challenge – Python】Day 9 フォルダ内のファイル名を取得 “glob”
【4 weeks challenge – Python】Day 10 ファイル名に連番をつけて一括変換
【4 weeks challenge – Python】Day 11 更新日情報の取得とリネーム
### ファイル読み込み方法
【4 weeks challenge – Python】Day 12 テキストファイルの内容を読み込み read, readline, readlines
【4 weeks challenge – Python】Day 13 pandasを使ってCSVを読み込む
【4 weeks challenge – Python】Day 14 pandasを使ってxlsxを読み込む
【4 weeks challenge – Python】Day 15 python標準のcsv読み込みライブラリ
### 辞書型データの読み込みと操作
【4 weeks challenge – Python】Day 16 CSVからDictReaderで読み込み、一部の列だけ出力する
【4 weeks challenge – Python】Day 17 リスト型を指定の文字でつなげる “join”
【4 weeks challenge – Python】Day 18 DictReaderから多層化した辞書型変数を作成する
【4 weeks challenge – Python】Day 19 辞書型変数のタイトル(key)を修正する
【4 weeks challenge – Python】Day 20 辞書型をcsvに出力する
### DataFrame型の操作
【4 weeks challenge – Python】Day 21 DataFrameの列指定とスライスを同時に行う
【4 weeks challenge – Python】Day 22 指定のkeyだけCSVに出力
【4 weeks challenge – Python】Day 23 pandasでcsvから読み込んだタイトルを修正する
【4 weeks challenge – Python】Day 27 pandas.DataFrameの各データにアクセス
### 欠損値の処理
【4 weeks challenge – Python】Day 24 欠損値を含む行列を除去
【4 weeks challenge – Python】Day 25 欠損値を置き換える
【4 weeks challenge – Python】Day 26 欠損値を前後の値の平均値で補完する “interpolate”
### loc, ilocの使い方
【4 weeks challenge – Python】Day 28 loc, ilocを使ってpandas.DataFrameにアクセス