本記事の内容
- エンジニアとは?
- エンジニアの種類
- エンジニアの年収・給料は高い?
- エンジニアの働き方
- エンジニアの適正
- エンジニアのなり方
本記事の信頼性
この記事を書いている僕は大手IT企業勤務の30代のシステムエンジニアです。
・システム開発歴7年以上、プロジェクトマネジメント歴5年以上
・プログラミング歴8年(c++,java,bash,pythonなど)
・情報処理試験(応用情報、DBSP)を保有
・AIを活用したシステムの特許3つ認可済
「エンジニアとは何か?」というテーマで話したいと思います。
最近はAIなどのキーワードが流行っており、IT系人材、エンジニアが不足していると言われています。
しかし、エンジニアと言われても、どんな仕事をしているのか、いまいちピンとこないと思います。
実際に僕も家族や友人に自分の仕事を説明するときはすごく簡単に以下のような説明をしています。
「Amazonや楽天とか買い物できるサイトがあるでしょ。そこでクレジットカードを使えるよね。みんながクレジットカードをインターネットで使えるような仕組みを作っているよ」
この記事を見ているあなたはもう少し詳しくエンジニアとは何かを知りたいと思いますので、僕の経験を交えながら「エンジニアとは何か?どんな仕事をしているのか?どうすればなれるのか?」あたりを解説します。
もくじ
エンジニアとは?
あなたはエンジニアと言ってどんなイメージをされていますか?
「プログラミングをして、システムを開発している人」
こんなイメージを持っているのではないでしょうか。
近年では、IT系の技術者のことをエンジニアと表現することが一般的になっているので、そのイメージは正しいです。
ただ、プログラミングやシステムって結局どうやって開発しているのか分からないと思いますので、分かりやすく解説していきます。
エンジニアの仕事内容
エンジニアの仕事の内容は大きく以下のステップで実施します。
仕事の進め方
①どんなことをシステムにしたいかお客さんと相談・決定する。
②システムを設計する
③システムを開発する
④お客さんに納品する
分かりやすくアプリを友人に作ってあげる例で説明します。
①どんなことをシステムにしたいかお客さんと相談・決定する。
友人が毎月レシートから家計簿をつけているのが面倒だから何とかしたい!
スマホのカメラでレシートの写真をとれば、メモ帳に商品と金額が記入されるアプリを作ってくれ!
というので、○○円で作ってあげることにした。
②システムを設計する
・友人のスマホがアンドロイドなので、アンドロイド用のアプリで作る
・カメラ機能を使ってどのように写真をとるかを決める
など、アプリの使い方などを設計します。
※設計した内容は友人に確認してもらいます。
③システムを開発する
設計した内容に基づいてプログラミングをします。
・作ったアプリが上手く動くか?
・写真を撮ったら金額が識別できるか?
などをチェックします。
④お客さんに納品する
作ったアプリを友人に試してもらう。
メモ帳の背景の色を変更したい!くらいのちょっとした改善なら直してあげて、お金をもらう。
具体例はあくまでイメージなので、お客さんが企業であったり、複数人のチームでシステムを作ることもあったりしますが、エンジニアの仕事の流れは概ねこんな感じです。
エンジニアの種類
エンジニアの仕事のイメージはご説明しましたが、エンジニアにはどの技術に特化するのかで呼び名が変わります。
スポーツで分かりやすくイメージして頂くとプロ野球選手でもピッチャーやキャッチャーのように各ポジションが分かれている感じです。
エンジニアといっても得意分野が様々なので、○○エンジニアのような呼び名で仕事の内容が少し変わってきます。
最近では○○エンジニアの種類が多いため、代表的なエンジニアの種類とその内容について解説します。
システムエンジニア(SE)
SEという言葉はよく聞くと思います。一般にエンジニアと言われるとシステムエンジニアを示すケースが多いです。
先ほどの仕事内容で解説した①②③のようなお客さんと接しながら実際にシステムを開発することが主な仕事となります。
※職場や役割によっては、「お客さんとのやりとりが主流」「システムの設計が主流」など同じシステムエンジニアでも仕事の主軸が異なることはあります。
①どんなことをシステムにしたいかお客さんと相談・決定する。
②システムを設計する
④お客さんに納品する
プログラマー
あなたの想像通り、プログラマーの仕事はプログラミングでシステムを開発することになります。
システムエンジニアから受け取った設計書を基にプログラミングでシステムを開発する。
またプログラマーにも得意なプログラミング言語が人によって異なります。
"c言語"、"java"、"python"など
、今まで開発したことがあるシステムが"金融系のシステム"、"製造系のシステム"など得意領域も異なります。
個人的にはjavaが書ければ、他の言語もできると思いますが、プログラマーは自分が得意な言語を用いてシステム開発をしていくことが主流となっています。
メモ
お客さんと交渉したり、設計書が執筆できるプログラマーは上流の仕事もできるので重宝されます。
実際に僕の職場でもできるプログラマーは高単金であったりしますし、フリーランスで成功しているプログラマーはお客さんと交渉できる人が多い印象です。
Webエンジニア
WebエンジニアはシステムエンジニアのWebサイト特化版でWebサイトに特化したプログラミングを仕事とします。
ショッピングサイト(Amazon・楽天のようなサイト)や企業のホームページを開発するのが主な仕事のイメージです。
Webエンジニアの仕事はフロントとバックエンドの2つがあります。
・フロント
お客さんと相談した内容を基に、Webサイトの見た目をプログラミング(htmlやcss)で修正する
・バックエンド
お客さんと相談した内容を基に、Webサイトでボタンを押した後のサーバ側の処理をプログラミングする
Webエンジニアはシステムエンジニアとプログラマーのどちらの要素も含まれますが、プログラミングに特化した人など得意分野で差別化しているケースもあります。
インフラエンジニア
インフラエンジニアはシステムエンジニアのインフラ特化版で、サーバやNW(ネットワーク)などの構築を得意分野としています。
たくさんの人がWebサイトにアクセスしても、サーバへ接続ができるようにシステムのインフラ周りを設計することを仕事にしています。
Webサイトやアプリケーションは必ずサーバ上に開発されます。
そのため、システム開発には、どのようなサーバを構築するべきか、NW(ネットワーク)をどのように構築するべきかを考える人が必要となります。
インフラエンジニアはどのようなシステムに対しても利用できるインフラの技術であるため、特定の業務に依存しない技術を保有しています。
最近ではAWS(アマゾン ウェブサービス)などのサービスで簡単にサーバ構築ができるようになったため、AWSでどのようなサーバを構築するべきか、などを検討し、実際に構築できる人が求められている傾向があります。
その他のエンジニア
Webエンジニアやインフラエンジニアの説明でも記載したようにシステムエンジニアのスキルをどこかの領域に特化したエンジニアはたくさんあります。
そのため、本記事でまとめきることが難しいのですが、最近ではAI、データ分析、マーケティングなどに特化したエンジニアの需要も高まっています。
このあたりの分野は技術進歩に伴い新しく出てきたエンジニアです。
今後も新技術を活かしたエンジニアの需要が高まることは予想がつきますので、自分がどのようなエンジニアを目指すのか、については、自分のやりたいことを主軸に考えることをおすすめします。
エンジニアの年収・給料は高い?
エンジニアの年収は高いのか?低いのか?という疑問があると思います。
結論から先に言うと、エンジニアの平均年収は日本人の平均年収よりも高いです。
実際に大手IT企業勤務の僕の年収を公開した記事(エンジニアの年収は低い?【現役SEが年収を公開】)があるので、気になる人は読んで頂けると嬉しいです。
エンジニアの働き方
「エンジニアの働き方・労働時間はどんな感じなのか?」と聞かれたら、正直なところ「部署や職種による」という回答になります。
お客さんの無茶ぶりに対応しなければいけないエンジニアはブラックと言われる傾向が高いです。
ブラックな例
例えば、「アンドロイドのスマホアプリを開発する約束をしていたのに、急にiphoneにも対応する必要があるからやってくれ」と言われたとします。
アンドロイドとiphoneではOSが異なるため、同じアプリでも簡単には作ることができません。
お客さんは技術に詳しくない方も多いため、簡単ではないことを上手く説明ができない人がプロジェクトのリーダーだと、この無茶ぶりをやりきる必要が出てきます。
そうなると、当初のスケジュールに対して作業量が多くなるため、残業地獄になってしまいます。
このように、お客さん、プロジェクトリーダー次第では残業の量が多くなる場合もあります。
その一方で、技術知識に詳しいお客さんやプロジェクトリーダーが有能な場合はある程度、残業をコントロールできます。
社内システムの開発を専門にしている場合などは、このパターンに当てはまりますので、結論「部署や職種による」となります。
実際に僕のエンジニアとしてブラックだった時期、ホワイトだった時期についての体験談を書いた記事(エンジニアはブラック?【現役SEが実態を告白】)も興味があれば読んでもらえると嬉しいです。
エンジニアの適正
どのような人がエンジニアという職種に適正があるのか?について、お話します。
結論から言うと以下に当てはまる人は適正が高いと思います。
※あくまで僕の意見です。
①新しい技術・知識を学ぶ姿勢がある人
IT業界は技術進歩が目覚ましいので、新しいことを学ぶのに抵抗がない、または学ぶことが好きな人
②物事を論理的に考えるのが得意な人
「お客さんがやりたいこと」を実現するにはどのような順序でプログラムが動くべきか、などを考える必要があります。
⇒パズルを解くのが得意、のような物事を論理的に考えるのが得意または好きな人
③コミュニケーションスキルが高い人
お客さん、チームメンバーとコミュニケーションをとる必要があるため、コミュニケーションスキルがある程度必要となります。
⇒コミュニケーションロスが発生することでミスにつながることが多いため、コミュニケーション能力が高い人は重宝されます。
④プログラミングが好きな人
以上のような要素のいずれかに当てはまる人は適正が高いと思います。
ちなみに僕は新卒入社した時点では「コミュニケーションスキル」が圧倒的に低かったです。正直な話、相手の気持ちを考えることが苦手でした。
それでも今の仕事を続けていくことで、「この発言をしたら相手がどう思うか?」を考える癖がついて、苦手を克服できました。
現時点でエンジニアに適正があるかどうかの確認はもちろん重要ですが、エンジニアの仕事が好きかどうか?が一番のポイントだと思います。
メモ
エンジニアにはコミュニケーションが苦手なスーパー技術者の方もいます。
そういう方はコミュニケーションスキルの高い人とタッグを組むことで仕事が効率的に進むため、全てのスキル・適正がなくても問題ありません。
なお、エンジニアは理系の方が向いている、文系は向いていないのような話を聞いたり、相談されますが、学歴は全く関係ありません。
確かに理系の方がエンジニアの適正が高い人が多い傾向はありますが、文系出身でもすごいエンジニアはたくさんいます。
実際にプログラミングをバリバリできる僕の上司が、実は文系出身でした。という体験談(文系でもエンジニアになれるのか?【後悔しない選択をしよう】)もあります。
自分がやりたいかどうか?がポイントなので、やりたいなら適正あり、やりたくないなら適正なし、と考えた方がよいです。
エンジニアのなり方
エンジニアになるにはどうしたらよいのか?についてですが、まずどんなエンジニアになりたいのか?を整理する必要があります。
本記事でも説明した通り、仕事の内容によって様々なエンジニアが必要になります。
そのため、自分がどんな仕事がしたいのか?を整理して、だから○○エンジニアになりたい!というのを決めましょう。
どんなエンジニアになりたいか整理する
どのようなエンジニアになりたいかについては、以下のようなポイントを整理すると見えてくると思います。
ポイント
・開発したいシステムの業界は何業界か?(金融系?法人系?公共系?)
・どのような役割でシステムを開発したいのか?(お客さんと折衝したい?、プログラミングしたい?)
・どんな専門領域を持ちたいのか?(お客さんの業務?アプリケーション開発?基盤?クラウド?)
・どのようなキャリアを歩みたいのか?(企業に勤めたい?副業で稼ぎたい?フリーランスになりたい?)
やりたいことがまとまらないなら、就職・転職エージェントに相談するのもありだと思います。
エンジニアとして就職・転職する
なりたいエンジニア像が定まったら、就職・転職によってエンジニアを目指すことができると思います。
就職・転職のエージェントに相談することで、あなたに適した企業をおすすめしてもらうことができます。
「フリーランスになりたい」という人もエンジニアで就職してから独立する流れの方がリスクが低くいため、まずは企業に勤めることが個人的にはおすすめです。
今の職業からエンジニアで独立したいという方は副業で実績を積んでからフリーランスになることをおすすめします。
副業でエンジニアになる
現職をすぐに辞める気はないけど、収入をアップさせたい。という方はエンジニアを副業として実施することで月収をアップさせることがおすすめです。
ランサーズやクラウドワークスなどクラウドソーシングには副業で対応可能なレベルの案件がいくつかあります。(在宅で可能な案件も多いです。)
最初は単金が安かったり、時間がかかったりするとは思いますが、納期を守り、しっかりと品質を担保することで実績を積むことができます。
実績を積むことでお客さんの中での評判が良くなり、高単価の仕事を依頼されることも多くなります。(必然的に時給が高くなります)
これは、個人で努力するほど収入が上がるので、やりがいがあると思います。
とはいえ、スムーズに副業を開始して実績を積み重ねることは容易ではありませんので、相応の努力が必要であることはご理解いただきたいです。
エンジニアになるためにプログラミングスキルを習得する
僕は、転職や副業でエンジニアになるために、事前にプログラミングスキルを習得しておくことをおすすめします。
理由としては大きく以下2つです。
①スキルがあった方が転職・副業で有利だから
・転職でエンジニアを目指す場合、プログラミングができない人よりも有利になります。
・副業については、プログラミングができないのにプログラミングの仕事を受注することは相当リスクがあるため、まずはプログラミング学習をおすすめします。
②プログラミングの適正を判断できるから
プログラミングを学習することでプログラミングが好き・嫌い、得意・不得意を判断できます。
あなたが思っているよりもプログラミングは簡単ですが、想像以上に好き・嫌いは分かれます。
プログラミングが嫌いなのにプログラマーになることは絶対に避けた方がよいので、仕事をする前に学習することをおすすめします。
僕の場合は、学生の頃にプログラミングを学ぶ機会があり、システム開発のイメージがなんとなくできていたので、就職してからエンジニアになったことを後悔したことはありませんでした。
その一方で、就職してから「こんなはずじゃなかった」と言って転職した同期が一定数いたので、あなたには後悔しない選択をしてほしいと思います。
まとめ
本記事のまとめ
・エンジニアは仕事内容・役割・専門性で多くの種類がある
・エンジニアの年収・給料は日本人の平均年収より高い
・エンジニアの働き方は周辺環境や職種に依存する
・エンジニアの適正は「エンジニアの仕事が好き」かどうか
・エンジニアになるにはプログラミング学習をしてから転職、副業をすることがおすすめ
本記事は以上です!!