webディレクターからiOSエンジニアになった1年を振り返ってみて

僕は去年の10月。 エンジニアからwebディレクターではなく、webディレクターからエンジニアにジョブチェンジしました。 どうしても作り手として、手を動かしたかったためです。 珍しいケースだと思うので、エンジニアとしてこの1年何に取り組んだのか、どう視点が変わったのか備忘録がてら振り返ってみたいと思います。

【2015年~10月】paizaのD~B問題を全問解く

2015年8月~10月のエンジニアになりたてのタイミングは、上司の勧めでpaizaのコーディングスキルチェックの問題をひたすら解いては、上司にレビューしていただいていました。

標準入力で渡される文字列Aと文字列Bが一致した場合のみYesと出力しなさい が最初の問題で(それでも必死)、休みの時間を使いながら2ヶ月かけてD~B問題を解きました。

何より感謝だったのが、上司も毎回同じ問題をわざわざ僕のために解いてレビューしてくれたこと。問題集では学べない良いコードの書き方を問題を通して教えていただきました。

実際、開発していてもロジックや複雑な計算を1から書くことって案外なかったりするので、転職活動以外に個人的なスキルアップとしてpaizaの問題を解くのは結構オススメです。(模範解答をもらえるわけではないので、同僚と一緒に解くのが良いかも)

f:id:hiroshings:20161228125439p:plain

【2015年11, 12月】社内ニートに..

はじめて任された案件で書いたファイルアップロードのJSをほとんど書き直されるなど、いろいろ苦い経験をしているうちに、特に強みもない僕はだんだんたまにhtmlの案件を振られる程度で、12月には社内ニート状態に陥っていました。

ディレクターとして3年働いた後の社内転向だったので、無駄にキャリアがありスキルはない僕の扱いが難しかったのだと思います。ディレクター時代は色々なひとに声をかけられ、必要とされている状況から一転、ニート的な状況で話しかけられることもなく、こそこそプライベートのプログラムを組んでいるような状況だったので、結構辛かったです。

そんな中、チャンスが巡ってきたのが、社内で当時誰もやっていなかったSwiftの新規アプリ開発案件でした。もともとウチはwebエンジニアが多く他メンバーは案件でパンパンだったので、何もできない僕が試しにやってみるか?的な感じでアサインされました。

ちょうどそのとき、The BRIDGEの堤さんの特集堤さんのブログを読んでて、境遇も年齢も近い僕はiOSアプリ..やるしかないと思いました。

一番最初に課題として与えられたのは、Objective-Cで途中まで書いていた上司のモックアップをSwift化することです。しかし、LL言語以外の開発をしたこともなく、そもそも両方のプログラム言語も知らない自分がObjC→Swiftの変換をできるわけもなく、スペイン語からポルトガル語に翻訳を繰り返す感じで土台うまく行きませんでした。

【2016年1, 2月】アプリ開発楽しい

ViewControllerのライフサイクルを僕が知らず上司が絶句する事案が発生。「自分にはエンジニアは無理なのか..」と思う時もありました。でも、ここで終わりたくはないし、何よりプログラムを書くことが楽しい自分がいたので、正月を使いパズルアプリを一本作りました。

Simple Slide Puzzle

Simple Slide Puzzle

  • hiroshi sakamoto
  • ゲーム
  • 無料

この頃から自分で1からアプリを作ることが楽しくて何よりSwiftが書いてて楽しくて、だんだんアプリエンジニアとして生きたいという目標が定まってきました。 ちょうど社内のTestFlight検証に何かアプリを使えないかなという上司のPMの相談も受けていて、このアプリをテストに使ってください。と提示したところ社内でアプリ開発好きなやつと認知されはじめました。

【3月】自社サイトリニューアル

これはエンジニアリングとは直接関係がないのですが、当時自社サイトが未だにスマホ対応しておらず(爆)リニューアルのプロジェクトが上がっては消えていってたので、我慢できず手を挙げてリニューアルのディレクションを担当することにしました。

自分たちのことが1番難しい
自社サイトリニューアルは、クライアント案件より数倍難しかったです。思い入れは個々に強いけど、うまく自分のことは言語化できないものです。
外部のコピーライターにコピーを決めていただき、そこから作るべきビジュアルが明確になってきました。僕はfuelPHPでバックエンド実装しながらディレクションし、4月にリリース。そこそこサイトに取り上げられ、アクセス数が通年で2倍になりました。そんなことやらずコード書けよ..と自分でも思ったけど、やってよかった。

【6月】ガチiOSエンジニアデビュー

Makeshopの改修(辛かった)やhtmlの案件を細々とやりながら、休日はiOSアプリを作る日々で、6月、待ち兼ねてたアプリ案件にjoin。設定画面と課金の実装を担当し、途中で他の人の担当で溢れていたログイン機能も実装。 仕様の調整をクライアント&バックエンドの会社と何度も繰り返しました。

ここら辺から自分の強みは、ディレクター時代の経験を活かした調整力とUXを考えながら仕様を決められることだと自分の中でも認識しつつ、OAuth認証IPA(自動継続型課金)について調べまくりました。

7月は、ひたすら実装。

【8月】iOS DCに行く

初めての大規模なカンファレンス。iOS DCに行きました。

感想ブログ↓ http://hirothings.hatenablog.jp/entry/2016/08/25/042430)

最高すぎました。懇親会では、なんと憧れの堤さんとお話ができ感動。

それまで自分は胸を張ってエンジニアと人前で言えなかったし、名刺交換のときも自信を持てなかったのですが、ここら辺でやっと胸を張ってエンジニアとして自分のことを言えるようになってきました。

【9月〜現在】

Realmの実装をしたり、UTをしつつ、アプリ案件は終了。webの案件に戻ってJSを書いたりたまにhtmlを書いたりしてます。でも上司は僕がアプリ案件をやりたいことを知っているので、ちょくちょくアプリ案件で声をかけられるのが嬉しいです。

エンジニアになって思うこと

ディレクター時代よりslackやメールを追わなくなりましたw
エンジニアというある意味裏方の仕事になることで、ディレクターのように案件が回せなくなるジレンマがあるかな?と思いましたが、そうでもないです。エンジニアでもきちんとコミュニケーションをとって交渉することはできます。

エンジニア最高

技術職なので、スキルを上げれば上げた分だけ自分のやりたい仕事が掴めるし、年収も増えるし、会いたいひとにも会える
スキルに合わせて世界が広がることがたまらなく楽しいです。エンジニアに限る話ではないと思いますが、技術職だと顕著です。

f:id:hiroshings:20160825031846j:plain

今はQiitaのリーダーアプリを作ったりRxSwiftを勉強しています。2016年は社内プロジェクトでのアウトプットに留まって外での活動ができていないので、2017年はもっと外に向かって発信できるエンジニアになりたいと思います。