久しぶりにブログを書きます。
特に技術的な要素は何もない文章です。
書きたいことはタイトルの通りなのですが、私は30歳近くになるまでこれが全然分かっていなかったなと思います。
私が賢くないからかもしれませんが、私は教科書に書いてあるとおりのやり方で問題を解いたとしても頭にはなかなか入りませんでした。
これは仕事においてもそうだと思っています。
よくわからないけど、書いてあるとおりにやったら解けた。
よくわからないけど、言われた通りにやったら終わった。
もちろん最初はそれでいいと思います。むしろ誰しも最初はこのように型から入るものだと思います。
ただ、実際の試験問題では教科書に書いてあることを応用して解くことを求められるし、仕事では前にやった経験を"応用して"完遂することを求められます。
応用ひとつひとつの解説は、教科書には載っていません。なぜなら、そんな数多くのパターンを全部載せていたらキリがないし、応用を100個覚えたとしてもそれは101個目の応用に出会った瞬間まったくの無意味となるからです。
仕事でも、テクニックであったり技術であったりなにかの技法であったりメソッドであったり。色々な知識や方法論がありますが、それは突き詰めていくと「誰かが思いついて、それを磨き上げ、色々な人が使えるようにしたもの」です。
それらの解説本や、セミナー、勉強会は世の中にたくさん存在しますが、気をつける必要があるのは「それを教えている人は、あなたと全く同じ経験、仕事をしているわけではない」ということです。
もちろん業界が同じであったり似たことをしていることはあるかもしれません。
でも、セミナーで習ったこと、勉強会でやったこと、本に書いてあったことを丸まんまやってうまくいくなんてことは、そうないのではと思います。
過去の私もよく「どうしたらうまくいきますか?」みたいなことを色々な人に大変失礼ながら聞いて回っていましたが、当然ながらその答えを得ることはできませんでした。というか、その答えを求める姿勢自体が誤りだったなと今では思います。
もう何人のエンジニアの方に言われたか数えることすらできませんが「まずは小さくやってみる」これに尽きると思います。
セミナーや書籍で扱っている技術は一般化されています。よくあるプロジェクトの例を出してみたり、よくある製品を例にしてみたり。で、当然、飛行機の題材で説明されているけど私が仕事で扱っているのは銀行のシステムだ、なんてことは日常茶飯事です。
そうなると当然まるごと使うわけにいきませんので、「この方法自体は使えないけど根本のコンセプトは利用できそうだな」とか「この技法に出てくるこの図だけ使ってみたらいい感じに説明できるかもしれない」とか、共通点とか使えそうなところを探していくわけです。それで実際にやってみると、「この考え方めっちゃ汎用的に使えるじゃん!」みたいなこともあるし、「これはこの業界のこの製品だからこそ役に立つ考え方だな。」みたいなのがわかっていきます。
こういう「実際にやってみたら、案外うまくできなかったな」みたいな経験をしていくのが、いわゆる成長というか、エンジニアとしてスキルをつけることなのかなと思います。
私は筋トレが趣味なのですが、腕立て伏せも本を読むとやり方しか書いていません。ですが実際にやってみると「尻が下がってしまいがちだな」とか「姿勢を保つには腹筋に力を入れてキープする必要があるな」みたいなことに気が付きます。
でもそれは当たり前で、なぜなら今持っている筋力も人によるし得意なトレーニング苦手なトレーニングも人によるので、いちいち「こういうことに気をつけようね」みたいなのを網羅的に書くことはできないのです。なので自分でやって、気づいていく必要があります。
コンサルタントやコーチを雇えるひとは、その気づきを得ていくサポートをしてもらえるかもしれませんが、そうでなければ自分で自分の問題解決をしていったり、自分で気づきを得ていく必要があります。
「私の考える最強のシステム開発」みたいなものが存在しないのも同じ理由です。なぜならシステム開発は毎回お客様も違うし作るものも違うしメンバーの構成も違うので、どうやったらうまくいくかというのも普遍的かつ万能なやり方というのは存在しないのです。
なので、数ある手法のなかで「何をどこにどのように活用したらうまくいくのか?」というのを試していくしかありません。
これは過去の自分の誤ちの言い訳ですが、とかく成功事例というのはド派手に説明されます。そのほうがウケがいいし、説明もしやすいからです。でも、それで私のような賢くない人間は、「◯◯を使えば、全部がうまくいって解決するんだ!私も◯◯を使えるようになりたい!」と勘違いをします。
◯◯というのは、例えば昔で言えば「アジャイル開発」とかでしょうか。今だったら「AI活用」とかかもしれません。でもいずれにしろ「これがあれば全部が解決する」みたいなことはありえません。それは何度も言うように、1対多で説明されている方法論は個別の問題を解決するために最適化されていないためです。
なので、結局は「学ぶこと」を目的としてしまうのではなく、あくまで「目の前の問題を解決すること」を目的として、そのために何が使えるか?という目線で、ひとつずつ実践をしていくのが一番の近道なのではないかと思います。
受験勉強でも、「なんで間違いなんだ?どうして解けないんだ?」と、わからないことを1個1個納得して理解できた経験を通して、学力が上がっていくものだと思います。
ひとっ飛びに成功や成長をめざすのではなく、まずは目の前の問題に対して手を動かす。というのを大切にしていきたいと思います。