しおメモ

雑多な技術系ブログです。

エンジニア1年目を振り返る

マイルストーン的な感じで、後で見返すように...
職務経歴書よりも、詳しい業務内容はぼかして、感じたことや業務外でおこなったことを追記してます。

やったこと

ですます省略の散文調でいきます。

2018年4-6月

研修でUNIXJavaをやる。

前半はひたすら、.zshrcをいじっていた気がする。
後半はJavaと某フレームワークで、Webサイトを作っていた。

社内のCI/CDの組み方はここで覚えた。
業務外では、Selenium WebDriverで色々遊ぶ方法を身につけた。

2018年7-9月

広く浅くいろいろやった...

  • APIサーバー改修 (PHP)
  • サーバーリプレース (Java)
  • iOS
  • API,Webサーバー実装 (Node.js, Kotlin)
  • ...

新卒の普通の研修もあり、言語だけでも5つ以上あったので、めちゃくちゃ大変だった。

Javaは研修でがっつりやったので、困らなかった。
"Effective Java"は書き始める前に読んだが、悩んだときに使えそうな実装パターンを思い出せたので、進○ゼミ的に役に立った。

Kotlinは、サーバーサイドで利用し始めた。
コードがすっきりして良かったが、このときはJavaと併用していたので、相互変換が若干面倒だった(特にNullableとか)。

Node.jsはJSの知識がほとんどなかったため、覚えるところから始めた。
npm auditに感動した。
Expressnodemonなど非常に強力なライブラリ群があり、スクリプト言語なので開発スピードも出て、割と良かった。

2018年10月から

iOS担当になる。
入ったら割と炎上🔥していた。

燃えていたこともあり、その対策に追われ、ほとんど新規開発はなかった。
そんな中で並行してできる、

  • CI/CDの整備
  • ドキュメントの整理
  • コードレビュー
  • テスト設計
  • リリース作業

など、だいたい直接コーディングしないところをやっていた。今振り返っても、iOSの開発はほとんどやっていなかった...😭

iOSについては技術キープのため、チーム外や業務外で、Swiftをちょこちょこ書いていた。
frameworkの作り方に慣れてきた。 社外の、制約がない環境では、充実したCIを組めるようになった。

おまけで、KotlinやVue.jsやRubyを使って、小さいツールを作っていたが、こっちの方が面白かった
時間を持て余して、気づいたらCSS3にもだいぶ慣れてきた。

感想、教訓

1,2ヶ月ほどの短期間のチームジョインでは、コードとJIRAのチケット渡されて、「これやっといて」みたいな感じが多かった。

いきなりコードとチケット渡されてどうするかだが、ドキュメントが揃っている方が珍しかったので、 とりあえずIDEに突っ込んで、クラス名やメソッド名を推測して検索して、実装を見つけるということをしていた。
iOSだと、Storyboardを見たりするのも使えた。

先輩に聞いても、担当外の部分だと答えられないことも多々あるので、古いコードだったら、出来るだけ自分で調べる必要はあると思う。

不具合で燃えているところに入った場合、キャッチアップも追いつかないし、
周りも忙しく、手をあげてコーディングのタスクを取っても結局後回しになるので、正直結構きついとは思う。

そんな中でも、何かできることはあるはずなので、貪欲に探していった方が良いと思う。 自分の場合は、CI/CDなど直接プロダクトに表れない部分を改善していった。

オススメの本

  • リーダブルコード
    特に、目からウロコの内容はないですが、メジャーで安価で一般的な作法が書いてあるので、
    一通り読んで「リーダブルコードに書いてあった気がします!」的なことを言うと説得力が増します。
    コードコンプリートの方は、長いので多分読んでる人が少ないです。

  • Effective Java
    読んでみて、Java書くなら一度手に取った方がいいと思いました。

  • レガシーコード改善ガイド
    中身の例が若干古いですが、既存のコードに手を加える際のHow Toが詰まっています。
    試行リファクタリングなどの手法は、実際に役に立っています。

レガシーコード改善ガイド (Object Oriented SELECTION)

レガシーコード改善ガイド (Object Oriented SELECTION)

これから

業務外で学んだことを活かす機会はあったのですが、最近は業務から学ぶことが少なかったので、 なんらかの方法で軌道修正をしていこうと思いました。

とくに開発の時間は増やしたいと思います🙄