2021-01-12: AtCoder ProblemsのTrainingにある難易度Mediumを100問解いた

AtCoderの便利サイトであるAtCoder ProblemsにあるtrainingのMedium 100問を解き終えた。2020-09-28の日記でEasy 100問を解き終えた話を書いていたので、3ヶ月でMedium100問を埋めたことになるだろうか。実際には、該当の問題が出題されたコンテンストに参加していたりして、30問くらいはすでに回答済みだったと思う。

印象に残っている(解くのに苦労したり、未だに理解できてない問題)を上げておく。これらの問題がすっと解けるようになりたいなぁ。

C - HSI 期待値の問題。数学(算数)的には自明なものらしいが、似たような問題が出たときにしゅっと答えられなさそう A - XOR Circle 問題文を読んで考え方は分かったが、それをコードにするときに具体的にどういうケースを考えればよいかわからなかったやつ。 A - Colorful Subsequence 一工夫必要な数え上げの問題が苦手っぽい。全然わからなかったので回答を見ながら解いた。がんばろう…

学習のペースとしてはかなりゆっくりだけど、仕事とは違うコードを毎日書くという習慣づくりにはとても役立ったので、自分としてはがんばった方だと思う。

Hardは難易度もかなりHardなので、今まで通り1日1問すすめるようなのは難しいかもしれない。そもそもアルゴリズムの勉強もしたほうがいいとは思うので、けんちょん本と合わせて少しずつやっていこう。

2021-01-11: 「自分でやったほうが早い病」を読んだ

同僚から紹介された「自分でやったほうが早い病」を読んだ。よく言われることだし、新しい視点が得られるというほどではなかったが、いくつか良い言い回しがあったので、最後まで楽しく読めた。以下引用を含む読書メモ。

「自分でやったほうが早い」と考えてそのように行動してしまう人は2つのタイプに分けられる。 周りよりも自分がデキてしまうから 相手に悪いし、お願いが下手だから どちらも見に覚えがあるが、特に下のようなケースが多いように思う。ただ、両方とも周りが成長することで自分も成長できるという視点が欠けている。 情けは人の為ならず "方向性はあなたが決めて、残りの「誰でもできるような作業」をまわりの人にふっていませんか?これは隠れた「自分でやったほうが早い病」です。周りの人に任せているようで、実は自分の成功のために利用しているだけなのです。" 度々こういった強い言い回しがでてくるのがちょっとぎょっとするが、前半は良い文章だと感じた。誰でも出来る仕事を、そのままやることだけを依頼することは任せているとは言えない。じゃあどうしたらいいかというと、目的や完了条件を伝えて、参考までにこれまでのやり方を伝え、実際のやり方を含めて任せるといいのかな。 "「周りに遠慮してしまって、無理なお願いができない」という人もいますが、「遠慮」というきれいな言葉でごまかしているだけで、本当はお互いの信頼関係が築けていないだけだったりします。" これは見に覚えがありすぎて辛かった。ごまかしなんだよね。 "「任せる」とは「失敗させる権利を与えること」" 「失敗させる権利」というのは良い言葉だ。

途中で、筆者の仕事観・人生観のようなものを含む話があるのだが、その中での一文にすごく心を動かされた。

悩んでいた大山さんに、禅寺の導師(お坊さん)が「人には四つの幸せがある」ことを教えてくれたそうです。それは、①「人に愛されること」、②「人にほめられること」、③「人の役に立つこと」、④「人から必要とされること」の四つです。その導師は、②と③と④は、仕事を通じて得られることであって、逆に仕事でないと手に入れにくいものであると言いました。

自分自身は仕事をしているし、たしかにそのことによって2~4はある程度手に入れられている実感がある。一方で、家族に目を向けると、奥さんは仕事をしていない。プライベートの付き合いである程度は満たされる部分もあるだろうが、仕事と同じレベルでは感じられていないのかもしれないなぁと思ったので、これからは頑張って(照れくさいが)感謝を伝えていこう。

2021-01-09: 家具の組み立て

今の部屋に住み始めて2年、リビングにはテレビ台以外の収納がなかったのだが、流石にそろそろ必要だろうということで無印良品のスタッキングシェルフセットを買った。

