スタンドアロン・エンジニアリング ➖ スキルレイヤーの垂直統合

スキルレイヤーの垂直統合

「スタンドアロン・エンジニアリング」とは私の提唱する「スタンドアロニズム」の中核をなす、技術的意味で自立性を目指すアイデアである。一般に認知された言葉であればこれをフルスタックという。つまり、プロダクトの構築に必要なすべてのスキルセットを持つことである。

重要なのは、どの範囲までのスキルを網羅するかはプロダクトによって違うということだ。しかしより一般化すると、基本的にはインターネットをベースにエンドユーザーにリーチするプロダクトを構築できる全レイヤーのスキルセットである。一言で言えばWebの場合バックエンドとフロントエンド両方ができることが必須になる。例えば機械学習など、他に必要な要素もあるかもしれない。ここでスキルをレイヤー・カテゴリごとに分けて棚卸ししておくアイデアについて書きたい。

ITスキルレイヤーのカテゴライズ

採用のエントリーのときにスキルをプログラミング言語で書くような欄をみかけたりするが、ナンセンスだと思っている。プログラミング言語自体に特別精通する必要は経験的にはあまりないし、IDEの力を頼れば十分である。むしろ、そこに依存するライブラリやフレームワークこそ重要。キャリア戦略的にはプログラミング言語を個別に深めるよりはスキルレイヤーを垂直統合していくほうがはるかに重要だと思っている。

そこで私の場合、ざっくり以下のようなレイヤリング・カテゴライジングをしてスキルを棚卸ししている。もし企業のエンジニア採用にエントリーするなら、このレイヤリング・カテゴライジングを意識して、相手の欲するスキルをピックアプして語る必要がある。

  • インフラ系
  • データベース/ストレージ
  • ミドルウェア
  • バックエンド
  • フロントエンド
  • デザイン
  • ボット系
  • データ分析/機会学習
  • 自然言語処理

スタンドアロニズムにおいて役に立った技術スキル

ここからは各レイヤリング・カテゴライジングの内容一例。私のスキル棚卸しを兼ねて。

インフラ系

  • Docker
  • Vagrant
  • Chef
  • Ansible
  • Serverless

環境構築系。開発用もデプロイ用にも使う。特にDockerは最重要ツール。

データベース/ストレージ

  • AWS DynamoDB
  • AWS S3
  • MongoDB
  • MariaDB
  • Kafka

最近はAWSのマネージド・サービスを使うことが増えた。

ミドルウェア

  • AWS IoT
  • AWS Lambda
  • AWS Cloud Front
  • Nginx

AWS Lambdaは安価で利用できるので多用。AWS IoTは主にWebで双方向通信がしたいとき使う。CloudFrontは最短経路で応答するキャッシュと無料でSSLが使用できるのが素晴らしい。

言語

  • Python
  • Node.js
  • Java
  • Go
  • Swift
  • C++(Windows MFC)

Pythonが割と万能だが、AWS LambdaにWebサービスをデプロイする場合Node.jsを使用するのが好み。高速化が必要な場合はGo。JavaとSwiftは専らモバイル用途であり、IDE頼りで十分。

バックエンド

  • Flask
  • Django
  • Express
  • AWS API Gateway

基本的にWebAPIサービスの構築用。AWS API Gateway+Lambda構成を採用することが最近は多い。

フロントエンド

  • React
  • Redux
  • Android(Java)
  • iOS(Swift)

WebはReact/Reduxで定石。そうなるとモバイルはReact-Nativeでクロスプラットフォーム開発が理想だが、自分的には2017頃は十分な安定感が出なかったので不採用だった。

ボット系

  • Scrapy
  • Selenium(Python)

PBCで重要な要素なので、ここだけでカテゴリ化。

デザイン

  • Adobe Illustrator
  • D3.js

Illustratorはアイコンやロゴ作成に最低限で使用する。D3.jsはデータをいい感じに可視化用。そうreal-sitemapみたいにね。

データ分析/機会学習

  • Pandas
  • Spark(Python)
  • Tensorflow/Keras
  • Scikit-Learn
  • Open AI Gym
  • Keras-rl
  • AWS SageMaker

機械学習の標準一通り。強化学習も実装経験済。

自然言語処理

  • Mecab
  • NLTK
  • Gensim

世界展開のため、多言語対応。環境構築をDockerfileでまとめといたほうが良い。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です