Write code every day # 1

なんと、非常に飽きやすいおれが Write code every day を 3 週間も続けられた。

ということで、この期間のおれの活動内容、及び感想を書いてみる。

この期間の活動内容

技術書を写経(本を読みながらその中に記載されたサンプルコードを自分でコーディングして実行した)

読んだ書籍

やり方

  • コードを書く区切りは自由とした
    • 技術書を読むときの区切りは、だいたい章ごと、または内容の区切りがよいところで終了とした
  • 技術書は 2 周以上読むことを前提に、1 周目は全体像を掴むように意識した
  • 活動時間は、1.5 ~ 2 h くらい
  • ご飯は活動の前に食べた
  • リラックスしてやりたかったので、ビールは PC のそばに置いた(ちょびちょび飲んだ)
  • コーディングしたコードは、活動の締めとして必ず Github に push した
  • 実施時間は、まちまちだが、大体 20 時 ~ 23 時の間

週ごとの感想など

1 週目

  • 家に戻ってくるのは遅くても 21 時前
  • 3 日目くらいから家でコードを書くことが 1 つのお楽しみになってきた
  • 活動後の達成感が気持ちよい
  • 生活リズムが若干崩れ、いつもより 1 ~ 2 時間ほど寝る時間が遅くなった
  • 新しいことを学んでいるからなのか、脳がお疲れモード(6 h 寝ても寝たりない感がある)
  • 業務中に眠気が襲ってくるようになった
  • ご飯を食べたあとに眠くなっても、コーディングすれば目が覚めた
  • 買ったけどなんとなく億劫な気分で読んでなかった書籍をついに読み始めた (テスト駆動開発入門)

    ※ 特にこれはおれの中で最高の収穫

  • 通勤中に日本人のソフトウェア開発者が出演してる Podcast を聞くようになった (fukabori.fm とか)
  • お腹が減りやすくなったかもしれない
  • 横になってスマホをいじっている時間が鬱陶しくなるときがあった
  • 誰に促されたわけでもなく、ただ単にやってみたかったという動機なので、気持ちは楽
  • 業務中に「あ、この問題、昨日学んだ方法を使えば簡単に解決できそうだ」とか思いつくようになった
  • とにかくいろんなことを吸収したくなる
  • 手に優しいキーボードが欲しくなる(Mac book pro のペタペタ感と、 Emacs キーバインドによって小指が痛くなる)
  • 意外とキータイピングが遅かったし、しかも、正確性が足りないっぽいことに気づいた
  • 活動後に、勢いでこのブログの記事を書いては下書き保存することが増えた

2 週目

  • 土日はさすがに休みたい欲が出たので、コーディングにあまり乗り気じゃなかった
  • この週も、家に戻ってくるのはだいたい 21 時前
  • 若干、飽きがきたっぽい。でも Github の草を見るたびに「途絶えたくない」と思ってやる気になった
  • 技術書を読むことが億劫ではなくなってきたっぽい
  • 小さい音量で音楽を聞きながらやると集中力が増す
  • もはやコーディングの時間は生活に欠かせない感が出てきた
  • 読書の一周目の目的は「全体像を掴む」。多少わからないところがあっても飛ばすことができるので、気楽に本を読める (この読書法は山口真由さんが仰っていた読書法を参考にしている。身の丈にあった読書法を見つけるのがよいと感じた)
  • 小指痛い問題が深刻になりつつある。(Vim に乗り換えるか、、、いや、その決断はまだ早い。)
  • コーディング中の部屋の明かりは小さいデスクスタンドのみ。このデスクスタンドは昼白色であるが、夜でも電球色よりこちらのほうが集中できる気がする
  • ほろ酔いにならない程度でお酒を飲むと、テンションがあがってノリノリでコーディングできるっぽい
  • J リーグが中断していると、メンタル的に結構キツい。コーディングやお酒でもこれは解消できないっぽい
  • アウトプットはしないよりしたほうが効果あり。ありがたいコメント、やる気、そしてなんかいいことあるっぽい
  • 飲み会があって 21 時を越えて帰ってきた日があったが、サボらずコーディングした
    • なんと、飲み会の最中でもこの取り組みのことを考えていた。脳の中に新しい回路ができたっぽい?
    • 時計を見て 20 時を越えていると、「早く帰らなきゃ」という心理が働いた
    • 「23:59:59 までにコミットしないと今日の成果が Github に記録されない」ということで、なぜか、焦ってコーディングする事態が発生した。

