もともとは基幹系のエンジニア
私はもともと基幹系のエンジニアでしたが、最近Web系のエンジニアとしてフリーランスでお仕事させてもらっています。
IT業界ではいつも人が足りない問題がやみません。
さらに最近巷では、Web系自社開発企業、Sier、SESなど、エンジニアとしてどのようなキャリア形成していったら良いか?話も盛り上がっていたりしますね。
私の場合は、もうおっさんなので、大手企業Sierとして、または、大手企業からのSESで定年まで逃げ切れないこともないかなー、なんて考えたこともありました。
ただ、今の世の中的に、定年後も人生上がりきっていなければ、働き続けることは確実と思われます。
あと、私は現在東京に住んでいますが、将来実家のある地方へ移る必要があるかもしれません。
そうなってくると、首都圏での大企業相手のビジネスではなく、地方でのスモールビジネスに長けている必要があるわけです。
目指すところは、経営コンサル的なところから、システム提案、フルスタックエンジニア、運用、改善、、、
このような流れをプロとして行える人間を目指しています。
そんな中、システム構築するうえで、トレンドを意識したものづくりは必須と考えられ、それを経験値としてとため込むにはWeb系エンジニアとしてのスキルが必要でした。
というわけで、現在Web自社開発企業さんのプロジェクトに携わらさせていただいているのですが、どのようにしてシフトしていったか、書いてみようと思います。
Web系エンジニアとしてのスキルって?
Web系エンジニアとしてのスキルってなにが必要なんでしょう?
今現在の企業に求められているスキルやトレンドは大体以下ようになっています。
プログラミング言語
●バックエンド(サーバーサイド)
・Java、PHP、Ruby、Python、Go、Kotlin、Node.jsなど
● フロントエンド
・HTML、CSS、
・JavaScript(フレームワーク:React、Angular、Vue.js、jQueryなど)
DB
● MySQL、PostgreSQL、Oracle、SQLServerなど
● SQLを使えること
環境系(DevOpsとか)
● CI/CD(ビルド、テスト、デプロイ関連) Jenkins、CircleCI、TravisCI、AWSCodeBuild、GCPCloudBuildなど
● 開発環境
・Vagrant、Docker、Kubernetesなど
● バージョン管理
・Git、GitHub 、GitLab、Subversionなど
サーバー関連
● Linux、WindowsServer、AWS、Azure、GCPなど
全般的に自分でできちゃう人をフルスタックエンジニアと呼んだりします。
プロジェクトの規模によって、求められるスキルが変わってきます。
例えば大きければ、サーバーサイドだけ担当したり、中規模であれば、フロントエンドとサーバーサイド、小規模であれば、フロントエンド、サーバーサイド、DB構築、デプロイ系環境、サーバー管理、、、などなど
じゃ、一体どこまでできればいいんじゃ!?って思いますよね。
欲しいスキルを身につけるには
結局、「目標をもって」、「少しづつ」、「自分でやってみる」ってことでしか身についていかないと思うんですよね。
例えば、近い将来Go言語のサーバーサイドエンジニアになりたいと思ったとします。
いきなり未経験でGo言語のプロジェクトに入れてくれるところはなかなかないわけですね。
となるとやることは、
「Go言語で開発ができるようになる」という目標をもって、
「今の仕事に就きながら業後や休日に」、
「Go言語を使ったものを作ってみる」
ということになると思うんです。
「そんな、自分でいくらやってっても、仕事としてやらないと、雇うほうは認めてくれないよ」
っていう人もいるかもしれませんが、必ずしもそうではないと私は思います。
実際私は、個人開発や社内開発で自主的にc#やPythonでアプリを作っていました。
そして、それをお金の発生する案件とは違うけれど、関わったスキルとして経歴書に記載していました。ポートフォリオとしてURLを記載したりしたものもありました。
例えばこのようなスキルを経歴書に記載していたとしましょう。
業務経験:Java3年
個人開発:Python1年、Go半年(ポートフォリオxxxx)
みたいな感じで。
始めはJava案件で雇用してもらいます。
そして、Java案件で雇用されている間も個人開発や勉強を続けていきます。
すると、同一顧客の別プロジェクトや、プロジェクト方針変更や、なんやかんやでPythonやGoに関わるチャンスが訪れるのです。
実際私は、 個人開発や社内開発で自主的にやっていたc#やPythonで開発をする機会に恵まれました。
結構、やりたいやりたい!って言い続けていると、誰かがどこかで見てくれているものだと思います。
というか、企業側も実はできればトレンド技術に長けた人と関わっていたいのですよ。
ただし、いざやれるときになって、自分にそのスキルがなければだめなので、そこは地道に「実際にやれる人」になることは必要ですが。
なので、
「やりたいことを地道に身につける」&「やりたいことをアピールする」
これを続けていくことで、結構、自分が思った方向へ進んでいける世の中なのではないかと思います。
じゃあ、ここでいう「やりたいこと」ってなに?
スキルシフト、スキルアップ、を目的とした「やりたいこと」って?
IT、web業界で求められているトレンドを意識した技術。ということになります。
「やりたいこと」が『IT、web業界で求められているトレンドを意識した技術』ではない人は、また別の話になりますね。
IT、web業界でエンジニアとして食っていきたい人のマストとして、たとえ表面上でも、嘘でも、本当はそんなのやりたくなくても、IT、web業界でエンジニアとして食っていきたいのであれば、
「やりたいこと」=『IT、web業界で求められているトレンドを意識した技術』
です。
決めつけちゃってごめんなさい(笑)ですが、でも、考えてみてください。
雇う側からしたら、技術者なのに、最新技術にまるで興味がない人、欲しいですかね?
雇い主「最近AIってはやってるらしいね」
技術者「あー、自分そういうの興味ないんで」
雇い主「・・・」
そりゃ、ですよね(笑)。
「あー、おれそこまで詳しいわけじゃないんだよな。。。」って思った人、安心してください!
大体の人が「そこまで詳しいわけじゃない」んで。
調べればいいだけ。です。
十数年前となにが違うかというと、調べることが簡単に、当たり前になった。ってことですね。
昔は正直、職人的なところもあったと思うんです。実務で10年やって一人前だ、的な。
今そんなのないですね。
だって、基本、ネットで調べるのが前提だからですね。
皆、暗記なんてしてません。ググってます。(言い切っていいのか?w)
そして、むしろ、調べて、自分でやってみた結果を自分でwiki的なものにまとめてます。
さらに、そのまとめた結果を皆がネット上にアップしているんです。
なんて素敵な世界なんでしょう!
話がずれましたが(笑)、つまり仕事のマッチングって、やりたいこととやってほしいことが合うことが大前提です。
誰もやりたくない仕事をしたいわけじゃありません。
で、この記事は「エンジニアはスキルシフトするには」っていう記事で、「web系エンジニアにシフトする」という話を軸にしてますので、そうなるとweb系エンジニアにシフトしたい人は基本的に『IT、web業界で求められているトレンドを意識した技術』に興味を持とう!ってことになります。