はじめに
以下、個人的なメモです。
エンジニアたるもの楽しくモノづくりに励む休日もあって然るべきだろう。
趣味で行う休日コーディングは、人に迷惑をかけない限り何もかもが自由である。
学習に重きを置いてもよいし、へんてこでもとにかく完遂を目指してもよい。
やるからには、楽しく行こう。
だのに…
- 気が散って全然進まなかったり
- 環境構築で躓いて楽しい作業に到達できずに投げたり
- 設計書なんて書いていないのでカオスなコードに自暴自棄になったり
なんてことも多いのでは。
ここでは、どうすれば良いのだろう、と考えて実践してみたことをメモしておく。
筆者個人の戒めと性格に基づいており、また、目新しさも無いが誰かの参考になれば幸甚である。
方法
- 今日で8割を終わらせようとする
- 基本的な考え方は中島聡さんの受け売り
- 趣味のモノづくりは、線形に進みにくい
- 「今日は環境構築だけでOK」というやり方では、環境だけが残りモノは一向にできない
- そして、次週には存在を忘れている…
- 最低限の機能の簡単な設計ができたら、ガーッとやってしまおう
- TODOを書き出す
- 作業のネストが深くなって旅に出てしまいたくなったとき
- 8割の完成を目標としたとき、あと何をすればよいか
- ある程度構築が進むと新しいアイディアや問題点が相当数見えてきているはず
- とりあえず書き出すとTODO同士の関連性や優先度が見えてくる
- なんだか終わりそうじゃん!となる
- リリース時のインフラ周りを妄想する
- 完成イメージでやる気がアップする
- おおよそは杞憂と取らぬ狸の皮算用の混沌で心が満ちる
- シャワーを浴びる
- ハマったり、行き詰まったりしたとき
- 思わぬ解決策が降ってくることが多い
- 休日は起き抜け→だらだらコーディング開始が常なのでリフレッシュ大事
- しかし、ガス代はかかる
- 姿勢を変える
- せっかく家なのでベッドやソファに寝転んだり、床にうつ伏せたりしながらでも誰にも叱られないが、うっかり10時間その体勢のままとかザラにある
- 昨夜、それで腰が固まって、一度立ったあと座ることも寝ることも歩くこともできなくなった
- あなたの身体はスケーリングできない、物理的に負荷分散しよう
- リファクタリングする
- 未知の領域を学習しながら、なんとなくで構築を進めていると…
- いつのまにかめっちゃ大きいコンポーネントが成長しつつあったり、どこかで書いたロジックや定義をまた打ってたりする
- 一度、綺麗にリファクタリングしよう
- どんどん整理されていくコードを見ると、気持ちよくて良い子になった気分になる
- 趣味とはいえ、近い未来の自分を楽にする作業なので決して無駄ではない
- プログラマとしての美学を追求できるので、自己の満足感が得られる
- 全体的なデザインを整える
- 内部的な部分でハマったときとか
- 後回しになっていたレイアウトなどを一通り整えて気分転換しよう
- 簡単に視覚的な進捗、完成イメージに近いものを得られるので気分があがる
- ただし、細かいアイコンデザインやカラー、挙動は後にしよう
- 慣れないデザインでイライラするくらいなら、それも後にしよう
- 音楽を止める
- これは人によるが、個人的には音楽とコーディングは同居不可
- code / chord どちらを追ってるのか分からなくなる
- かといって静けさも居心地が悪いので、旅番組やニュースを流しておく
- とりあえず既製のものを埋めておく
- 本質的な機能でなく作り込みも必要ないなら、適当なものを放り込んでおこう
- 例えば、ページングや通知、モーダルなど誰が作っても同じになるものに関しては車輪の再発明はいらないと思う
- 学習目的、カスタマイズ性が問われるといった場合はこの限りではない
- 違和感を楽しむ
- まだ触ったことのないプログラミング言語、環境、フレームワークにトライする多い
- 仕事で触っていたり、既に習得済みのものとの違いを相互に確認しながら違和感を楽しもう
- この処理はこう書けるのか!イケてる!
- いやいや、これは冗長すぎるでしょ…敢えて○○っぽくこう書いてみよう
- 得られるものは成長だ
おわりに
これはどんな趣味にも共通するが、
休日のモノづくりなんて、やらなくても誰にも文句は言われない。
この贅沢な時間を使って、楽しさ×成長を最大化するにはどうしたらよいか、
今後も改善を繰り返していきたい。また、みなさんの経験談もお聞きしたい。
この年になってくると、多感な時期に比べて集中力も落ちてきているように感じたので、
いろいろと忘れないうちに10+1通りの方法をメモしておこうと思い、投稿してみた。
ああ、そうだそうだ。
11. Qiita に記事をアウトプットしてみる
以上。