3 週目

  • 仕事が忙しくなり、帰宅時間が 22, 23 時になる
    • この時間帯になると、疲れのほうが優先され、集中力が極端に落ちる
  • 書籍を読む時間が取れなくなり、コミット数や進捗が悪くなった
  • 読んできた書籍も終わりに近づき、コードを書く場面が減ってくると、やる気が落ちる
  • 課題や自分で作りたいプログラムという目的がないと、コードを書くことが減る
  • お酒を飲んでも必ず 24 時前には帰宅し、数分でもいいからという気持ちでコーディングを行った
    • 結構酔っ払っているときもあったが、スタートすればある程度は進める
  • 土日は時間があるにも関わらず、平日に比べるとやる気が出ない
    • 怠慢な性格のせいだとは思うが、一日の終わりが迫った状況(ギリギリの状況)にならないと行動に移しづらい
  • 1, 2 週目に勉強した成果が同僚が抱えていた問題の解決につながった。これはなかなか嬉しい。
  • 書籍を読むことは結構大変。体力的、精神的にも、健全な状況にあるときと、そうではないときの集中度合いが全然違う。
    • だから、どこかでリフレッシュしなきゃまずい。
  • 書籍を写経することを考えると、紙媒体より、PDFとか電子媒体を使ったほうが遥かに楽。
  • よりコーディングしやすい環境を求めた結果、机の上は、外部モニターと、ワイヤレスのキーボード、マウスという状態に仕上がった。

という内容でした。

ちなみに github の草はこんな感じ。

f:id:kontama2:20200322222150p:plain

長々と書いてきたが、こう振り返ると、意外と感じていることが多い。

普段はそれに気づかず、ストレスを発散することに時間を費やすことが多かった気がする。

また、日々、感じていることを書き出すと新たな発見があり、それについて考えることができた。

こういうことがあるから、日記とかって価値があるのだろう。

次週からは書籍を読みつつ、自分で何かのプログラムをコーディングしていきたいと思う。

毎日コードを書くんだって!

いきなりですが、今年一年は「Write Code Every Day」を実践する。

John Resig - Write Code Every Day

コード屋は、書いたコードを評価されてナンボ。

おれはおれの存在意義を提示する。ナニモノにも媚びず己を磨く。

とりあえず毎日書くにあたって、今年はルールを特に設けない。

ただし、この実行によって、下記の 2 点は必ず達成したい。

  1. コードを書く生活を習慣とする
  2. アウトプットのスピードを上げる

進捗は、度々このブログで報告する。

とりあえず、半年後かな〜。自分へのご褒美として Mac Book Pro を買ってあげよう。

※1. 執筆時は 3/2 (月)。スタートはこの日から切ったので、この記事が公開されたときには、すでに 8 日は毎日コードを書いていることになる。

f:id:kontama2:20200308211442p:plain

※2. 上記は、3/8 時点の github 上のアクティビティの画像。証明するには不足な情報ではあるが、一応載せておく。 ※3. github では、上記画像のように、日ごとのコミットがグラフとなって表示される。法則まではわかっていないが、コミット数が多いほど、深い緑色になる模様。 ちなみにある界隈ではこのグラフを充実させることを「草を生やす」というようだ。

ただ話を聞いているだけはないぞ

先日、居酒屋でギガジョッキのビールを飲んでいたときに、とある話を小耳に挟んだ。

その話は、ある会社のある社員が近々会社を辞めるらしいという話の始まりで、

その人とのエピソードトークや、その人のことをどう思っていたのか、という内容だった。

まぁ、どの会社にも世間的にはつきもので、いわゆる愚痴に近いだろう。

「アイツは何を考えているのかわからない」

「勝手な行動が多すぎる」

「予定もよく破る」

「しかも、それを注意したら、

私がいなかったことで何か問題がありましたか?
なかったのであれば、それは私がいなくてもよかったということですから何も悪くないでしょう?

と、反論してくる」

「あるときにその人を含めた何人かのメンバーで、次はどこをターゲットにするかという戦略会議をしていて、参加したメンバー全員が、やっと、話の着地点を見つけて終わりに向かっていたのに、すぐに、話を元に戻したりして、結局、会議の時間がめちゃくちゃかかった」

「扱いづらいと言ったらありゃしない」

などなど、話をしていた。

おれはその話を聞きながら、「だいぶクレイジーな人がいるもんだなぁ」とぼんやり思っていた。

結局、最後まで、途切れ途切れではあるが、その話を聞きつつ、楽しくビールを飲んでいたところ、

「でもさ、結局、アイツは悪い人じゃなかったよ。 おれらとはまず歩んできた分野が違うから、おれらだったら必死になっても理解が難しい知識とか、 普通に知っていた。しかも、その知識と経験がおれらの仕事を助けてくれたこともあった。短い間だったけど、いい仕事もできた。 ただね、その人を理解するのにだいぶ苦労はしたけどね。」

