プログラミング漫遊記

思ったことや、勉強したことをつらつらと。

6月のふりかえり。TOEIC受けた編。

7月も半ばだというのに書くのを失念していた。思い出しながら書いてみる。

学習と生活の記録。いわゆる日記。

先月はこちら。

haruguchi-yuma.hatenablog.com

6月は特に大きなイベントなどはなく、粛々と学習を進めていたイメージ。多分。おそらく。きっと。

おしごと

相変わらずRubyを書いてます。RailsというよりはRubyを書いてる気がする。 先月もいってたかもしれないけど、クラスの設計についてあれこれ考えることが多い。インスタンス変数をどこで初期化するか、そもそも導出可能にしておくか、メモ化してインスタンス変数に詰めておくか。メソッドの粒度はどのくらいにするか。クラスメソッドの方が使い勝手がいいか。そんなことを今月も考えていた。

テストの構造化の難しさにも少し悩んでいて、どうやったらスッキリするのかなとかを考えていた。

パッと答えが出るものでもないので、チームメンバーと議論しながら進めている。

プロジェクトではメンバーの増減などがあり寂しさとともに、気を引き締めないといけないと思ってた。

日常

  • レビューしていたJS Primerの献本が届いて嬉しかった
  • TAPLtsという勉強会に参加し始めた
  • 友達の家に行って、赤ちゃんに遊んでもらった
  • TOEIC初めて受けた
  • TOEICの受験日間違って前日に会場入りする熱心さを見せつけた
  • TokyuRuby会議にプロポーザル出した
  • Kokura.rbに参加
  • 毎日の散歩のノルマが6250歩になって(250歩up)健康的になった
  • 月2回ほど体調が悪い日があった

記憶がなくてこれくらいしか思い出せない。

TAPLts勉強会に参加

PADAoneさんのツイートで知った勉強会。

型システム入門という書籍(訳者にRubyではお馴染みの遠藤さんがいる!?)の勉強会に参加。 これはプログラミングの知識だけでなく、数学的な知識も必要で到底一人では読み切れそうにないので参加することにした。

学習会の雰囲気がとてもよく、自分も勉強会するときに真似したいなと思う部分がたくさんあった。

一例をあげると、難しい文章があったときに 「ちょっとここじっくり味わいますか」みたいな表現がたくさん出てきて、難しいものへの向き合い方が真摯だなぁと思う。

TOEIC

人生で初めて英語の試験を受けた。なぜかカレンダーに間違った日付が登録されていて、前日入りしてしまった。 会場は龍谷大学。最寄りの駅から大学まではバスが出ている。そのバスに乗った時点で3人しか乗車しなかったので怪しいと思っていたんだよな。 会場についてから気づくというボケをやらかす。

あと、単語帳を持っていったと思ってたら間違えて将棋の3手詰めハンドブックを持っていってしまったのも我ながら芸術点が高いと思う。

翌日の本番はちゃんと単語帳を持っていった。

TokyuRuby会議

RubyKaigi 2023でノベルティとして配布したRubyメソッドかるた関連でプロポーザルを出した。(そして通った!🙌) 個人的に年初に年3回LTという目標を掲げていたのでちょうどよかった。あと1回で達成する。

町田さんがデザインした肉が良い感じ!

学習

今月はダラダラ本を読んでいた。ダラダラ読む本ほど最高なものはない。時間を気にせずゆっくりと味わう。

  • 研鑽Rubyプログラミング (β final) 読了
  • 初めて学ぶオートマトンと言語理論 読了
  • なるほどUNIXプロセス 読了
  • 型システム入門
  • UNIXという考え方
  • 数学ガールの秘密ノート 数を作ろう
  • サバイバルTypeScirpt(Web)
  • ガラムマサラさんとMaedaさんと Ruby の Enumerableにあるメソッドを再実装する遊びをしていた(もちろんrefinements使った)

6月の最初くらいに研鑽Rubyを読み終わった。本当はRubyKaigiまでに読み終わるつもりだったがそうは問屋が卸さない。 自分の経験値に応じて景色が変わりそうな本だったので定期的に読むのが面白そうだと感じた。

はじめて学ぶオートマトンと言語理論

最初にこの本を読んでよかったなぁという感想。図が豊富で難しい数式も出てこない。練習問題が豊富(あんまりやってないが)という3点で初学者にもおすすめできそう。

後半は言語理論のお話で、自由文脈文法がチューリング機械と同等の能力を持っているだとか、前半にやった抽象機械とそれぞれの文法の互換性について丁寧に解説されていてよかった。

なるほどUNIXプロセス

読むのは2,3回目。ページ数が100ページちょっとで非常に読みやすい。文体も語りかけるような文体でプロセスって何?という状態からでも非常に理解しやすかった。Rubyで動かせるのが何よりも良くて、実際に手を動かしながら理解を進めていった。

仕事でも並列処理するかどうかの検討があって、parallel gemの話が上がったときにプロセスをforkしてゴニョゴニョしてるという話についていけたのがタイムリーでよかった。

Enumerableのメソッドを再実装

フィヨルドブートキャンプ時代の友達とモブプロしながら遊んでた。

ルールは以下の通り - eachメソッドを作る(my_eachと名付けた) - 作ったmy_eachメソッドを使って実装する - できるだけ忠実に再現する(引数を与えなかったときに返すEnumeratorなどもできたら再現する)

こんな感じで遊びながら作ったのでメソッドの理解が深まった気がする。

AtCoder

引き続きコンテストに参加中。 C問題の茶diffを解き終わったので7月はD問題の茶diffを解いていく。

7月に向けて

7月はTOEICの結果が返ってくるので(返ってきたので)英語の勉強を本格的に始める。 オートマトンの書籍を複数冊読んで地盤を固める。 計算機科学の基礎を身につけたらどこに向かっていくのが自然なのか考える。