My "Things I Don’t Know"

Things I Don’t Know as of 2018 という記事がよかったので真似してみる。

個々の説明を長々しても仕方ないと自分は思うので、ざっくり 3 つくらいの「知らない」レベルに分けてみる。すなわち 1. なにそれ. ニュース記事とかで名前と三行説明を読んだくらい。 2. 聞きかじり: 何らかの入門的文書は読んだことがあるが、さわったことはない。3. ハロー: ハローワールドしたか、何らかの必要に迫られて数行触ったくらい。

元記事とおなじく全てのソフトウェアテクノロジをカバーしているわけではない。なので個々に載ってないからと言って知っているわけではないものはたくさんある。あと元記事では「ネットワークスタック」「関数型言語」みたいな「さわる」を定義するのが難しいものが混じっているので、そういうのは省いたり具体的にしたりした。ウェブの細かい要素技術はどうでもいいのでだいぶ省いた。かわりに Technology Radar を眺めたらちょっと補った。

ではスタート!

  • モバイル:
    • React Native: 聞きかじり
    • iOS: なにそれ. Mac 持ってないし...
  • ウェブフロントエンド技術:
    • Webpack: なにそれ
    • Modern CSS (Flexbox and Grid): 聞きかじり
    • React: 聞きかじり
    • GraphQL: 聞きかじり
    • Electron: むかしハロー
  • サーバサイド
    • Docker: ハロー
    • Serverless: 聞きかじり
    • Kubernetes: 聞きかじり
    • Istio: なにそれ
    • Rails: すごい昔にハロー
    • クラウド全般: EC2 と S3 くらいをのぞくとだいたいなにそれか聞きかじり。
    • Deployment pipeline 全般: 聞きかじり
    • Logging, monitoring 全般: なにそれ
    • Hadoop 全般: なにそれ (プロプリエタリな類似品についてもなにそれ)
    • CI Platform 全般: Travis のみ Hello, あとはなにそれ
    • 他にもなんかある気がするが知らないので列挙できない
  • データベースっぽいやつら
    • ハロー: MySQL, Mongo
    • 聞きかじり: Redis
    • なにそれ: Postgress, ELK, etc.
    • まったくわからん。しいていえば SQLite ちょっとできるかもな・・・。
  • ML
    • TensorFlow: ハロー
    • PyTorch: 聞きかじり
    • 他のツールやフレームワーク: なにそれ
    • RL: なにそれ
    • Sigh.
  • ゲームエンジン全般(Unity, Cocos2d, etc.): なにそれ
  • ランダムな新しいもの
    • Cryptocurrency: なにそれ
    • Quantum Computing: なにそれ
  • ランダムな古いもの
    • アセンブリ言語: ハロー
    • FPGA: 聞きかじり
  •  プログラミング言語は多すぎてキリがないのでざっくり。
    • なにそれなプログラミング言語たち: Swift, Elm, Elixir, etc.
    •  ハローなプログラミング言語たち: Rust, Go, Scala, ES6, TypeScript, Obj-C, Scheme, Haskell, Erlang, etc.
    • プログラミング言語はハローの敷居が低いね。一方でハローと実用は遠い。


現代的ソフトウェア開発をしている人が見たらこの人大丈夫かと首を傾げるかもしれない。が、今の所大丈夫ですよというのが話の趣旨なのであった。元の記事は Facebook で React を作っている有名人らしい。そのへんのおっさんはともかくスターがいうと説得力がある。

自分の場合、ほんとに大丈夫なのかと言われると言葉に詰まる。サーバサイドやりたいなあ、機械学習やりたいなあ、とか思いながら行動には移さずぼんやり Android してます。色々触れる仕事は遠くなりにけり。

追記

自分の知らないことを書くのに気が乗らない理由の一つは、こういう上から教えたがりさんに絡まれる可能性への億劫さだと思う。