ども、@kimihomです。
週末は図書館で気になる本を読むのが最近の日課。地方の図書館だと学生ばかりいて、さながら受験勉強のような感じで読書ができる。
さて今回読んだのは 情熱プログラマーって本。
開発者としてあるべき姿的なのが書かれていた。
とにかく学び続ける
全体を通して感じたのは、好奇心を持って学び続けることの重要性。そして技術的なコミュニティやOSSに絡むことで、自分のブランドや、技術力そのものが向上できるといったことが書かれていた。
例えば日本では "今はとりあえず Java を学んどけば仕事に困らない" 的な流れがあると思うが、その風潮がいつ変わってもおかしくないし、特にJavaは企業プロダクトなのでその会社がダメになったどうなるのとかそういうリスクをはらんでいる。だから Java だけしか書けませんってのはリスクがある。 あと Java ならできますと言っておいて、JVMの細かいところを知らないような人が、Javaの専門家ですなんて名乗っていいのかってのも問題としてある。ほとんどのプログラマーはとりあえず書けるってだけで Java ができますと言ってしまう。これは問題だ。
Javaしかできないと言うのもやはり問題だ。どんだけその言語のプロフェッショナルでも他の概念を知らないと時代に取り残されることになる。 関数型言語とか動的な型付け言語を学んでみるとかそういうチャレンジが新しい発見につながる。全ての点が繋がり、本当に理解したプログラマーはどんな問題が起きても適切に対応する力を身につけることができる。
でも仕事じゃそこまで必要とされることがないから、それ以上は勉強しない。そんなエンジニアばかりが世の中に出回っている。技術が好きでなければ休日を利用してまで勉強するなんてことはできないから、エンジニアはできるできないの差が激しすぎる。できないエンジニアはプログラミング全行程を遅らせる要因にしかならない。ひどいソースコードはバグだらけのシステムを生み出す。
私ができないエンジニア100人よりできるエンジニア1人のほうが生産性が高いと思っているのはまさにこのこと。
仕事だけで燃え尽きるな
今回私が最も考えさせられたのは「仕事に全力になりすぎて学ぶことをおろそかにすると、それ以上のプロダクトはできない」ってことだ。今は自分は CallConnect の開発に100%注ぎ込んでいて、休日も開発していたりした。
ただこれだと今の自分の能力以上のプロダクトはできないんだよね。より高度な技術や専門的な知識がいるようなことは自分が休日を利用してサービス開発してでも作ることはできない。
だからこそ、自分を高める時間をもっと作らなければならないと痛感した。具体的には仕事はちゃんと時間通り終わらせて、そのあとは勉強に時間を使う。休日は開発ではなくて勉強に時間を使うといったことをやっていこうと思った。
それは以前の自分に似ている。企業に勤めていた頃は起業の準備に向けて必要な技術を空き時間で必死になって勉強した。それは誰かに言われてとかじゃなく、自分の使命感からくるモチベーションだった。今起業して自分でサービスを0から作っているが、基本的なことは全て独学で習得した。そしてこれからも独学で学ぶこと以上に効果的な技術の習得方法はないと思う。
"自分のサービス開発が大事だからこそ、時間を作って自分の技術力を高める。"
その思いを持って、これから過ごしていきたい。てことで、このブログも新しい技術を学んだ時のアウトプットの場として、利用していきたいと考えている。