というオチで全員が賛同してこの話は終わった。

==

この話のポイントは、相手を理解するのにだいぶ苦労はしたけど、理解できたらそれは価値になった ということである。

多くの場合、このような苦労が目に見えた時点で、理解することを放棄する人が多いのではないか?

高校生風に言うと「アイツとは話/性格が合わないから絡まない」というのが近いか。

「合わないのではない、あなたが理解を放棄しただけ」である。

もしかしたら、「理解するってどういうことなのかわからない」という意見もありそうだ。

では、相手を理解するってどういうことなのか、考えてみる。

おれは「相手のバックグラウンドを知ること、その上で『相手』を『自分』に置き換えて考えてみること」だと思う。

だいたい、何かを理解するということは、その何かに対する情報を収集し、それを元に推定することだ。

なので、その「何か」の対象が人であるならば、その人の情報とは、その人のバックグラウンド(背景、経験)である。

誰かが言っていた噂でも、どこかに書いていた話でもなく。バックグラウンドなのである。

だから、

  1. まずは、相手とコミュニーケーションをする。相手のバックグラウンドを知るのに務める。

  2. 得た情報を元に推理する。「相手は〇〇である、ということは□□なのではないか」を作る。

  3. 推理の「相手」を「自分」に置き換えてみる。他はそのままでよい。

  4. そうすると、ここで、「なんで□□なんだろうか?」という疑問が生まれる。もしくは、よく分かると理解できる。

  5. 1 に戻って □□ の情報を集める。その結果、疑問が解消される。ここで推定できる。

1 ~ 5 を繰り返す。最終的に、相手についてわかっていることが増える。

相手のことを自分のことのように想像できた。

これが相手を理解するということだと考える。

だから、

「相手とコミュニケーションすることを止めるな。」

Javascript の勉強会に参加してきたよ

個人的にめっちゃ久々の勉強会参加。

こんたまとしては、状態が仕上がってない状態での初陣を迎えた。

会は、関西 Node 学園 9 時間目 というタイトルで、

内容は、Javascript, Node.js にまつわるお話を 6 人くらいの方が登壇してくださって、

LT な感じで、参加者に発表をしてくれた。

発表は、

  • Javascript のライブラリを使ったアプリをローンチした話
  • MS が公開したテスティングライブラリの話
  • Node.js のフレームワーク NestJS の紹介
  • Javascript から CSS をロードする話
  • AWS Lambda + Node.js の環境で、Node.js のバージョンをアップデートしたときの困った話
  • 分報の Timeline を Slack のフレームワーク bolt で構築した話

だった。

それぞれの話題について、実は、どの内容も知らなかったので、とても興味深い話を聞けた。

個人的には、Javascript から CSS をロードする話 をしてくださった方が強く印象に残っている。

それは、

  • 話の構成
  • 話の内容
  • 言葉選び

が、とても工夫されていて、話が単純に面白かったし、聞いていて心地よかったと思ったからだ。

(多少、早口に聞こえた部分もあり、はっきりと聞き取れなかったこともあったが、特に問題はなかった)

なんとこの発表者は、この会の発足当初から9 回に渡って、連続して登壇して発表してきたという強者であり、

また、年齢も 20 代前半らしく、

おれより若いそんな方が、このような体験を提供できるその技術力に感心した。

思えば、おれが若いときは、人の話を聞くことと、その内容を理解することに、滅法弱かった。

いまもまだまだ強くはないが、経験を重ねたことで、幾分がマシになり、

自分の知識として吸収できるようになってきた。

しかし、いまとなってはこの弱さは、自分の能力不足が原因だ。と、思う反面、

話をしている人の話し方、話す内容が、聞くために十分ではなかったのではないか?

とも、考えるようにもなっている。

それは、今日の会で素晴らしい発表を聞いたときなどに、強く思う。

逆に、淡々とお話される方がいるが、

おれなんかは、そういう話し方をされると、まったく、耳に入ってこないことが多い。

そして、だいたい、ブラックコーヒーを飲んだ後にも関わらず、眠くなってしまう。

だから、もし、おれが、発表することになったら、

聞く人の立場を想像して、面白いと思ってもらえる話をしたい。

==

ここからは、会に参加して、発表を聞いた上で、おれが発想したことのメモを書こうと思う。

  • 自社のエンジニアレベルは低い可能性が高い

今日、話題にあった技術を自社の人間がどれだけフォローしているのだろうか?

