Write Code (Every Day − 3)

ここ1年、去年の年末の3日間以外はプライベートで毎日少しずつコードを書いていた。流行りっぽい技術(特定の言語のライブラリや特定のベンダーの技術など)はあまり追わないようにして、コンピューターサイエンスの基本的なことを学ぼうとしていた。SICPの問題を解いたり、インタプリタを実装してみたり、基本的なアルゴリズムで遊んだり、仕事でほとんど使ったことのないstatic typingな言語に触れたり、オブジェクト指向の勉強をしたりしていた。他の人のOSSには少ししかコントリビュートしていない。

大学では経済学を専攻していたので、コンピューターサイエンスの基礎をまったく理解していなかった。新しい技術を習得するときに、コンピューターサイエンスの基礎を理解していないと、うまく知識を積み上げることをできず、いつかつらくなるんじゃないかと思って、コンピューターサイエンスの基礎を勉強してみた。普通に楽しかったので、もっと早くからプログラミングとかをしておけば良かったかもと思ったりもした。予想どおりと言えば、予想どおりだが、ほとんどが仕事と直接的には関係のないことなので、すぐに仕事に影響が出ている訳ではない。

本心で思っているのかはわからないけど、「プライベートで毎日コードを書いているのはすごい」みたいなことを数人から言われた。自分にとっては何かを習得しようとする際に、毎日やる方が容易に習得できる気がしている。大学の頃、講義にちゃんと出ず、毎日せっせとPCで作曲していた。曲と言えないような小さい単位でも毎日作り続けていたら、ライブのオファーが来たり、海外のWebメディアに紹介してもらったり、日本の雑誌に名前が載ったりするのに、それほど時間はかからなかった。この経験を他で応用できるのかはよくわからないけど、自分のような才能のないタイプは毎日少しずつでもアウトプットする方が何かを早く習得できるのかもしれない。

Web業界に入って(プログラミングをまともに始めて?)、もう2年2ヶ月くらい経っていた。この業界に入る前や入った直後は「流れが速いから常に勉強しないといけない」みたいなことをよく言われてたが、「みんな、それほど勉強してなくないか?」と思っている。エンジニアは二極化していて、上はかなり勉強している人、もしくは勉強しなくても圧倒的にできる人、下は才能がないうえに努力しない人がたくさんいるように見える。(自分の見ている範囲が狭く、見ている期間が短いだけかもしれない。)能力が低くても、クビになったりせず、普通に何年もやっていけているとうに思える。

とりあえず、プログラミングは楽しいと思っているので、これからもプログラミングを続ける。

読み直してみると、少し偉そうな感じになってしまっているが、将来偉くなることでカバーする。

Software engineer

Software engineer