2018年の自分を振り返る

年末なので自己紹介の更新と自分の棚卸し的な意味で2018年を自分の振り返ってみます。

概要

  • 二人目の子供との生活
  • iOSDCでLTしてきた
  • 転職した
  • 今年身につけたこと
  • 今年読んだ本
  • 来年やりたいこと

二人目の子供との生活

2017年の年末に娘が生まれたため子供が二人いる状態で2018年がスタートしました。

f:id:rikusouda:20181230151321p:plain:w200

とても幸せな気持ちでスタートしたのですが、幸せなだけではすまないのが育児ですね。

この項目は愚痴に見えるかもしれませんがそういう意味合いではなく、子育てエンジニアの一つの事例として共有できればいいかな、くらいの軽いニュアンスと思ってくれると助かります。

  • いままでは上の子の保育園の送り迎えともに妻にすべてやってもらっていたけど、下の子が別の保育園になったので僕が上の子の送り担当になった
  • 妻の負担が圧倒的に増えた。僕が普通にフルタイム働いているのと通勤時間が長めなので僕が家にいない時間帯の負担がやばい
  • 家族が体調不良になる率が格段に増えた。家族同士でうつし合うと完治までの期間も長めに
  • 妻が過労気味(と夜泣きによる寝不足)で体調不良になることも

これにより、休日の勉強とか勉強会参加が結構つらい状態に。iOSDC Japan 2018では登壇しましたが、途中で娘の体調不良や妻の体調不良になってしまい、最終日はなんとか午前だけ参加して、午後は断念しました。また、去年は休日にたまに勉強の時間をとらせてもらってそこで未経験技術とか素振りしていたのですが、そういう時間は今年はほとんどとれていないです。

今の状態でかなり妻に負担が偏っているように思っているので、世の中の人が育児と自己研鑽の時間をどうやって折り合いつけているのかは気になるところです。

大変ではありつつもめちゃくちゃかわいいので無事に生まれてきてくれてよかった。

iOSDCでLTしてきた

iOSDC Japan 2018というカンファレンスで登壇しました

f:id:rikusouda:20181230151955p:plain:w200

僕はiOS関連の勉強会とかちょくちょく参加しているのですが、かなり多くの人が普段からいろいろ試したことを発表したり、発表するために体系立てた知識として勉強している様子を見てきました。あと、会社を超えてエンジニア同士で知識共有して持ちつ持たれつみたいな空気感も「いいな」と思ってきました。そういう世界に飛び込みたいという思いもあり、iOSDCのCfPに応募して採択いただきましたので発表してきました。

こういう活動は今後も続けていきたいし、とても大きな一歩でした。

転職した

人生で初めてのC向けアプリ開発をすることになりました。B向けアプリとは売り上げの上がりかたとかユーザーがアプリを使う動機付けが全く異なるので、別世界のように覚えることだらけだけど、いろいろ覚えられるのがめちゃくちゃ楽しい。新画面をいくつか作ったり、CI環境の整備的なこととかUnitTest増強的なことをしたりみたいな、iOSに関して全般的にガッツリやらせてもらっています。活躍のチャンスは多そうに感じています。

過去の転職含めて「よい転職」しかしていない気がするのでとても恵まれている気がしています。

f:id:rikusouda:20181230151703p:plain:w200

今までの経歴的なものを振り返ると、

  1. 客先常駐でWindowsでのB向けフレームワーク(iOSでいうUIKitとかCore Animationみたいなの)を開発
    • プログラミングの基礎を固めた
    • UIKit的なものやCore Animation的なものの下回りを理解した
  2. 自社商品のB向けWindowsアプリ開発
  3. 自社サービスのB向けiOSアプリ開発
  4. 自社サービスのC向けiOSアプリ開発
    • C向けアプリの意思決定プロセスを覚えている最中

といった感じで着実に成長できている実感はありますし、それぞれの会社でとてもよい仲間に出会えています。ある程度レガシーと思われる「C++ / MFC、Win32」という技術が主軸だったところから「C# / WPF」、「Swift / iOS」と身につけて成果を出せており、新しく身につけた技術で転職できたことは「まだまだ自分も新技術に食らいつける力は備えているな」という自信にもなりました。

今年身につけたこと