もしくは、自社は、イケイケの企業と比べて、

最新技術を追うよりも、メジャーな技術を確実に提供することの方に価値があるのかもしれない?

  • 勉強会に参加するのはハードルが高いかもしれないが、参加することが目的でよい

参加すれだけで、

  • やる気が出る
  • 新しい技術が知れる
  • 仲間が増える

というメリットが得られるっぽい。

それに加えて、登壇して発表してみると、

相手に話を伝える練習にもなり、発表後の拍手によって、小さな成功体験を得られるというオマケ付きだ。

  • イケてる企業は実は結果主義で、仕事に関するほとんどをエンジニアに任せてるかも?

今日、この会の場を提供してくれた企業の、(おそらく) 社員さんたちは、

21 時を過ぎてもワイワイガヤガヤやっていて、楽しそうだった。

  • 自分の興味、感心、思いには素直になったほうがよい

自由になれるよ。

ということで、長々、文章を書いたが、最後の締めとして、

今年の 7 月 1 日までに、IT の勉強会にて、最低、1 度は登壇し、発表することを目標とする。

決して外では酔わないように務める

おれはお酒を飲むのが好きだ。

できるなら、酒豪のように、どれだけ飲んでも平気であっていたい。

なぜなら、お酒を飲んでいるときに限って体験できた様々な記憶があるからだ。

新しいことを体験し、新しい発想が芽生え、未来を想像し、希望に満ち溢れたことがある。

つまり、お酒を飲んでいれば、大半が楽しいということだ。最高だと思ったことが何度もある。

しかし、お酒を飲む機会を重ねることで、お酒を飲める量が増えてきた反面、

酔っ払ったときの言動や、行動に、自分でとても嫌気が指してきている。

おそらく、酔っ払い始めてからの言動は、その直前のおれと比べると、

ひどく、勝手で、非常識で、攻撃的だ。

わからないし、特に聞いてもいないが、誰かを傷つけている気さえする。

おれはお酒を飲むことで、いつもより、会話が増え、頭が冴え渡り、たくさんのアイディアが生まれてくる。

ここまでは、いい。

しかし、酔っ払うと、その会話が、ひどく攻撃的で、下品になり、

頭はさっきまでの冴えがどこにいったのか、むちゃくちゃな理論で考えるようになっている。

そして、その状況が外で発生したとき、まるで、世界に自分だけがいないと思うような、

非常識な行動を取る傾向がある。つまり、まったく自分をコントロールできなくなるということだ。

...

いま、おれは、これからの自分の人生の舵取りを、これからどこに進むのかを考えている。

コントロールできない自分をそのままにしていいのか?

この状況に陥ったとき、誰が、どうやって、制御するのか?

チャンスの場面に遭遇したとき、本気でいられるのか?

今後を見据えると、酔っ払うことが障害になるときが必ず来る。それもたくさん来る。

だから、おれは、今後、決して、外では酔わないように務める。

友よ、これから外でおれと一緒に飲むときに、おれがコーラを頼んでも、決して、おれを責めないでほしい。

こんたまのメッセージ

新しい景色を見に行こう。

景色とは?それは経験だ。知らなかった世界を自分自身で知ることだ。

どうすれば新しい景色を見にいけるか?それは変わるために冒険をすることだ。

もし僕らが、変わることを恐れ冒険をしなかったら、

サポーターに、代わり映えのしないごく僅かな景色しか見せられない。

サッカーにはもっとたくさんの素晴らしい景色がある。

行先は決まっている。

迷わず行こう。

野々村芳和社長のメッセージ | コンサドーレ札幌 オフィシャルサイト

2019 年シーズンのコンサドーレ札幌は、未来へ繋がる新しい 1 ページをめくる冒険をした。

その結果、クラブをフォローするすべての人が、今まで見たことがない新しい景色を見た。

まさに衝撃だった。それは、生きる活力を与え、未来への希望を与え、

冒険することで、今まで考えもできなかった現実を体験させてくれた。

と同時に、「この先にはまだまだ素晴らしい景色が待っている」ことを知った。

そして、その先の景色をもっと見たくなった。

...

では、どうすれば冒険できるのか?

冒険の仕方、それは、行動することだ。

行動の仕方、それは、未来を決断することだ。

決断の仕方、それは、目的を整理することだ。

整理の仕方、それは、大切なものを理解することだ。

理解の仕方、それは、想像することだ。

冒険はいつでも始められる。あとは「する」か「しない」か。

するならば、まずは、

「冒険したその先に、どんな未来が待っているのか。自分はどういう風に変わっていたいのか。」 を、想像しよう。