私が技術を身に付けるためにやったこと
具体的に書きます。私がGitの操作を覚えるために、GitHubのリポジトリを何回も作り直して、git pull origin master と git push origin master を二時間、ひたすら繰り返しました。このくらい繰り返すと、やっと思考の中でコマンドが浮かんでくるようになります。これを話すと、「いや、記憶さえすれば思考できるだろ!」と言われることが多いです。ただ、言う人はたいてい試行錯誤を軽んじる傾向が強く、スキルはおおよそVBAやBatが書けた程度で満足して努力を止めます。
エンジニアと話す機会があれば、どうやって技術を身に付けたか話を聞いてみましょう。相手の考え方を認識しやすいです。同じエンジニアでも幾つか派閥があって、本から知見を得ることを重視する本派、手を動かすことを重視する行動派、経験を重視する経験派と、だいたい大きく分けるとこんな感じです。同じ意見に同調して士気を上げたい時には同じ派閥の人と、世界を広げたいと思ったら、別の派閥の人と話してみると、良い結果に繋がると思います。
自分自身振り返ると、自分では派手な努力をしてきたつもりで、振り返ると地道な努力でした。努力している最中は、あれこれ考えて思考を凝らしていたつもりでしたが、行動の一つ一つを振り返ると、同じコマンドを筋トレのように繰り返したり、技術書で辞書引きしたり、ひたすらググって説明を読んだり、それがほとんどでした。これを一冊の文章にまとめてみたら、さぞかし地味でつまらないものになるか想像ができます。
技術を身に付けるためのアプローチというのは、すさまじく地味なプロセスです。技術自体は本やネットから入手できますが、それを自分のものにできるかどうかは、それぞれの取り組み方次第です。何かピーンとくるような決定打を探しがちですが、結局は悩みながら反復作業をしているうちに、気が付いたら習得していたというパターンがほとんどです。技術は飽きて興味が失せたくらいの頃に身についています。
確かに、覚えたてくらいの時は学べば学ぶほどできることが増えるので楽しいです。ただ、基本を超えたくらいのレベルから、できることはそんなに増えなくなります。最初の頃の楽しさをイメージしていると、学習している実感を得にくくなります。技術を身に付けるのに必要ななのは、センセーショナルな実感より、野球の素振りのような地味な継続かと思います。振り返ると、あらゆる手段はつかいましたが、結局やっていたことは反復作業でした。