f:id:rikusouda:20181231154044p:plain:w200

  • RxSwiftを使ったiOSアプリ開発
  • UnitTestしやすい設計にしてUnitTestを書くということ(UnitTestがないつらみを実感した)
    • VIPERを取り入れてみたことでPresenter(ViewModel)とそれ以外を切り離す実践ができた
    • iOS界隈がUnitTest関連でもり上がっていた気がするので影響された
    • 業務で「複雑な動作の画面」で苦戦して「UnitTestがあればもっと楽なのかな」と思い始めた
  • 薄く理解したやつ
    • C向けアプリならではのやつ(ABテストとKPI計測するためのあれこれ)
    • Kotlin赤べこ本読んだだけ位の知識。いきなり書こうとしてもたぶん書けない
    • Androidのレイアウトxmlだけ触ったくらいの知識。Androidアプリ開発はまだできない
    • Go言語の入門書読んだだけ位の知識。APIとかはまだ書けない

今年読んだ本

f:id:rikusouda:20181231153803p:plain:w200

  • Effective Objective-C 2.0
    • クラスインスタンス.演算子 でプロパティ呼び出しできる仕組みとか、なぜポインタ型で持っているのかの答えを求めて
    • 読んだら上記の疑問は解消してかなりすっきりした。
      • C++.演算子ともC言語.演算子とも全く別物だった
      • ObjcのクラスインスタンスC言語の構造体だった
      • ARCとかも含めてC言語をベースにしているのに実現しているところに黒魔術感
  • Effective Modern C++
    • C++11以降についてはちゃんと勉強せず雰囲気で書いていたので購入した・・が読破できていない。
    • スマートポインタとか型推論とかめっちゃ丁寧に解説されていた。C++98理解できているならばここから入門するのも良さそう
    • せめて左辺値参照を理解するまでは頑張りたいお気持ち
  • Kotlinスタートブック
    • iOS以外にも領域を広げてみたくて読んだ・・が、読んだだけでまだ書けてはいない
    • ifが戻り値を返せるとか、単文のメソッドを=で定義できるとかかっこいい感じがした
  • スターティングGo言語
    • 現職のサーバーサイドがGoなのでひとまず読んだ・・が、読んだだけでまだ書けてはいない
    • 継承のつらみを頑張って排除した感が伝わってきた。Goの構造体便利そう
  • iOS 12 Programming
    • 買ったけどまだほとんど読めていない
  • iOSアプリ設計パターン入門
    • 買ったけどまだ最初のほうしか読めていない
    • takasek先生の説明に良さを感じまくっている。わかっているつもりでいていたけど知らなかった情報だらけ
    • 最初のほう見る限りだとiOS意外にも役立つ知識、かつめちゃくちゃ有用そうなのでiOSの人しか読まないのならばもったいない感

来年やりたいこと

日々の学びをブログにのこす

何かしらの発見や、ハードルを乗り越えたこと、問題を解決したことはあるのですがそれをブログに残す習慣ができていなくて、Twitterでツイートして終わり、みたいなことばかりでした。あとから「自分のツイートをさかのぼって調べる」みたいなこともしてしまっています。以前書いたBitriseの記事とかRxSwiftの記事は自分でも読み直すことが多いのでブログを書くことによるメリットはわかっているつもりです。時間をどう作るかはまだ案がないのですが気持ちとしてはブログに残すという心構えでいたい。

iOSDCでのレギュラートーク

今年はiOSDCのLTができたので来年はレギュラートークにも挑戦してみたい。そのために体系立てた知識として自分に定着させたい。コミュニティの一員としてコミュニティに還元したい。

iOS以外の開発

サービス開発をしている中でiOSの分野でしかサービス開発に貢献できないことがもどかしく感じることが多いので、iOS以外の分野でも貢献できるようになりたい。サービス全体を見られることを目指していきたい。

たとえば今年はKotlinの赤べこ本を読みつつmixiのAndroidアプリ開発のトレーニングを少し進めたが、iOSDCとか転職とかいろいろあって、レイアウトのXML触るところまでしかできていなかった。Go言語の入門書は読んだけど、まだGo言語を1行も書けていない。

今の会社ではiOS以外にも挑戦しやすそうなので来年こそはiOS以外で業務でコミットしたい。

まとめ

来年もやっていき