サイト内検索

エンジニアの等級について

お疲れ様です、野村です。
最近自身の価値がどんなものなのか、考える機会が増えました。
そんな折、エンジニアの実力や肩書をどうするか、という話があったのでざっくり調べた感じと意見を述べてみたいと思います。

本日の議題

まずは定義

カテゴリ等級
シニア()アソシエイト
(チーフエンジニア)   
(プリンシバルエンジニア)   
(エンジニア)   
をクロスさせるイメージだそうです。
チーフエンジニアとプリンシバルエンジニアではひとつぐらい格が違っていて、
同じようにシニアエンジニアとエンジニアのように左右でも格が違う
カテゴリ等級
(将軍位)   
(佐官)   
(尉官)   
みたいな話ですね。
クロスした場所で中将とか大佐とか少尉とか呼んだりします。

念のため

カテゴリ等級
123
1123
10102030
100100200300
分かりやすいようにクロスした場所で掛け算やってますが、数値の幅はともかく順列的にこういう図になります。
数値が低いほうがエラいイメージです。

展開

プリンシバル級のエンジニアはマネージャーコースかエンジニアコースかを選ぶそうです。
いわゆるPMコースかハッカーコースみたいな、そういうイメージでしょうか。

ぶっちゃけ論

日本のプログラマー全体で見ると、そもそもプログラマーのレベルが低いので国内に置いてスーパープログラマーを目指すメリットは薄く感じます。
一部は国内の感覚で見るとバケモノじみてます。これはマジです。

とはいえ、日本企業は全体として過去の栄光や幻影(既存の業務システムやサービス等)に囚われているので、マネジメントすごい!といっても世界では通用しません。
本気でプログラマーをやるならとっとと日本から飛び出しましょう。オススメはみんな大好きシリコンバレー!
同じように、本気でマネジメントをするなら外資に行きましょう。

しかし、効率という点では間違いなく高い効果が見込めると思います。
まずはそこでやっていくための下地を作らなければなりません。

ちょうど関東には色々な勉強会をやってますし、他にも関西は大阪、ちょっと京都で、福岡(小倉方面?)はわりかし多いイメージですね*1

*1 : とは言え、東京の数と比べると絶対数が少ないです

今日本でスゴイ!と言われるエンジニアとは

これは私の偏見に満ち溢れた考察です。
大事なのは技術を使うこと、プログラム言語が分かることではなく、それらを使って生産性を上げる事が出来るか、に尽きます。
もっと言うと、自分で生産性を上げられる仕組みを考案し、実装し、運用するというスキルが求められます。
ざっくり言っちゃうと、現場作業員が社長でプログラム組んでる、というイメージでしょうか。
私も尊敬している故岩田聡 元任天堂社長のエピソードに倣うと良いと思います。
現在はスキルの差はあれど、プレイングマネージャー的な経営者は多くいますね。フリーランスエンジニアと言えばわかりやすいでしょうか。

具体的な話

これは私が理解できる範囲なので、正直レベルが低いと思います。
とはいえ、分からないものは語れないので、私が今わかる範囲で、主観的に星みっつぐらいで価値をざっくり設定します。
数が多いほど重要です。ついでに難度もざっくり書いてます。

因みにこれは業界も職種も不問です。ITやってるなら、という観点で書いてます。
ただし、デザイナーやマーケターは上記の○○エンジニアと言っていいのか微妙ですが、自分で当てはまるなぁ、と思ったら該当させておきましょう。

【難】★★★多岐多様のツールを使いこなせること

今私が思いつく限りで有名どころを上げるとAWS,IBM BlueMix,Slack,Jenkins,Docker(Kubernetes,FileMaker,Redmine,Backlog。
細かいところを言い出せば星の数もあるでしょうが、私が思いつくのはUnity,UnrealEngine4,BPM,AutoIT,Selenium,Jmeter,adiaryといったところでしょうか。
この辺は得意分野とか出てくると思います。

とりあえず有名どころは全部使えて当たり前みたいなところがありますね。
なお、これは使わないとどうしようもないやつです。イコール経験だと思ってもらってもいい。

プログラマーのスキルっぽいですが、マネージャークラスもこの辺ぐらい知っといてください。
たとえばJavaが慣れてるからJavaでシステム開発する、とかいうのは問題の先送りです。
ちゃんと技術的な要件は詰めておきましょう。
こうやって学ぼう!
正直、正解は案件によって変わります。これが100%正解というのがないからです。
ただし、正解に近づきやすい方法はあります。今人気の技術や基礎となる言語、考え方を習得することです。
案件Aでは全く役に立ちませんが、案件Bでは高い需要があったり、という事もあるので、自分にあったものを探しましょう。
技術も案件も、一つだけではありません。

【普】★★☆RestAPIを作れること・使えること

限りなく易に近い普。
システム間連携をWebでやろう!となったら多くの割合でお世話になる存在がRestAPI。いわゆるGoogleですとかFacebookですとかLinebotですとかもこれ。Twitterもですね。
いろんな所で公開されているデベロッパー情報の代表になるのがこのRestAPIで、ここから何が取得できるのかは各社でリファレンスを出されています。
これらをいい感じに使うテクニックを求められます。
こうやって学ぼう!
よく分からなかったらTwitterのbot作れるレベルぐらいに考えておいてください。
それだけでだいぶ仕組みが分かるんじゃないでしょうか。

【易】★☆☆自前でサーバー立てたり通信組んだり環境作ったり

これはずっと前から言われてますが、フロント・バック関係なく組めないと苦しいです。これが出来ないと上の項目はクリアできません。
自宅でサーバーを立ててみてはいかがでしょう?
こうやって学ぼう!
情報が多すぎるので、1から10まで全部順序立てて教えてくれるサイトに学ぶのが良いでしょう。順序立てた情報は本の方が良いことも多いです。
部分的な問題はピンポイントに検索して解決します。本の通りにやって上手くいかないから出来ない、ではエンジニアになれません。

【易】★★☆英語が読めること

英語のリファレンスが基本だと思ってください。
英会話に行く必要はありませんが、英語のドキュメントぐらいは読めないとつらい。
teratailで満足するのではなくて、stackoverflowに挑戦出来るレベル感がベスト。
こうやって学ぼう!
日本産のシステムよりは海外産のシステムに学ぶのが良いでしょう。
リファレンスも英語しかない。でもトラブルシューティングは日本語、みたいなのが良いです。
PHPとかJavaという基礎的な言語やスクリプトに戻って、使ったことのないライブラリを触ってみるのはアリですよ。

大切なこと

部門で一番を目指しましょう。
部門で出来ると認められれば、今度は部署で、会社で、プロジェクトで一番を目指しましょう。
会社やプロジェクトが窮屈に感じたら外に飛び出しましょう。ハンズオンやMeetupが良いです。いわゆるハッカソンやアイデアソンのような場に参加するのが良いです。
なお、ハッカソンやアイデアソンは賞金が出る事があります。一番になるということはそういう要素に挑戦できる権利を得る事が出来るのです。
OK キャンセル 確認 その他