< All Blog

日本刀を研ぐように、技術を磨くということ

November 18, 2022

プログラミングや新しい技術を学ぶときに、三つの学びの段階があるんじゃないだろうか。

第一の段階が、新しい刀を鍛冶するように、新しいプログラミング技術を学ぶ段階。

これは、全く新しい分野を開拓し、今まで得ていなかった知識を得ること。

具体的には、フロントエンジニアが新しく Golang で実装するバックエンドの開発手法を学んだり、web2 ソフトウェアエンジニアが Solidity を用いたスマートコントラクトについて学んだりすることだ。

第二の段階が、刀を振る型を習得するように、技術を応用する段階。

これは、習得しかけている技術を、多方面から眺めてみることによって、その技術に対する技能を深掘りし、幅広く応用できること。

具体的には、Ruby で Web アプリケーションの開発手法を学んだ学習者が、CRuby の動作原理から理解したり、ベンチマークの計測手法と最適化手法を学んでパフォーマンスエンジニアリングをできるようになったり、並列処理を可能とする API に詳しくなって高速な処理が可能なバッチアプリケーションの開発手法も学んだりすることだ。

そして、第三の段階が、錆び付いてきた刀を研ぐように、誤った認識や古くなった常識を切り捨てる段階。

これは、過去に習得したが現在は陳腐化している内容や、誤って理解している領域について、熟考して正しい理解をすることで、その技術をより適切な場面で使えるようになること。

具体的には、自分でサーバーを建てて Web アプリケーションを保守していたような古き良き時代に覚えたスケール手法を、クラウドネイティブの時代に合わせた適切な手法を使うようになったり、手に入るメモリやディスクが技術の進歩によって前進した特性に合わせたパフォーマンスエンジニアリングの手法を学んだりすることだ。

本当に一つの技術に習熟するためには、どれか一つだけ欠けていても足りない。

例えば、よく世間一般に言われることとして、「座学だけではダメ。手を動かして実践しよう」というアドバイスがある。これは、第二の段階について経験が不足していることを意味する。これはわかりやすい。

一方で、人は一度コストをかけて学んだものに対して、必要以上に愛着を抱いてしまうことがある。知識のアップデートを怠ってしまうと、いつの間にか切れ味の欠けた刀を持っていることに気づかない。第三の段階について、気がつけば怠っていた、ということもないようにしたいものだ。

Recommended Posts

  1. Bowling or Rowing?

    September 04, 2023
    いきなりですが、皆さんが今所属しているチームの雰囲気って、どんな感じですか? アットホームな雰囲気漂う和やかなチームでしょうか。カリスマがいる強い個人に引っ張られるチームでしょうか。目的が曖昧で空中分散しかけているチームでしょうか。 最近、別のチームとの協働プロジェクトに関わっています。私が所属するチームと協働する必…
  2. 子どもの自己肯定感は、親の期待のことではない

    July 22, 2023
    以前、「子どもに決して "I'm proud of yourself" と言わない理由」という記事を書いた。普段育児ネタを投下しない割には、まあまあ反響があった気がする。 つい先週、子どもと公園で遊んでいて、彼女の自己肯定感が高まる瞬間に出会うことができた。Monkey Bar、日本で言うところの雲梯(うんてい)をこ…