今後学習すべき技術領域
今まで、Webのエンジニアをしてきました
これからも、きっとWebを中心にITのエンジニアを続けていきますが、これから学ぶべき技術について、自分の思いをまとめて記事にします(マサカリ歓迎……弱めにね)
早く作って早く壊すサーバサイド
これからの時代、早く作って早く壊す、つまり開発のリードタイムを短くしていく事が重要です そのための技術として、サーバーレスを本命に据えたい
クラウドサービスを上手く関連させあって、より早く動くものを作れる力が需要を高めていきます
(APIをスクラッチで書いてる時代じゃない!!)
サーバーレスの導入をすすめるメリットは開発スピードだけではなくて、インフラを自分で管理する必要が無くなるので、メンテナンスコストやサービス停止のリスク低下が期待されます
一番の懸念はベンダーロックインであったり、各サービスの信頼性ですが、自分で設計して作るより圧倒的に早く信頼性が高いものになると思っているので、まず作って、困った部分を独自で実装したりといった方針が良いのではないでしょうか
動くものを最速で仕上げ、そこから改善していくのが重要です
クライアントサイドの技術
APIを構築するのが簡単になってくると相性が良いのはフロントエンドの技術です
VueやReactを使って、ファイルストレージにリソースを置くだけで、Webサービスが動かせてしまうわけです(サーバーレスシングルページアプリケーションってやつです)
クライアントサイドといえばスマホも外せない
SwiftやKotlinを使った開発を覚えるのか、各OSの機能を隅々まで使わないのであれば、ある程度共通で開発できるXamarinやReact-native等を学習するのも良いかもしれません(個人的にはflutterが気になる)
また、最近はPWAも注目を集めていますね
サーバサイドな人間の私からすると、ネイティブアプリ等を学ぶより学習コストが少ないように見えて、「フロントちゃんと学ぶの流石にしんどいから、簡単なPWAでも作れるようになったら良いんじゃないかな」って感じで一人で何か作る時に良い感じに脱力できるものとして期待しています(こんな捉え方だと怒られるかも)
複雑なものをしっかりと作る
今までさんざん簡単にものを作る時代!!といっていましたが、ビジネス要件の複雑さは変わらないので、複雑なものをしっかりとロジックに落として作る力も重要です(DDDとか勉強しましょう)
個人的には二極化が進むと思っていて、複雑なロジックだけが乗ってるアプリケーションをコンテナ等で動かし、他の部分を外部サービスに切り出していくような構成がメインストリームになっていく事が想定されます
で、せっかくコンテナという言葉が出てきたのでちょっと言及すると、コンテナ超大事です
言わずもがなもう既に大コンテナ時代は到来していて、ビジネス要件が乗った小さいアプリケーションをコンテナに乗せて、関連し合うように作るには、k8s等の技術領域は必須です
気になるブロックチェーン
最近ちょこっと学習しているのですが、既存の概念とは全く違う技術だなという印象、まさに破壊的イノベーション!!
現状だと課題も沢山ある(スケーラビリティ、即時性、匿名性等)技術ではあるものの、今後もっともっと用途は広がり、当たり前の技術になっていくでしょう
その時に勉強を始めても、ちょっとついていけない自信があるので、この領域は使わないとしても積極的にキャッチアップしたいです
AI、IoT、VR/AR
流行ってるし、ハイカラだよね(鼻くそほじー)
このあたりは、間違いなく今後伸びてくるんですけど、ちょっと専門外と言うか、多く言及できる領域じゃないです
IoTはビッグワード過ぎて具体性がない言葉ですよね。やるならもうちょっと細かく落とし込んで考えたい
(ハードの世界が入ってきたり、大量データ処理が入ってきたり、IoTって言葉だけだと広すぎる)
AIは、機械学習がものすごい進歩してるんですが、言葉が独り歩きしている部分も多くて、世の中がAIって言っている8割くらいはAIじゃなくても良かったり、ただのロジックをそう言ってるだけだと思ってます。んで、残りの2割は本当に凄いイメージ
自分が機械学習を学ばないとしても、機械学習で何が出来て、何が出来ないのかは把握しておきたいですね
ビジネススキル・マネジメントスキル
問題の設定方法や、問題解決の手法、コミュニケーション、チームビルディング等の非テクニカルなスキルですね
開発する際に、明後日の方向を目指さないためにも、チームがバラバラな方向を向かないためにも、しっかりとした目標設定と、それをチームとしてまとまって進んでいく推進力が必要です
チームリーダーが持っていれば良いって噂もありますが、今求められるのは自走できる人材。自走できる人材は、こういうスキルをしっかりと持っているに違いないです
自分が取っていく行動
今後自分の武器としたい
- サーバーレス
得意領域にしていく
- ビジネススキル・マネジメントスキル
- コンテナ
書ける、扱えるくらいにはする
- フロントエンド(Vueかな)
- PWA
継続的に学習する
現在は、JavaやPHPを使ったWebの開発や、RDBなんかが得意ですが、今後はスクラッチを極力減らしてPaasの比率をあげたり、サーバーレスを使えるようにしていきます
ちなみにブロックチェーンは半分趣味です
英語の勉強もしないと。。。