Web エンジニア歴 6 年

年末ですし棚卸しを・・
へっぽこですがご覧ください

## 未経験

- Web と全然関係無い仕事をしていましたが 30 歳を前に Web の仕事やりたいな〜！と思い立つ
- 仕事をしながら民間のスクールで PHP, Photoshop, illustrator などをお勉強
- 仕事をやめた後はハローワークの学校で Web プログラミング (JSP) をお勉強

## 1 年目

- 応募 2 社目で運良く拾ってもらう
- 軽い気持ちで叩いた`# yum remove openssl`で研修サーバーが全てが消え去った
  - LINUX 恐ろしい体験((((;ﾟДﾟ))))バルス!! 
- サーバー移行作業
  - CentOS, Apache, sendmail など
  - エクセルの手順書通り淡々とやり、そして各工程の意味をろくに理解せずコマンドを・・
- スマホサイト制作
  - 本を買い漁って良いデザインをパクりまくって合成
  - jQuery を初めて使ってみて感動。モーダルウィンドウやスライドメニューなどをがんばって設置
  - Photoshop とか使わせてもらえないからアイコン等は GIMP でがんばったなぁ・・

先輩方に多大なるフォローも頂き、スマホサイトは無事リリースできて自信がつきました。最初の大きい仕事って大事ですね

### お世話になった本

- [Webプロフェッショナルのための黄金則 XHTML+CSS虎の巻 (Web Designing BOOKS)](https://www.amazon.co.jp/Web%E3%83%97%E3%83%AD%E3%83%95%E3%82%A7%E3%83%83%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E9%BB%84%E9%87%91%E5%89%87-XHTML-CSS%E8%99%8E%E3%81%AE%E5%B7%BB-Designing-BOOKS/dp/483992435X)

## 2 年目

- タグを 1 つ埋めるにも膨大なテスト
  - レグレッションテスト (をしまくる必要のあるシステム)
  - テストケースの書き方を磨く (第三者が見てもわかるように・・って要は日本語力？)
- リリースシナリオをちゃんと書く
  - どんなに小さなリリースでもちゃんとシナリオ書いていました。エクセルだがな！
- プログラミングっぽいこともするが、ほとんど既存のソースを踏襲するのみ
  - 間違いなくコピーできるか否か、それが問題だ
- フロント周りの腕を見込まれてか残業耐性を見抜かれたか？ view の書き換え (PHP) をひたすらやる時期も
  - 自主的に朝 7 時に行って夜 10 時くらいに帰り、残業代も全く無かったことに不満も無かった。やれやれ、なんてざまだい

テストやリリース準備をしっかりやる習慣と、不幸な働き方が身につきました

## 3 年目

- アプリ API 開発
  - スーパーエンジニアと出会い、ペアプロをしてもらう。的確な指摘に心が折れそうになりながらオブジェクト指向、テストコード、命名等、プログラミングに大切なことを学ぶ
  - 初めて自分でコードを書いた気がする (今まで何をやってきたんだ？？)
- アプリ ディレクション・テスト
  - アプリ本体はベンダーに依頼して私は社内の窓口を。やり取りが勉強になりました
- プロジェクトチームでのサイト制作
  - 上司にお願いして各部署からメンバーを出してもらって無事にリリース。デザイナーの方と机を並べて協同作業。在籍中、一番楽しかった仕事。縦割りの仕事ってつまらないですよね〜

私のプログラミング人生はここから大きく前進。出会いって大切ですね！

### お世話になった本
- [リーダブルコード
――より良いコードを書くためのシンプルで実践的なテクニック](https://www.oreilly.co.jp/books/9784873115658/)
- [Webを支える技術 ── HTTP，URI，HTML，そしてREST](http://gihyo.jp/magazine/wdpress/plus/978-4-7741-4204-3)

## 4 年目

- アプリ (2 本目) API 開発
  - AWS をがっつり触る。API Gateway や Lambda で初サーバーレス
  - Node.js 初挑戦。非同期って何？から始まり mocha, chai, sinon でテストコード作成まで
  - DB 設計。正規化をちゃんと勉強
  - ORM を利用しつつ複雑なクエリを動的に作成
- アプリ (2 本目) ディレクション・テスト
  - 他部署を巻き込んで 1 本目の時より良いアプリが作れ、ダウンロード数も半年で 3 万 ほど
  - リリースから 1 - 2 ヶ月くらいテストばかりしていた気がします
- サーバー保守、エラーログチェック業務
  - awk, sed に目覚め始める
- 開発環境の整備
  - MSYS2, git, GitLab, vagrant を使い始める
- 育休 1 ヶ月取得

社内ではアプリの人でした。技術的に初挑戦が多かった年！

### お世話になった本
- [達人に学ぶDB設計 徹底指南書](https://www.shoeisha.co.jp/book/detail/9784798124704)
- [達人に学ぶSQL徹底指南書 第2版](https://www.shoeisha.co.jp/book/detail/9784798157832)

## 5 年目

- サイトのコアな機能の開発
  - 決済のつなぎ込みの開発や割引システムなど
  - 英語の仕様書やメールのやり取りや仕様書
  - ほぼ丸投げで案件もらえたので、それはそれでやりやすい。要件を整理したり、代案を出す力を磨けました
- slack の社内布教活動
  - サイトの URL 一覧作成やエラーログ流してくれる bot 作ったり
- Mac デビュー
  - 開発にマウスなんて要らなかったのだよ！
- この頃から Vim おじさんに
- 育休 1 ヶ月取得 (2 人目)

英語楽しかった年

### お世話になっている podcast

- [Rebuild](https://rebuild.fm)
- [Hapa英会話](https://hapaeikaiwa.com/category/english-column/)

## 6 年目

- サイト保守開発
  - レガシーコードとの戦いの日々
  - カイゼンの試みは、今はその時期じゃない、と上司により却下される日々(´Д｀)
- ブリッジエンジニア的な立場が増えた
  - Google Analytics? GTM? LINE API? 任せてください
- 片手間に自動化ツール作成
  - E2E テスト
  - ステージング自動作成
  - デプロイ支援

ちょっとマンネリ化してきたなあ・・

## 総括

3 年目くらいまではシステムの慣習、テストのやり方、リリースシナリオ等、開発の習慣を見に付けた時期だったと思う。
守破離で言うと守。

それ以降は自分で考えて、勉強して、新しい技術に挑戦し、必要であれば今までのやり方を変えようとした時期。
守破離で言うと破。

## そして転職へ・・

- スクラム
- Java
- Golang
- マイクロサービス
- Vue.js
- k8s
- Azure DevOps

新しい環境で新しい技術に挑戦
おじさんな上に弱小ですがこれからも楽しくがんばります