🐥

実務4年目で設計を知らない人が一年間勉強してみた

3 min read

この記事は ミライトデザイン Advent Calendar 2021 の 7日目です🚀

6日目は @suzuki-hoge さんの 「M1 Mac の Docker について」 でした。

今年のM1は購入した方は多いかと思います。
開発環境構築などで必ずつまづくかと思います。私はそうでした。

そんな人はほげさんの書いた記事を参考にしてみてください。
彼の記事はとてもわかりやすいです😆

はじめに

本記事は設計をこれから勉強しようと思っている人に向けて書きました。

なぜ勉強しようと思ったか

実務経験があるので、設計を無視して動くものを作るだけでいいならある程度は可能です。

より良いプロダクト開発をしたかったからです。

次からはやってきたことを順番に書いてます

全体の流れ

設計を勉強する前にやったこと

設計を勉強する理由を考えた

僕は設計を勉強することにこだわりすぎていて、そもそもなぜ設計を勉強するのかを理解していませんでした。
というわけで自分なりに設計を勉強する理由を整理しました。

なぜ僕は設計を勉強するのか

どうやって勉強するかを計画した

設計の必要性を一通り把握しました。
次にやったことは計画を立てることでした。
次のような記事を書きました。

ソフトウェア設計をどうやって学ぶか

目標を決めた

何かをするには目標が必要です。

そこで一年後にどうなっていたいかを設定しました。

今思えば、仕事を任せてもらえるのはどういう人かというところを深堀りしたら良かったかなと思います。
当時は技術者として足りていない部分だけに焦点を当てていました。

課題

現状自分が変えたいと思っていることを整理しました。

記事にも書きましたが設計をするための原理原則を知らないため、そこから理解しようと考えました。

読んだ本・記事

ネットで調べれば、情報はありますが
自分は情報の整理が苦手なため、基本的には本で体系的に学ぶようにしていました。

オブジェクト指向でなぜ作るのか

この本はかなり良かったです。
設計をする上で、よく耳にするような単語について大体説明されてるかと思います。
※自分が比較出来るほど読み比べていないため、大体と書きました。

かなり噛み砕いて書かれているので、設計入門者にはおすすめしたい。

オブジェクト指向でなぜ作るのかを読んで理解したこと

実践 JUnit――達人プログラマーのユニットテスト技法

実務で単体テストを書く必要があったので、テスト設計についても勉強しました。

Javaで説明はされていますが、良いテストを書くために必要なことは言語問わず同じことでした。
なのでphperの人でも気兼ねなく読んでもらえる本かと思います。

「実践 JUnit――達人プログラマーのユニットテスト技法」から良いユニットテストを書くために知っておきたいことを学ぶ

IDDD本から理解するドメイン駆動設計

ミライトデザインの社内勉強会でcodezineさんに記載されている「IDDD本から理解するドメイン駆動設計」の記事を一緒に読みました。

週1で、決まった範囲を各自で読んできて、感想・疑問点を解消しあっていました。

入社してすぐ、この輪読会がはじまったのですが、正直みんなが話している内容に全くついていけなかったです。

入社してすぐですが、会話に追いつくために別途知識をつける時間が必要だなと感じてました。

「IDDD本から理解するドメイン駆動設計」輪読会まとめ

Clean Architecture 達人に学ぶソフトウェアの構造と設計

社内勉強会でみんなで一緒に読んでいきました。
こちらも週1で、決まった範囲を各自で読んできて、感想・疑問点を解消しあっていました。
このレベルの本は自分一人では読み進める自信がなかったのでとても助かりました。

【ミライトデザイン社内勉強会#25】Clean Architecture 輪読会 「第1部:イントロダクション」「第2部:プログラミングパラダイム」

やってみてどうだったか

全て書くと長文になってしまうので簡潔に感想を箇条書きにしました。

  • コードレビューをする際の観点が増えた
  • プログラマの仕事はコーディングより設計の方が重要(主観)
  • 設計をする際に非開発者以外と会話をする必要がある
    • 会話をするスキルが必要
  • 入社時に比べると社内の会話についていけるようになった

実務4年目にしてようやくプログラマのスタートラインに立てた気がしました。
まだまだ成長していけると思うので頑張ります。

終わりに

これから勉強しようと思った人の参考になればと思います!
一人でも多くシステムで世の中を良くしていこうと考える同志が増えてくれたら嬉しいです。

不明な点ありましたら、twitterのDMで遠慮なく連絡してください!

Discussion

ログインするとコメントできます