あっという間に 2016 年も終わりを迎えました。学生の頃より社会人になってからの方が時間経つのが早いなーと感じます。多分学生の頃より真面目に勉強してるからでしょう。悲しい

ちょいちょい振り返ってたので軽く全体の振り返りをしようと思います

tl;dr

  • フリーランス1年やってみた
  • Ruby 以外の言語を比較的ちゃんとやった
  • 生産性落ちてきた、向上してない

フリーランス1年やってみた

若干 こっちの記事 とも被るかと思います。

フリーランスになる前に勤めていた会社は仕事の進め方等で折り合いがつかなくなってきたり、不信感が募ったせいで辞めた(そしてそのすぐ後に清算したらしい)んですが、その少し前までは副業をやっていたこともあり、「フリーランスになっても仕事もらえるでしょ」という軽いノリで始めました。

現に Wantedly からはバンバンスカウト来たので、ほんとに運が良かったなぁとしか言いようがないです。

ただ業務内容的には正社員の時と何一つ変わりません。(プログラマなので)

仕様決めるミーティングに出たり、たまに数字見たり、改善点出したり、コード書いたり, 飲み会参加させてもらったり, etc.

週どのくらい働くか、のコントロールができるというのはよかったです(契約内容次第ではありますが)

無名なので無茶苦茶なクライアントにあたることもありましたが、「あ、こいつ(ら)やばいな」と思ったらなる早で契約切るようにしてました。ここら辺は仕方ないなーと思いつつも、ちゃんとした契約書交わすまでは仕事しちゃダメだなという勉強になりました。契約書の内容も細かくチェックする癖がつきました笑

やってみてよかったかと言われると「やらなくて済むならやらなくていい」と僕は思いました。働き方がよくなかった可能性はあります。

ただ「ひとつの会社に骨を埋める」まではいかなくても、「プロジェクト単位」でチーム作って仕事する、的なスタイルの方が生産性高いとは日頃思ってるので、フリーランスもっとしやすい社会になれば(確定申告とかめんどい、税金高い)、自分はすぐにフリーに戻るだろうなと思います。もっとスキル高めないとダメだとは思いましたまる

Ruby 以外の言語を比較的ちゃんとやった

この業界(?)に入ったのが 2013年12月からで最初に Rails から始めて、ずっと Rails を触っていますが、さすがにこのままだとヤバいという気がしていたので今年は比較的他の言語も触れたと思います。

  • Java: Android 開発を少しお手伝いしました
  • Golang: 11月まではちょいちょいレベルでしたが、年末はずっとやってる
  • Elixir: … ???

Java はオブジェクト志向関係の本読む時に出てきたりするのでやっといて良かったかなとは思います。IDEなしじゃ書くのつらいので好きではない。

Elixir 熱は徐々に無くなっていって、今は全然興味無くなってしまいました。多分 Phoenix 触ってて、「うーん、まぁ Rails でいいわ」と度々思ってしまったのと、 Ecto しんどい、と言い続けてしまったのがよくなかった。Elixir じゃなきゃダメな理由をちゃんと見出せなかったのが原因だと思います。

Golang は Elixir とは逆パターンでしばらく熱が低い状態が続いてたんですが、配布の容易さが魅力的だから…と自分に言い聞かせてダラダラとやってました。 A Tour of Go の練習問題が割と難しかったのもすんなり入れなかった原因だと思います(あれが難しいとか頭悪すぎ!と言われたらほんと返す言葉がないです…生きててすいません)

年末、一気に火が着くタイミングがあって、 Ruby でマルチスレッドプラグラミングしようとして色々調べて、結果「これは(xxx gem を使わなければ)クソしんどいな」となり、 gorouting ちゃんと勉強し直して「おぉ…(感嘆の声)」となったのがそれ。多分ですが。

あとは Rails5 の upgrade 作業やっててデフォルト厨が加速してた、というのも大きいと思います。(とにかくできるだけあるものでやるようにする、という思いが強くなってた。結局 zsh -> fish ときて今は bash でいいやとなってる)Go の Simplicity も今の自分の思想にかなりマッチしてて、過度の抽象化は避けて愚直にコードを書く、というのは気が楽でいい。

その後、再度真面目に A Tour of Go やって、結局練習問題はいろんな人の解答例見てたんですが、「最初なんだから写経しまくればいい!」と割り切ってひたすら手を動かしてたら楽しくなってきて今に至る、という感じです。(なんか去年もこんなこと言ってた気がするいい加減学べ)

仕事ではなかなか Go を触る機会がないんですが、来年は Go の年にしたいなーと思います。他に良さそうな言語出てきたりしたらちょいちょい浮気はすると思います。

生産性落ちてきた、向上してない

これは本当に深刻な問題です。

仕様考えてコード書き出すまでの初速がめちゃくちゃ遅くなった。

原因はいくつかあると思うんですが、似たようなパターンのコードばっかり書いてて、あんまりワクワクしないんですよね。書き始める前に大体頭の中で設計ができてて、それをただ書き下すだけ、みたいなことがほんとに多い。倦怠期 on Rails みたいなものだと思ってます。(ドヤァ

昔は刺激に感じたものが刺激じゃなくなってきた、というのもあると思います。慣れって怖い(小並み)

ポモドーロ、自分はダメだったんですがまた再開してみるのも手かもしれません。今だと(プライベートで) Golang を書くという餌があるので、それをぶら下げたら一時的に生産性上げられるかも。

ちょっと生産性からは逸れるかもしれませんが、英文読むのがほんとに遅いので来年はちゃんと数値目標立てて伸ばします。

語彙数と読む速度測るサイトをそれぞれ見つけて出したところ、

  • Vocabulary: 6150 words
  • Reading Speed: 190 words / min

とかで、語彙数のネイティブ下限が 20,000 語、読む速さがネイティブ平均 300 語 / 分らしいので、その数値を目標にしました。

個人的には「日本語の文章読むのと同じスピードで英文読み」たいので、多分数値で言うと結局上記を満たす必要があるんだろうなと思ってます。

機械学習(というか数学)に関しては引き続き勉強を続けます(12月は全然できてない。。。)

まとめ

来年はついに Kurt Cobain が自害したのと同じ年齢になるので、文字どおり死ぬ気でがんばります。色々と。

よいお年を :raising_hand: :confetti_ball: