📚

2024年の振り返り

2024/12/27に公開

昨年からのChatGPI祭りは落ち着いて生成AIで出来ることと出来ないことが見えはじめた。GitHub Copilotは、IDEによるコード補完を遥かに超えるサジェスチョンをしてきて、コードを書かずにコードレビューばかりしている気分にしてくれる。ある意味で、生成AIはプログラマの一番楽しい仕事を奪いつつあるのかもしれない。これからは、プログラマというかソフトウェアエンジニアの仕事は、自然言語でAIに指示を出して生成されたコード(テストコードも含む)をレビューするのが仕事になるのかもしれない。これは、高級言語が開発されて、アセンブリ言語が一部の人がたまに書くものに変わった時以来の変化になる。

知識やスキルに対する考え方も大きく変わる事になる。Google以前は、どれだけの知識を持っているか、どの専門書や学術論文に知りたい事が書いてある事があって、すばやくアクセスできるかが重要だった。Google以後や、どのキーワードで検索すればよいかという、起点になる用語を多く知っていて、Web上の情報を理解するための基礎知識が重要になった。これからは、キーワードでなく、自分や所属会社にとって何が重要なのかの概念を思いついて言語化して、AIに「問いかける」られるか、問いかけた答えを素早く結論付けて実装できるかが、競争優位に立つためのスキルになりそう。

そう考えて今年の結果を振り返ると、現状は実装速度が遅く、爆速で実装できるようにならねばと思う。

抱負とその結果

3つのうち1つしか実現できずだった。仕方がないのだが、会社の業務で役立つかもって思う技術を見つけるとその調査に時間を取られてしまう。

  1. マイクロマウス競技会に出場する
    7月か9月頃にありそうな西日本地区大会に向けて、停滞しているtarfの開発を完成させる
    結果: Rustで組込みアプリを作るのは時期尚早だった。ROS2も使いやすいプラグインとかはないし、Pythonのビルドシステムもまともなできじゃなかった。
  2. 数学の勉強をする
    大学の線形代数複素関数論の基礎 を読み終える
    結果: 量子力学の面白そうな本を見つけて横道にそれてしまった。
  3. コンピュータ関連の技術書を2ヶ月に1冊読む
    後述の読みたい本の技術書から6冊読み終える
    結果: O'Reilly本のサブスクを安く契約する方法が復活して想定以上に読んでしまった。

主にやっていた事

ロボットを作りたくて手始めにとマイクロマウスに手を出したけど全く進まない。あれこれ手を出して中途半端に終わってし待っている感じがする。

  • 1月: 競技プログラミングの勉強(昨年からの続き)
  • 2月:
  • 3月: アジャイル関連の本の読書
  • 4月: 競技プログラミングのためのアルゴリズムの勉強。「AtCoder Beginner Contest」に参加開始。
  • 5月: OmniMouseプロジェクトを開始。主にRaspberry Piのセットアップや筐体の制作。
  • 6月: OmniMouseプロジェクトで回路(配線)とステッピング・モーターの駆動のプログラミング。
  • 7月: 「AtCoder Beginner Contest」で11回参加で暫定レーティング 452で入茶。他の事に時間を使いたくなって一旦停止。OmniMouseの開発。
  • 8月: OmniMouseの開発。
  • 9月:
  • 10月:関数型ドメインモデリング』の内容をJavaで実装開始。 ANTLRでSQLのWhere句の式のパース方法調査。パーサコンビネータやパーサジェネレータの調査。
  • 11月: tf2pumlというTerraformのコードからPlantUMLのアーキテクチャ図を生成するツール開発開始。Technology Radarを過去に遡りながら購読開始。
  • 12月: tf2pumlの開発。Technology Radarのアーカイブの購読。

勉強した(、触ってみた、調査した)プログラミング言語・ライブラリ等

もう少し手早く習得したいのだけど、どうしても時間がかかってしまう。

  • TiDB Serverless: トランザクション処理と分析処理に適したDBのSaaS
  • Sleuth: Four Keys(DORA Metrics)測定に使えるSaaS
  • ROS: Robot開発用フレームワーク(OSと名乗るのは誇大広告)
  • Raspberry Pi OS: Raspberry Pi用のOS
  • ANTLR: Javaで書かれたパーサジェネレータ
  • Unleash: オープンソースのフィーチャーフラグ管理のプラットフォーム

読書

今年読んた本のベストは手を動かしてわかるクリーンアーキテクチャだった。ドメイン駆動設計の本を1つ読んだけど、分からないと言っている人には、今後はこれをお勧めする事にする。

コンピュータ技術書