サイトの「構造」の部分にも書かれている通り、普通の棚とは違って棚板をパイプで支えるような構造になっているので、棚板に負荷がかかってもたわみにくい、横に配置しても変な向きに力がかかって崩壊しにくいというのがポイントらしい。組み立ては、ドライバーもいらず、長い板を持てれば一人でも余裕で組み立てられるレベルでよかった。このあたり、日本メーカーの組み立てビリティの高さは本当にすごいと思う。

さてもう一つ、デスクトップPC置き場兼サイドデスクとしてキャスター付きのPCワゴンを買った。

これまでは、天板がないキャスターだけの台車に乗せていたのだが、机の上を片付けるたかったのと、マイクアームをつけるための平面が欲しくなったので購入。Amazonの年初のセールで今の価格から-2,000円くらいで買ったのだけど、なんとネジ穴がずれている不良品だったので返品。さらに返金対応のみということだったので、しょうがなく別のところで同じ商品を購入したのだった。家具の類、部品の数だけを確認してすぐに組み立て始めちゃうのだけど、まずは全部の部品を注意深く見て不良品がないか確かめる慎重さが必要だということを失敗する度に思うのであった。(最後に締めようとしたネジ穴がずれていたのでつらかった)

そんなこんなで、昨夜から今日の午前中には色々組み立てていたので披露困憊。さらに午後は所要があったので、夜は完全に電池切れであった。ばたり。

2021-01-07: 「やっていき」を述べることの難しさ

自分の職務の一つとして、部署の技術方針を作り、そこに向かって人々を動かしていくというのがある。2021年になり、みんなが同じ方向を向いて仕事をしていくためにも、早く定めなければなと毎日少しずつ時間をとって考えている。

が、これが本当に難しい。ペパボでは「やっていき」という言葉がよく使われるが、はたして「やっていき」とはなんなのか、自分はこんなふうに解釈している。

まず、地に足がついている、あるいは現在から連続性がある。次に、ストレッチがきいていて、それが実現したらみんながワクワクするような目標や、それを達成した時の状態である。最後に、それをユニークな言葉で表現したものである。

と、ここまで書いてみて、そういえばと思い「やっていき」と「のっていき」の原典にあたってみる。あんちぽさんの やっていき、のっていき / The Secret of Leadership and Followership - Speaker Deck だ。これを改めて読むと、自分が考えるべきことは、ここでいうYoY(やっていき of やっていき)なのかなと思った。

そう、部署の方針としての「やっていき」は、みんなの「やっていき」を誘発し、やっていきのっていきループを誘発させるようなものである必要があるのだ。上で自分が書いていたのは視点もちょっとずれているし、視座も低かったのかもなぁ。

これを書いているのは2021-01-12 AM2時なのだけど、改めて明日の業務時間に考えてみよう。

2021-01-05: シャウトアウト

いまだに指が2020と打ってしまうし、日記のタイトルの日付も2日と3日が間違っていることに気づいて慌てて直すなどした。

今年は、日記をつけるというのと、社の日報を書くという2つの記録にチャレンジしたいと思っている。去年から週に1回くらいはなんとか書いてたものの、とにかく「書く」という習慣を作りたいと思ってフォーマットを変えた。

フォーマットは、@kakutaniがFjorb Boot Camp as a Gate - Speaker Deckで紹介しているものをそのままいただいている。

自分は「シャウトアウト」という語彙を知らなかったのだけど、とてもいいことだと思ったので、社内の日報でみんなに書いてほしくて「今日の気持ち」に今の気持ちを書いていた。

---ここから---

日報に「シャウトアウト」という項目をつけている。これはhsbtがよく言っている「エンジニア、働いてたら1日1つは新しいことを学ぶし、アウトプットできることはある」の感謝版だ。 私達はチームで仕事をしているし、会社には300人以上の仲間がいる。1日仕事をして、今日は誰とも関わらなかったし、感謝する相手がいないなんてことはないはずだ。

ただ、「今日は何もなかったなー」と思うことが自分も結構ある。そんなときに、日報のフォーマットを見ると、今日は誰か感謝する相手がいなかったか?と改めて考えるきっかけになる。そうすると、良かったことや嬉しかったこと、感謝する相手を探すモードになる。そしてそこで頭に浮かんできたことは、自分にとってポジティブなことに違いない。

