ten986.net
天衣 甜茶 / ten986 の個人ブログです。フロントエンド中心の技術記事と思考整理。

「技術力」って、何?

2022-12-05
この記事は、「ten986 Advent Calendar 2022」の 5 日目の記事です。
https://qiita.com/advent-calendar/2022/ten986

「技術力」というワード

よく「技術力が高い」とか「技術力を上げたい」とかいうフレーズを聞く。
ここで指されている「技術力」には、かなり多くの種類があるのではないか? という気持ちになっている。
そこで、「技術力」と思われるものを列挙してみることにする。

「技術力」の種類

太字になっているところは、「技術力」と呼べそうなものです。
君だけの「技術力」を作って、他の人の思想とバトらせよう。
なるべく思いついたのは書いたけど、まだまだありそう。

(主にコードベースに対する)知識

コードを書けることに対して「技術力」と結びつけていることが多いなあと思う。
  • 各言語、ライブラリ、フレームワークに対する知識
    • いわゆる「ミクロ」な知識
    • たとえばある言語やフレームワークに詳しければ、最近だとひとまず飯が食える
      • つまり、 知識の深さ
      • ただ、業界によっては流行り廃りが激しいので、これだけだと2~3年程度しか保たないと思う
      • 「あるフレームワークに対する」設計やパフォーマンス改善なども、この辺りに含まれそう
    • 「ミクロ」な知識とはいえ、様々な種類かつ深い知識もあるし、知っておいた方がいいものは多い
      • つまり、 知識の広さ
      • Dockerとかはどの分野でも使うだろうし
      • AWSも「ミクロ」と言えるのか?あまりに深い知識が求められるものではあるが
    • この点では 新しい知識を取り入れる力 とかもあるだろう
  • 言語などによらない、普遍的な知識
    • いわゆる「マクロ」な知識
    • いくつかの言語や分野を習得するなり、CSを学ぶなりすることで、得られる(と言われていそう)
    • アルゴリズムもそうだし、先に挙げた「設計やパフォーマンス改善」も、フレームワークを超えた設計指針もある
      • どうせSOLID原則とかどこでも使えるでしょ(?)
    • 長くエンジニアでいるためには覚えておくべきだし、このような普遍的な知識を得ていれば、「ミクロ」な知識は吸収しやすくなる
    • この普遍的な知識の中でも、たとえばアルゴリズムに詳しいなど、特定の分野の深い知識 があることもある

開発時における能力

  • コードリーディング能力
    • 既存のコードを 正確に読み解く力
    • 既存のコードの 「どこを参考にすべきか」を理解する力
    • 既存のコードの 「実装背景」を把握する力
  • コーディング速度
    • 単純な タイピング速度
    • コーディング速度を上げるためのさまざまな工夫
      • 自動化できるものは自動化しておく、など
    • 知識の取り出しの速さ
  • 正確なコードを書く力
    • バグらないコードを書く 論理的思考力
    • 書いたコードに対して、バグを発見する、バグの修正指針を見つける デバッグ力

製品開発の上での能力

  • ドメイン知識をコードに落とし込む能力
    • 特定の知識をどのような形で表すか?といったことは業務では求められる
    • そのための ドメイン知識を把握する力
  • 自分の実装を説明できる能力
    • 正しいコードを書くのにも似ている
    • そもそも、根拠のあるコードを書く能力
    • そして、根拠を日本語で相手に噛み砕いて説明できる能力

今日の個人ブログ開発

markdown → ReactElement へのクライアントサイドでやるのイヤだなー、という気持ちになって、うまいこと Server Component とかでやれないかなーと調査中。
Next.js 13 になったものの、今 app ディレクトリを使っていないのと、13 になってからか pages で Server Component を使う方法が消えたのかよく分からないが、あまり情報が出てこなくて困っている。
素直に app ディレクトリに移植するとよいか?まだ beta 版だったような気がするけど。
ということで、見える進捗はなし。