ACM会員になるとO'Reilly本が読み放題」になるので、O'Reilly本を読む比率が上がって来ているし、読む量も増えている。英語だとO'Reillyの他にAddison-Wesley Professional, Packt Publishing, Pragmatic Bookshelf, Prentice Hall, Manningなども読めるので、ChatGPTや翻訳SaaSを使って読んでいきたい。

プログラミング

  • 競技プログラミングの鉄則 (第6, 7, 8, 9, 10章; 読了)
    基本的なアルゴリズムの実装の速度が遅い気がしたので、速度アップの練習のために読み始めた。読了後はAtCoderに参加。
  • Vision Transformer入門 Computer Vision Library (読了)
    画像にTransformerをどうやって適用しているのかと知りたくて読み始めたけど、Attentionの実装について一番分かりやすい解説だった。
  • ゼロから作るDeep Learning 4 ―強化学習編: (第6, 7, 8, 9, 10章; 読了)
    ChatGPTで使われているRLHF(人間のフィードバックによる強化学習)を知りたかったが、そもそも強化学習の実装方法も分かってなくて読み始めた。このシリーズの解説は本当に知りたいところが良く解説されている。
  • ゼロから作るDeep Learning ❸ ―フレームワーク編: (第1, 2, 3, 4, 5ステージ; 読了)
    PyTorchのメソッドの呼び出しの裏で起きている事が分かって良かった。
  • 初めてのGraphQL ―Webサービスを作って学ぶ新世代API (読了)
    リソース指向のREST APIだけでは限界を感じて読んだ。REST APIとGraphQLは共存するのかも。
  • WebSocket (読了)
    非同期処理でポーリング処理をなくしたくて読んだ。
  • ROS2とPythonで作って学ぶAIロボット入門 : (第1, 2, 3章)
    ROSを使ってみたくて読んだけど、ROSというフレームワーク自体がドキュメントも少ないし、こなれていない。共通のデータフォーマットが揃い始めた程度のレベルだった。
  • すごいHaskellたのしく学ぼう!: (モナド関連を拾い読み; 読了)
    関数型ドメインモデリングでモナドについて少し触れていたのでモナドの復習になった。
  • The Definitive ANTLR 4 Reference: (Chapter 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12; 残りはリファレンスなので、読了とする)
    Webアプリでパーサが必要になるようなオプションを実装できないかと考え、それにANTLRを使おうとして勉強するために読んだ。ANTLRが普及しないのは、これを有料にしているせいのような気がする。ANTLRを使うためには、絶対に無料公開して欲しいと思える良い内容だった。
  • ふつうのコンパイラをつくろう: (第1, 2, 3, 4, 5, 6, 7章)
    ANTLRに辿り着く前にパーサの復習をしようと思って読み始めた。

ソフトウェア設計

ヘキサゴナルアーキテクチャの実装方法について自信を持って説明できるようになったのが、今年の収穫だった。

プロジェクト管理

2週間のスプリントでレトロスペクティブやレビューをやっているけど、本当のスクラム開発をできているのだろうかた悩んでしまって、スクラム関係の本を読み漁った。レビューでフィードバックを得て進む方向が変化しないんじゃ意味がないなと、自分の中で結論が出た。

数学・科学系専門書

今年の前半は読めたけど、後半は読めなかった。初学の編集者がわかるまで書き直した 基礎から鍛える量子力学は読み終えたい。

その他専門書

THE MODELは当たりだった。ストーリーとしての競争戦略企業参謀 戦略的思考とは何かとかと同じぐらい、和書の中で参考になるビジネス書だった。

  • THE MODEL: (第1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15章; 読了)
    営業のパイプランという考え方が勉強になった。若い頃に読みたかったが、30年前にこの概念があったのだろうか…
  • 起業の科学 スタートアップサイエンス (読了)
    スタートアップ関係の用語集みたいな本。この程度は知っておけという内容について軽く触れている。真髄は原典をあたるべきで、これを読んだだけで理解したつもりになると痛い目にあいそう。
  • 現代思想入門 (第1, 2, 3, 4, 5, 6章)
  • ChatGPT翻訳術: (読了)
    命題とモーダルという分け方があるのが勉強になった。用語集を作りながら翻訳させると訳語が統一できそう。

小説等の一般書

ドクター伊良部シリーズは面白かった。あと2冊残っているので読むのが楽しみ。

目標の結果

色々とリストアップしても、次に読む本を選ぶ頃には気が変わっている。目標というよりも、その時点で気になる本のリストだったと思う。

技術書

専門書等

小説

GitHubで編集を提案

Discussion