質問: アラフォーになるエンジニアなんですが、マネジメントやディレクションもやるようになって、 技術のストックがなくなってきたので、また新しい事を勉強しようと思っています。 軽く自己紹介させて下さい。 田舎でWEB屋をやっています。結婚してて今年中学生の子どもがいます。 27歳からITの世界に入りXHTMLとCSS2やperlのCGIのカスタマイズをやって、 PHPでWEBを作るようになり、ZendやCake、Fuelphpなどを使っています。 JavaScriptのフロントはjQueryのみで今までやってきました。 nodejsではちょっとしたサーバを作ったり、socketioも少し使いました。 あとはサーバの構築や保守もやっています。AWSとかさくらクラウドとか。Dockerはまだ未着手です。 3,4年前ぐらいからスマホが流行りだしてからはアプリも少しかじる。Phonegapとか・・・ Javaで簡単なものは作れましたが、受託で開発できるほどのレベルではないです。 もともとの地頭は悪い方で、最終学歴は偏差値50以下の公立高校を中退です。 今はマネジメント、ディレクション、開発を半々ぐらいでやってます。 フレックスで働かせてもらってるので、時間の融通は効くのですが、 今の会社の業績が芳しくないので、もしものことを考えると不安を感じています。 あらためて、自分が何をしたいか考えた時に思った事は、 「新しい技術を使って何かを作る」ということなので、 また昔のように、技術に没頭したいなと考えています。 そこでやってみたいことをリストアップしてみました。 1. Go(API的なサーバサイドはPHPよりGoの方がよさそう) 2. ReactやAngularなどのフロントエンドJS(ネイティブの開発は諦めたので、これらができればちょっとしたアプリができるかもと期待) 3. Ruby(WEBを作ったり、アプリを作ったりできそう) 4. 東京に行ってみる(田舎に移住する人もいるらしいですが、なんだかんだいっても憧れてます。) 5. 英語を学ぶ(まだ人生長いので・・・) 6. Unityでゲーム開発(ファミコン世代なのでゲームは好きです) 7. WEBはオワコンだ、IoTに全振り。 これからの時代を考えるとどれがいいと思いますか? 重く考えず、上記以外でもざっくばらんなご意見頂けますでしょうか。 差し支えなければ、ざっくりと年齢や年代だけでも書いてくれると嬉しいです。
回答: 同年代。ユーザ系IT会社で受託開発・保守のSEやってるサラリーマンです。 挙げられた中でなら「3.Ruby」を選択します。 Ruby on Rails製システムのリプレース・再開発狙いです。 Railsは短期開発で流行したことからスポット契約で作ったシステムが一定数あると思っています。 償却を終えるとともにサポート問題への対応など課題が出てる頃合い。 スポット契約対応における要員確保にあたりオールラウンダーはそこそこ貴重と思います。 他の選択肢はkeisuuさんのご家族や事業の状況を見るにリスク高に思います。 夢のある話としては「サーバレスアーキテクチャ」。 従来のサーバ仮想(AWS EC2など)はオンプレミスにおける設備費・修繕費の問題を改善しましたが、 サーバ構築や運用は相変わらず人の手が必要となるもの。要員による固定費発生が避けられません。 経営側としては「必要経費と割り切るが、無くせるものなら真っ先に無くしたい固定費」になります。 サーバレスアーキテクチャへの対応は、その固定費の部分について改善が図れそうな技術です。 規模が中程度までのシステムならばコスト削減効果は大きく、中小企業やベンチャーにとっては 魅力あるプラットフォーム/インフラとなることでしょう。 ただ、サーバレスアーキテクチャに対応しうるエンジニアは現状多くないと思います。 なので、その部分に取り組んで失敗も含めて経験し、基礎的な知識を身につけることができれば 市場価値の高いエンジニアになれると思います。 サーバレスアーキテクチャの具体的サービスには ・AWS(Amazon Web Service)のAWS Lambda ・Azure(Microsoft Azure)のAzure Functions があります。 以下、ざっくばらんな意見を。 エンジニアは技術そのものに目が行くのがその習性ですよね。 ただ、技術は手段であって需要(ニーズ、必要とされること)は技術そのものにはないですよね。 技術そのものも、需要に対応する取り組みにおける工夫によって生み出された産物です。 マネジメントやディレクションも対応したエンジニアなら 「新しい技術を使って何かを作る」ではなく「何かを作るために新しい技術を使う」発想もできそうです。 とかく開発者の視座・視点になってしまうところを、ご自身の経験を踏まえ違った視点で見てみてはいかがでしょうか。 アラフォー、10年以上携わっている経験をもてば、 技術レベルと仕事の関係というものが「レベルがあるから仕事ができる」のではなく 「仕事をするために(仕事をすることで)そのレベルに到達できる」ものであること には気づいていると思います。同じレベルの仕事を繰り返すことの方が少ない。 マネジメントとディレクションよりも開発や技術の方が分かりやすく感じたりしていませんか?実績とか。 もしかしたら選択する時期なのかもしれませんね。 過去を振り返るのも良いですが、思い切ってマネジメントやディレクションに振り切ってしまうのも 選択肢と思いますよ。(技術要素の経験数は多彩と思います。技術を見ても同じ事の繰り返しと思います。)