競プロ歴1年でやっとやっと緑になったけど、最初の関門は競技育児だった話
この記事は Competitive Programming (1) Advent Calendar 2020 10日目の記事です。 adventar.org
この記事について
技術的なことではなく、自分にとって参入障壁?になっていた、育児と競プロの兼ね合いについて書いてみます。
- 育児が今障壁になってる方への参考に
- これからの方へは心構えに
- まだ遠い方へはファンタジー的な読み物に
なれば、と思います。
緑になった
なんだかんだで一年かかりました。
精進量が少ないので、まだまだ頑張ります。
自分について
仕事はソフト開発者でC++多め(それ以上にパワポ多め...)ですが、競プロはほぼPythonです。なんか違う言語覚えてえなと思ったため。
小さい子供が2人います。育児参加は割と積極的なつもりです。家事はするけど、料理(刃物)だけはてんでダメです。
活動時間は、コンテストとその後の反省時間以外では、週3-5時間くらいしか取れないことが多いです。何とかして増やしていきたいところですが、最低限減らさないように、マイペースにやっていきます。
時期とやってたことを振り返る
競技育児
コンテスト自体は、勝手が分からない上に、遅れて参加し2完とか。終わり掛けに駆け込み1完とか。面白そうなのに面白くなりきれず、何か複雑な日々...Pythonのお勉強
コンテスト中、そもそもPythonの文法なんかをググって勉強している比率が高かった(もったいない)灰Diffメインで少し精進し始める
明らかに簡単な問題は早く解けるようになったが、上限難易度が全然上がらない(当たり前)茶Diff~を精進し始める
ざっくりこんな感じで、なかなか鈍足ではあるものの、定番の「精進量がカギ」というのは感じているこの頃です。単純に知識量というわけでもないけど、経験や感覚が溜まってくことも含め、積み上げですね。
で、子持ちにとっては(焦るばかりで楽しくならない)上記1の期間を、いかに脱するか。この競技育児攻略が、競プロを楽しみ始めるための、最重要課題であろう、と思います。
以下ではその辺を語ります。
競技育児
背景
~3歳くらいの子供がいると、昼寝から起きる夕方以降、以下のようなタスクが発生します。
- 遊ぶ
- おやつを食べさせる
- 風呂に入れる
- 着替え・肌ケアなど
- メシを用意する(その間の遊び相手になる)
- メシを食わせる
- 歯磨きなどのケア
- 多少遊び相手になる
- おもちゃなどの片づけ
- 寝かしつける
- (随時)💩💩💩
これを21時の数分前に片づけたうえで、自分の状態もそこそこに(メシ食ってあり、フラフラではない状態)しないといけません。
経験上、17時時点なんかではヨシッ!(未証明)と思うわけですが、大概漫然とこれを進めていくと、21時にやっと6あたりにいて、TLEします。
課題
21時に安定して、パソコンの前でスタンバイしたい。ただし・・・
- 子供の世話を家族に押し付ける → 最終手段だなあ
- 寝かし付けながら何とか参戦 → 良いことなかったなあ
- 育児スタイルを見直す → やるだけ?
寝かし付けながら参戦(ベビーベッドの横でパソコン開く・スマホでとりあえず問題見て考えながら寝かし付ける…)してみたこともありましたが、部屋は基本真っ暗にするため、子供はよけい寝なくなるわ、 自分の目は疲れるわ、全然ダメでした。
一度、試しに膝の上に子を寝かせ(ようとし)つつ参戦してみたら、タイピングの振動からか寝たことがありました。が、二度は再現しなかったので、これもイマイチです。
問題と対処
安定というのもキモです。そこで以下のような手を打ちます。
結構、裏返しで倒せることは少なく、大元を辿ります...
- 体力が有り余って寝ようとしない事象を防ぐ
- そのために、夕方積極的に激しめ(公園行くとか)に遊ばせる
- そのために、昼寝から覚める時間を前倒すため、昼寝に早く入る
- そのために、午前中に体力を一旦使い切るため、朝から積極的に遊ばせる
- そのために、自分もちゃんと子供と一緒に起きる(当たり前)
- 寝かし付けで自分も寝落ちするのを防ぐ(寝たふりが結構危ない)
- そのために、自分の寝不足を防ぐ
- そのために、自分はあまり夜更かししないようにする
- そのために、家事が深夜帯に入らないようにする
- そのために、残業をなるべく減らしていく…(在宅勤務超推進派になる)
- 漫然と時間が押す事態を防ぐ
- 何時までにどれが終わってないとヤバイ、というラインを引く
- ウィークリーなタスクは前日に終わらせる(便所掃除とか)
- そもそもそれぞれの作業を高速化・安定な処理量にする
- 掃除
- ロボット掃除機を導入する。大体子供対策で床の片づけは、過去最高に進んでいるはずなので相性良
- 大物は便所と階段くらいしかなくなる。事前計算により、部屋数Nに依存せず、実質O(1)になる
- 調理
- ホットクックを導入し、冷凍室もデカくする。または冷食の買い置きを減らす。
- 作り置き離乳食を増やす。事前計算により、食材数Nに依存せず、実質O(1)になる
- ついでに、料理がダメな自分でも、解凍盛り付けに参戦できるようになる(これは料理苦手マンの自己効力感高まります)
- メシ
- レジャーシートを敷く、長袖エプロンを導入する、食器は食洗器対応で揃える、など
- 汚された量Nに依存せず、片付けの所作を解放処理だけにすることで、O(1)になる
- 遊び
- ものを減らし、遊び用に最適化したエリア(部屋)を作る。
- おもちゃ展開・片付けを、おもちゃ数Nに依存して入り乱れるO(N2)から、O(N)に軽減する
- ケア類
- (おしりふき、ワセリン、おむつゴミ箱など)各所に配備し、寝室・居間・トイレなど、都度行き来する手間を回避。
- ケア前後の処理が不要になり、拠点数Nに依存せず、O(1)になる
- 掃除
リスクヘッジ
どれだけ手を尽くしても、子供相手にイレギュラーはおきます。 ふいに起きてくることもあれば、ぐずったもう一人に起こされて、無限ループすることもあります。 実は一番大事なのがコレ。
- 1人は絶対寝かすから、もう1人は寝かし付け頼む、と分担を調整しておく
- ベビーモニターを導入。微妙に寝たか怪しい場合、モニターをつけて、祈りながら参戦できるようにしておく
- 競プロの有用性を説いておき、緊急時は家族に押し付けさせてもらえる理解を得る。例:
- ぷろぐらむの大会があるんだ(愚直解)
- 資格の勉強なんだ(PAST法)
- 転職する時に役立つんだ(Jobs法)
- 本音はゲーム枠だとしても、そう言われると受け入れにくいものです
効果
この辺を一通り対処すると、ほぼ家族に土下座パターンに入らずに、21時の数分前にスタンバイが安定するようになりました。ACです。
まとめ?
結局のところ、銀の弾丸などなくて、地道に問題を分解して、対処するしかないわけです。もとから、この事態には対面してはいたはずですが、漫然とやっていたような気もする。なんせ必須な目標は、ないですからね。
競プロをやり始めた(ようとする)ことが、育児にも「21時までに寝かし付けACすること」という競技性を与え、見る見る効率化が進み、結果として(自分だけでなく家族の)心の余裕にもつながったことは、大きな発見でした。たぶん、お子様から見た満足度も上がってんじゃないかと思います。
育児と競合するから競プロできない!という声をしばしば聴きます。だからこそ、競プロに参加するために、育児を競技化し、戦ってみてはいかがでしょうか?案外、それは利益相反でもないかもしれません!