ytnk531の日記

日々調べたことを書きます。

developer-roadmapを見ながら足りない知識を洗い出す

エンジニアになって2年半、ここのところ勉強したいことが多すぎてどれからやろうか、と考えてしまう時間が増えてきました。WebDveloper Roadmapに載っているものから優先して取り組んで行こうと思ったので記録しておきます。私のスキルの振り返りなので、他の方の参考になることは少ないと思います。

github.com Web Developer Roadmapは、Web開発者になるために必要な知識とアクションを順序付き表現した図です。 tajawal UAEでリードエンジニアを務める@kamranahmedse(https://twitter.com/kamranahmedse)さんによって作られました。

内容についてはこちらが参考になります。 Web Developer Roadmap 2018が2019年版になっていたので比較してみる - Qiita

自分の開発経験をおさらい

大学~大学院: C, JavaアルゴリズムUNIXシステム操作を学んだ。RaspberryPi+Railsで動画転送システムを作った。 社会人一年目: とある大規模システムのテスト設計やリリース戦略の設計をした 社会人二年目: JavaでWebシステムの裏で動くバッチを書いていた。 社会人三年目: RailsでWeb開発

あまりコードをゴリゴリ書くような開発の経験は少ないことに気づきました。Web開発っぽいことをし始めたのも最近です。ただ、使っている知識や技術はあまり変わっていません。

スキルの抜け

Introduction, Frontend Roadmap, Backend Roadmap, Devops Roadmapの4つのロードマップがあります。今回は、IntroductionとBackend Roadmapに記載のあるスキルのうち、自分が持っていないものをそれぞれ見ていきます。内容について概要を説明できて調べながら実践できそうなものを抜けていないことにして、実装経験がなくても良しとします。

Introduction

  • SOLID, KISS, YAGNI 聞いたことあるけど、内容が全く思い出せない。メンテしやすいコードを書くための心構えだったような。自然にやってる気もする。
  • Semantic Versioning 初耳。 記載のあるスキル11中2個抜けていた。

Backend Roadmap

こちらはアクションが主ですね。

  • Standards and Best Practices 今メインで使っているRubyは抜けてる。
  • Make and Distribute Some Package/Library 作ろ!ってなる状況にならなかったな~
  • Learn a NoSQL Database mongoDB使ったことはあるけど、いつ使い分けるの?とかわからん。
  • Caching キャッシュ実装することになったら、どうすればいいかわからん。
  • Creating RESTful APIs RESTはできるけどRESTfulはむずそう。
  • Authentication/Authorization Methodologies Oauthとベーシック認証くらいしかわからない
    • Token Authentication
    • JWT
    • OpenID
  • Message Brokers 何ができるかわからない
    • RabbitMQ
    • Kafka
  • Learn a Search Engine つかってみたい
  • Learn how to use Web Sockets だいたいの仕組みはしってるけど、これを使う実装できないです。
  • Look into Graph Databases なんですかそれは。
  • All things that weren't mentioned above ここが埋まることは一生ないだろう。DDD、SOAPは知ってるので、基礎を固める前にジャンプしちゃってた感。

24個のステップのうち、11個スキップしていた。

抜けまとめ

Introduction 2/11 Backend Roadmap 11/24

これからどうする?

今やりたいことが、非同期処理について学んだりとか、Railsへのコントリビュートとか、とかだったんだけど、その前に勉強しておいたほうがいいことが多そうだ。 Webエンジニアとして働いて行くために、何を学んだらいいかっていう観点が一貫していて、すごくいいロードマップでした。どうしてもプログラミング言語とか、フレームワークに対して興味が行きがちになってしまうけど、Webシステム全体を見た上で知識をつけていくほうが、Webエンジニアとしてはよさそう。