はじめに
このブログをはじめて6年が立ちました。6年というと、一つの区切りのような気がします。そこで、今回は6年間の興味の移り変わりと成長を過去記事とともに振り返ってみようと思います。では、どうぞ。
2012年3月 〜 2013年3月 ソフトウェア開発者としての幕開け
2012年3月10に、初めてブログを立ち上げました。
立ち上げたきっかけは、あまり覚えていないのだけれども、たぶんアフィリエイトで一発あててウハウハしたかった気がした(笑)。睡眠やファッションや食事に関するアフィリエイトブログが先に立ち上がって、WordPressでゴニョゴニョしたことをまとめるためのブログだった気がする。このブログは、賢威というアフィリエイト界隈では有名なWordPressのテーマを使って作成している。賢威を買ってとりあえず立ち上げてみた、そんなところだろう。
しかし、この立ち上げが、技術ブログとして細く長く続いて今日に至るとは、誰も想像だにしなかった。この技術ブログを立ち上げることで、自分のエンジニアとしての意識が改革され、Outputをすることを意識して、継続的にInputをする習慣がついたのだった。
新卒で働きはじめてからブログをはじめるまで、家で技術的なことを学んだり、プログラミングをしなかった。家でそういうことをすることは、社畜だと思っていた。プライベートはなんか気晴らしをしてリフレッシュするのが良いと考えていた。
しかし、ブログをはじめてから、少しずつだけれどもプライベートでも技術的なことを学び始めた。時間ができると、プログラミングの勉強などをするようになった。これは0が1になった、とても大きな心の変化だ。きっかけがWordPressの保守という瑣末なことだったけれども、これがなかったら、自分の今までの変化はなかった。ちょっと大げさだが、このブログのはじまりが、自分のソフトウェア開発者のはじまりだった と言える。
この年に夢中になったこととして、iRemocon Hack というものがある。
今、Google Homeや Amazon Alexaなどのスマートスピーカーが売れているが、その当時、スマートホームというものがまだ流行っていないときに、自分のお家ハックをして楽しんでいた。
もうひとつ、夢中になったことがある。それは、TDDだ。当時、まだC言語しか知らなかったけれども、C言語でテスト駆動開発をする本に巡りあい、熱心に読んだ。
この記事、はてなブックマークではじめてバズッた記事だった。少しびっくりした。これをきっかけに、TDDを実務で試してみたいという気持ちが高まり、Google TestやGoogle MockというOSSを調べ始めた。OSSに触れたのもここが初めて。
2013年4月 〜 2014年3月 MOOCをはじめる
Jenkinsや、Eclipse、Cygwinといった、開発環境周りに興味を持ち始める。Eclipse関連の記事が多め。このころは、まだEmacsはあまり使っていなかった。githubを使い始めたのも、この年が初めて。
これをきっかけに、dotfilesをいじることにだんだん興味が移り始める。zshやら、cygwinやらscreeenなどのターミナル環境がカッコいいと思い始める。
このころ、vmwareに CentOSやUbuntuを入れて、Linuxをいじり始める。普段使いは、Windowsなのだったけれども、ターミナルへの興味を元に、コマンドラインの世界へと入っていく。年が明けると、Linux愛が深まり、ついにはWindowsと Linuxのデュアルブートに踏み切るまで至る。
また、TopCoderを知り、SRMに少しずつ参加を始める。アルゴリズムとデータ構造をC++で学び、C言語しかデキない人から、脱却をスべく、C++を学び始める。
MOOCとの出会いが、自分の勉強を加速させる。TopCoderがきっかけとなり、アルゴリズムを学ぶために、courseraの Algorismsと C++の講義を取る。
- coursera Algorithms PartⅠを受講しました | Futurismo
- coursera Algorithms PartIIを受講しました | Futurismo
- [coursera]C++ For C Programmersを受講しました | Futurismo
これらはとても難しかったのだけれども、このレベルのものを海外の学生は勉強していることを知り、焦りを覚える。そして、コンピュータ・サイエンスをMOOCを通じて学び直そうということを計画しはじめる。この決意がなければ、今日30以上のMOOCを受講することもなかっただろう。そして、この決断がなければ、険しい道を進むこともなく、貧弱プログラマになっていただろう。
この年は、C++, Java, Rubyを学んだ。もう、C言語しかできないひよっ子プログラマではない。
2014年4月 〜 2015年3月 Emacsが好きになる
ターミナル環境がすっかり気に入り、Emacsへの愛が高まる。Emacs好きならば誰もが思うように?、Emacsから出たくなくなり、何でもEmacsでやろうとし始める。Linuxへの愛も感極まり、ついにはLinuxマニアの大本命、Arch Linuxをインストールする(そして、これはアップデートでぶっ壊れてUbuntuに落ち着く)
また、この年もMOOCを貪欲に受講した。MOOCを通じて、新しいプログラミング言語を 2ヶ月に1つは挑戦するという、ちょっとおかしな状況。
- プログラミングの世界観を変える衝撃!Paradigms of Computer Programmingで震えるほどの知的感動を体験した | Futurismo
- 感動駆動学習こそ最強の学習法だ! MOOC をはじめて 1 年たったまとめ. | Futurismo
仕事でJavaをやらせてもらい、デザインパターンを次々にマスターしはじめる。仕事と普段の勉強が相互に刺激しあい、新しいことをよく吸収することができた。
2015年4月 〜 2016年3月挫折、そして燃え尽き症候群
MOOCの勉強に陰りがみえはじめる。いろいろと講座を受けるのだが、難しくて途中でやめてしまうことが多いのだ。そして、趣味プログラミングもなかなかうまくハマることができない。悪い方向へ傾き始めると、どんどんうつが進行していった。自分のプログラマとしてのアイデンティティが揺るぎ始めた。
そして、12月、ついに倒れる。うつ病で休職。
ゲームオーバー、つらい。
唯一、この年でハマったことがあった。PythonによるFXシステムトレード。これによって、5万損したのだけれども、この取り組みは今考えてもとてもおもしろかったと思う。
2016年4月 〜 2017年3月 プログラミングから離れた一年
倒れたあとは、プログラミング恐怖症になってしまい、プログラミングから離れていた。なにをやっていたかというと、TOEICの勉強ばかりしていた。勉強時間を振り返ると、およそ1700時間、凄すぎ、暇すぎ。
2017年4月 〜 2018年3月 AIブームに便乗して復活
復職するためには、プログラミングともう一度向き合う必要があり、少しずつプログラミングの勉強をはじめた。世は、第4時機械学習ブーム到来。私も、世の中の流れに乗って、機械学習を勉強し始めた。有り余る時間を使って、MOOCでディープラーニングを勉強した。それでも時間があまり、強化学習をしたり、データサイエンスしたり、Kaggleや DeepAnalyticsをした。
- coursera の Machine Learning を受講してる | Futurismo
- fast.ai の Practical Deep Learning for Coders, Part1 を受けた | Futurismo
8月、ようやく復職。なんとか、復活しました。復職後は、窓際な仕事でまったり過ごすかと思ったら、うつ病をぶり返しかねない激務な環境に放り込まれる。データサイエンティスト養成講座に通って、ほそぼそとデータサイエンスの勉強は続ける。仕事がはじまったら、忙しさに飲み込まれてほとんど勉強できてない。
おわりに
まとめると、成長のためのイベントは3つあったと思う。
- ブログをはじめたこと
- MOOCをはじめたこと
- 休職したこと
プログをはじめたことで、勉強の習慣ができた。MOOCをはじめてコンピュータ・サイエンスをがむしゃらに勉強することで、遅れてスタートしたキャリアがなんとか人並みに追いつくことができた?そして、休職して復職したことで、方向性を変え、今までなんのために勉強してきたのかを振り返り、目的を持って勉強するようになった。
どうすれば成長できるかは、将来の事なんてわからないし、その時の運もあると思うけれども、恐れずにこれからも頑張っていきたい。努力することだけは忘れずにしたい。