こんにちは!
スマレジ・テックファームのWebエンジニアやまてと申します。
はじめに
Web関連の自習について、学習効率を高めることを目的として、月に1記事、振り返りのブログ記事を投稿しています。(2022.5〜)
半期目標 Goal
半期目標 Goal
自己成長についての半期(2022/05/01~2022/10/31)の目標ですが、以下の内容にしています。
1.DB設計の習得
3.Webアプリケーションのセキュリティの習得
「習得」のレベル感としては実務で求められる業務に食らいつけるくらいのイメージです。
読んでいただく方にとっては参考になるかはわかりませんが、どんなことを考えながら学習を進めているかを書き出していけたらと思います。
今回は、先月 8 月を振り返っていきます。
目次
- はじめに
- 半期目標 Goal
- 目次
- 計画 Plan - 8月
- 1. SQL、データベース
- 2. PHPとオブジェクト指向の習得
- 3. Webアプリケーションのセキュリティの習得
- 4. 技術系のブログ記事投稿
- その他(習慣化など)
- 計画 Plan - 9月
計画を立てる → ひとまずPDCAサイクルを回していこう!ということで、記事構成としてもPDCAの順に書き出していきます。
PDCAの中身は、
- 計画 Plan → 何をするの?
- 実行 Do → 何をしたの?
- 検証 Check → やってみてどうだった?
- 改善 Act → 今後どうする?
という感じです。
計画 Plan - 8月
以下のとおり、先月の計画を立てました。
計画 Plan - 8月
1. SQL、データベース
- 独学エンジニアの動画講義、課題
3. セキュリティ(徳丸本)
- 4.Webアプリケーションの機能別に見るセキュリティバグ
4. 技術系のブログ記事投稿(週一ペース)
(過去記事:ひと月の振り返り - 2022年7月 - 転職したらスマレジだった件)
ちなみに、2022年8月末時点で、Webエンジニア経験は 9 カ月になりました。
1. SQL、データベース
実行 Do
Web開発についての動画学習教材 独学エンジニア の「PART7 データベースとSQL」の下記の講座(動画視聴、SQLコーディング課題など)を受講しました。
- レッスン42:トランザクションで同時実行制御しよう(最新講義)
検証 Check
- レッスン42の最後の課題は、データベースに対して、トランザクションを開始して、ロールバックとコミットの挙動を確認する、という内容でした。半年前に受けたスマレジの研修でも同様の課題があったため、良い復習になりました。
- 実務で「同時実行制御」を加味したシーケンス図を作成する機会があり、学習の内容が実務で活かせました。
改善 Act
- 今後も自習内容を近々実務で活かせるような学習内容を優先していきたいと考えています。
- 続いてのレッスン43は「【プロジェクト】ログ解析システムを作ろう」という、「PART7 データベースとSQL」の集大成の課題があるため、9月の課題として取り組みます。
2. PHPとオブジェクト指向の習得
実行 Do
Web開発についての動画学習教材 独学エンジニア の「PART3 PHPとオブジェクト指向」の下記の講座の課題について実装をしました。
- レッスン17:ブラックジャックゲームを作ろう
GitHubで進捗の履歴を Public リポジトリとして公開しながら進めています。
- 8月に入ってからは、以下の変更を加えました。
- プレイヤー人数変更の機能追加
- クラス図、シーケンス図修正
- Playerクラスの抽象クラス化(Solid原則に則っての修正)
同じく独学エンジニア の「PART8 フルスクラッチでWebアプリケーション」の下記の講座(動画視聴、課題)を受講しました。
- レッスン44: PHPでシャッフルランチサービスを作ろう(最新講義)
参考ツイート:
#本日の自習 8/28 6h
— やまて|Webエンジニア2年目 (@r_yamate) 2022年8月28日
✅#徳丸本 4.9 メール送信の問題
✅ブログ記事下書き
✅ #独学エンジニア シャッフルランチサービス課題 44.3
答案作成完了!一人ランチが発生しないように表示するのに手こずった。 pic.twitter.com/yC0NkFoKxl
検証 Check
- 「最大3人までのプレイヤーでプレイできるよう変更する」という機能追加としてはシンプルなもので、動作としては5日間(10hくらい)で完了しましたが、コードの状態としては変更しづらいな…という感触でした。
- 続けて、SOLID原則に沿って書けているか、講義内容を復習しながらコードをリファクタリングすることで、元のコードよりは断然良くなったと思います。もっと良いコードにする余地があるとは思っていますが、自分で考えて、積極的にああでもないこうでもないとコードを書き換えていけていると思います。
改善 Act
- デザインパターンを考えることでもっとコードが良くならないかについて、残る機能追加「ダブルダウン、スプリット、サレンダーのルールを追加する」課題取り組み時にチェックしていきます。(9 月で完了させたい)
- 完成までの期限については実務を意識して、なるべく工数を見積もって進めることを習慣づけたいため、工数の見積もりを分からないなりにもしてみて、仮でも期日を決めて、それを目処に進めます。
- 「レッスン44: PHPでシャッフルランチサービスを作ろう」の最新更新分を進めていきます。
3. Webアプリケーションのセキュリティの習得
実行 Do
5月に読み始めた『体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践(徳丸 浩 (著))』(通称「徳丸本」)を読み進めています。
- 4.Webアプリケーションの機能別に見るセキュリティバグ
検証 Check
- 一日 1 項目ずつ淡々と読み進めて、p230〜280(688ページ中)のあたりを読みました。
- 電車の通勤時間で読んでいるので、ブラウザでテストしてみるハンズオンは省略することにしました。
改善 Act
- 一日 1 項目は読むだけだとスローペースすぎるので、9月は一日 10 ページペースで読み進めて、一旦早く読み切ってしまおうと思います。
- ブログ記事の題材としてアウトプットすることを理解を深める次の一手として考えているので、なるべく早く一つ題材とする攻撃を選んで、記事にしてみたいと思います。(9月より先かも)
4. 技術系のブログ記事投稿
実行 Do
- 毎週、ブログ記事を投稿しました。記事の内容は以下のとおりです。
- ブログに加えて、Qiitaにも投稿しました。
検証 Check
- ブログ記事は週1ペースで少し執筆スピードが上がったような気がします。題材によるだけかもしれませんが…
- 投稿したブログ記事 をいくつか Qiita にも投稿しました。Qiitaでは、閲覧数が桁違いであることもあり、コメントなどのリアクションを多々いただくことができ、とても勉強になると感じました。
- はてなブックマークでも多くのコメントがあり、参考になりました。
改善 Act
- 今後も Qiita にも投稿を継続したいという意欲が湧いていますので、月 2 記事 を一旦、9月の目標に入れてみます。
その他(習慣化など)
朝活の継続
- 一日1〜3時間程度の朝活を、4月8日に開始して以降毎日継続更新中です(8月31日で、146日継続)。
学習時間の確保(月100時間)
- 115.5時間学習しました。お盆に一人の時間が多かったため、時間確保が多めにできました。9月も100時間学習を目処に学習します。
実務
- システム改修の設計段階ですが、資料作成(概要書作成)について、ひたすら作業しています。
計画 Plan - 9月
1. SQL、データベース
- ログ解析システムを作る
3. セキュリティ(徳丸本)
- 4.Webアプリケーションの機能別に見るセキュリティバグ
4. 技術系のブログ記事投稿
ブログ記事投稿(週一ペース)
※ 今後のブログ記事の題材案
- Qiita記事投稿(月 2 記事)
また、下半期開始(11月〜)くらいで、スマレジのAPIを利用したWebアプリ開発したいと思ってます。
振り返りは以上です。来月も振り返っていきます。
ありがとうございました。
福山城。綺麗になってた。先週実家帰ったとき。新幹線のホームから見えるのいいですね。 pic.twitter.com/KrxhnruOLS
— やまて|Webエンジニア2年目 (@r_yamate) 2022年8月28日
母の手料理はあと何回食べられるだろうか…
としみじみ思いながら、いつもより咀嚼多めで食べました。