2015年7月6日月曜日

流行のIT技術を追うのをやめたらプログラマとして成長した話

私はもともと普通のプログラマとしてキャリアをスタートしましたが、2007年くらいから脱プログラマを目指してソフトウェア起業家として経営に軸足を移してきました。

それから8年くらいが経過して思うのは、経営者として大きな成功をおさめる前に、自分のプログラマとしての実力がめきめきとアップしてしまったということです。

8年前の私は、プログラマとしては基礎力はあるものの全般的には未熟であったように思います。コードも荒削りで、とにかくかろうじて動くものを作ることに四苦八苦していました。が、いまはプログラマとしてずっと良い仕事ができています。

この8年間は、自分でコードも書いていたので、経験が増えたことによって、良いコードを書けるようになったという面も多々あるとは思います。しかし、そのあいだ技術書を読むことはすっかりやめてしまい、流行の技術などは完全無視してきました。

経営層の一員として働くので、プロジェクトマネジメント能力や総合企画力や折衝能力などがあがった面もありますが、それよりもシステム設計力やアルゴリズム力などのプログラマとしての基本能力が大きくあがったと感じています。

いま振り返って思うのは、バリバリのプログラマを目指して活動していたときは、流行の技術を追うことに必死すぎたなということです。

どうしてもプログラマというのは新しいツールやら言語やら方法論やらがでてくれば、ついつい調査してしまいますし、追いかけていないと不安になってしまいます。

その結果として、ひたすら技術書ばかり読みまくって勉強会にでまくるプログラマのできあがりとなります。

それは悪いことではないし、プログラマとしてそういうのが必要な時期もあるかと思うのですが、弊害としては、プログラマの基本能力作りがおろそかになったり、不安感にかられて軸足がふらついてしまうようなデメリットがあるかと感じます。

最悪の場合は「目の前にある現実の問題を解く」ということを軽視して、使ったこともない最新のツールや方法論ばかりを社内や顧客にむかってわめきちらす迷惑な意識高いプログラマとなってしまいかねません。

流行のツールや方法論のなかには、いろいろと筋の悪いものも含まれており、そういうものに下手にはまってしまうと悲惨なことになる場合も多々あるんですよね。また、そういった流行の技術には、変に思想性が強いものが多くて、そういう思想にかぶれることで問題解決の本質に目が行かなくなる恐れがあります。

私もバリバリプログラマ時代には、かなりの不安感を持って、押し流されるような気持ちでプログラミングをやってきました。Aという技術が理解できない自分はバカじゃないかとか、Bという技術が使えないのに生き残れるのか? など不安でいっぱいでした。

今考えれば、そんなことはどうでもよくて、自分の強みと、解くべき問題にフォーカスすべきだったんだよ!ということなのですが・・・


さて、若いみなさんはこの記事を読んですっかり老害乙とおもわれたことでしょうが、ここからさらに老害力をあげて説教モード全開でいきたいとおもいます。

技術のなかには、すぐに廃れるようなものもあれば、長く生き残っていくものもあります。私は、流行のツールばかり持てはやされる現在のプログラマ業界にかなり不安感を抱いています。

例えば、以下のような技術はこの10~20年間、本質的にはほとんど変わっていません。昔に学んだことは、そのまま今でも使えることばかりです。

  • リレーショナルデータベースのテーブル設計とSQLクエリの記述
  • アルゴリズムとその他の計算機科学
  • システムプログラミング (C言語によるプログラミングとか)
  • 基本的な業務知識(たとえば簿記会計など)
  • IPとイーサネットによるネットワーキング
  • コンピュータセキュリティや暗号理論
  • ユーザインタフェースとデザイン

これからあなたが流行の新ツール "SuperduperX"を学んだとしても、たぶんその知識は数年後には役立たずです。しかし、こうした基礎を学んでいれば、たぶん10年後もいくらか役に立つことでしょう。

そういうことに気付いてしまった私は、すっかり流行の技術を追うのをやめて、幸せなプログラマとして、毎日を目の前の問題解決に費やしています。

まあ、べつに流行のツールを積極的に学びたい人を止めるつもりはありませんが、不安感と焦燥感に駆られて、新技術ばっかりを追うことはないですよ、と。

あと自分が苦手なことがあったり、理解できないことがあったりしても、それをコンプレックスのように思う必要はないかと思います。全ての技術を使いこなせるスーパープログラマなんて、まず存在しないですからね。

流行の技術には、はっきりいって完全なデタラメみたいなものもあるので、「これ、わけわからないなー」と思ったら、自分の直感に従って無視するほうが良いかと思います。

そして、プログラムを書く目的は、あくまで問題解決のためですから、目の前の問題をどんどん解決していきましょう!

問題解決といえばワインバーグの名著「コンサルタントの秘密」ですね。唐突なアフィリンクですが、まあ、この本はなんど紹介しても足りないくらいの名著ですので・・・ やたら読みにくいですが、間を置いて三回くらい読めば分かるようになるでしょう。


0 件のコメント:

コメントを投稿