そう、日報の最後にシャウトアウトを持ってきているのは、今日の仕事をポジティブに終わらせるためなんだ。どんなにしんどい日でも、退勤直前に嫌なことがあっても、最後は良かったことを思い出して終わりたい。そう思ってみんなへの感謝を今日も書いている。

---ここまで---

と、上記をsubmitしてから、OKRの文脈でよく出てくる「ウィンセッション」にもつながる話だなと思った。ウィンセッションについては1次ソースを私が見つけられないのでリンクや詳細は省略するが、自分たちのやった成果を発表してみんなで喜び合うものがウィンセッションなのに対し、ある人の成果を他の人が発表してみんなで喜び合うことができるのが日報のシャウトアウトなのではないだろうか。

だとしたら、よくある自己アピールが苦手、成果を正しくアピールできない、結果として評価されないという問題や、その人自信の考え方を、毎日シャウトアウトを多くの人が書くことで少しずつ改善・変化していくのではないかと思った。

2021-01-04: 仕事始め

きれいに三日坊主になってしまったので思い出しながら書いてる(書いているのは2021-01-11)。

今年は正月休みが短かったけど、どこにも行かずに関東で過ごした上に特に遠出もしなかったので、体力的には余裕があってよかった。もし帰省してたらもたなかったかもしれない。何気に、毎年の社員旅行から規制、正月、関東へ戻るというの、結構ハードスケジュールなんだよね。

さて、毎年初日はGMOインターネットグループ全体のミーティングというか新年会があり、そこで熊谷代表から今年の方針の発表などがある。年初に限らず熊谷代表の話はいつも面白く、新しい発見があるので楽しみにしている。今年はDXについての話があったのだけど、CTO協会でもDX Criteriaとは - DX Criteria v201912- 「2つのDX」とデジタル経営のガイドラインで述べているように、2つの意味があるのに加え、またそのどちらについても、どこまでをスコープにしているかという点で共通の認識を持つのが難しい言葉だと思っている。そんな話の最初に、きちんと「これから話すDXはこういうことです」という定義を述べ、そこから話をしてくれたのでとてもよく理解でき、改めて今年もよい話をしてくれてありがとうございますという気持ちになった。

また、後半はホールで飲み食いしながら各拠点からの中継を見るというのが毎年恒例だったが、今年は当然リモートでの開催ということもあり、各拠点からの中継も一つのプログラムとなっていた。毎年、飲み食いしながらなのでいまいち頭に入ってこなかった中継をしっかり見る機会になったので、これはこれでとてもよかった。

夜は社の人たちがzoomで集まっていたようなんだけど、所用があったので参加できなかったのが残念。そういえば、去年も結局チームや部署の新年会はできなかったので、今年はリモートでやりたいなぁ。

2021-01-03: WEB+DB PRESS vol.120を読んだ

20周年記念号ということで、せっかくなので紙の本を買って読み終えた。

特集2のVue.js 3入門はToDoリストの作成から、周辺ツールの紹介まで一通り揃っていて、Vueのコードを読むくらいのことをしている私のような人にはちょうどよかった。欲を言えば、Vue.js 3の新機能であるComposition APIのボリュームがもう少しあると嬉しかった。

「これからのWeb開発」では、サーバサイドやフロントエンド、インフラなどの各テーマについて、それぞれの識者がこれまでの歴史をおさえながらこれからどうなるかという話を書いてくれている。自分にとって特に良かったのは「Web」と「インフラ」。

「Web」ではHTMLとCSSによる構造とスタイルの分離から、昨今のリッチになっていくUIとアクセシビリティへの意識の変化、そしてそれらを包括するデザインシステムの役割や必要性がきれいに整理されていた。「インフラ」では、システムあるべき状態を宣言することで、システム自信がその形を維持するために動いていく(Reconciliation loop)という考え方を知ることができたのでよかった。技術的には、オートヒーリングと言われているものではあるのだけど、「宣言する->観測する->正しい状態に変化する->...」というループが回っていると考え、それを開発プロセスに組み込んでいくのは今年やっていきたいことの一つだと改めて再確認した。