先日、以下のようなツイートがTwitterでバズっていました。
現役SEですけど、プログラミングできてもあんま役に立たないっすよ。
給与高い管理系の仕事にシフトしていくほどなおさら使わない。
IT職でさえ、こんなもんです。
子供の習い事は習字がいいと思います。
会議でホワイトボードにシステム設計ガシガシ書いてるときに、
字が上手いと褒められますよ— てっぺ (@teppesmn) 2018年8月27日
僕はSEではないですが、Webエンジニアやっている身からすると、これはかなり誤解を生んでいると感じます。このツイートはあくまでSEという職に限った話ですからね。
IT業界はとにかく職種が多い上に、なかなか馴染みがないので具体的にどんな仕事をするのか理解されていません。当然、プログラミングするんだろうなというイメージを持っている方は多いと思うのですが、実は職種によってその辺りも違うんですよね。
もし、今後IT業界で技術職として働きたいならそれぞれの職種がどう違うのかは知っておく必要があります。プログラミング書く気マンマンで入社したのに、実はプログラミングすることはほとんどなくてExcelやパワーポイントを触るのがほとんどだったという話もよく耳にするので。
現役エンジニアの僕がSE(システムエンジニア)とプログラマー、そしてエンジニアの違いをそれぞれ説明していきますね。
プログラミングをしない技術職も存在する
まず、一般的にITの技術職には以下の3つの職種が存在します。
- システムエンジニア
- プログラマー
- エンジニア
一つずつ順に説明していきますね。
システムエンジニアとは
システムエンジニアは簡単に言うと現場監督ですね。
IT業界のプロジェクトって要件定義、設計、実装、テストの順にだいたい進むのですが、この全体の流れを仕切る役割があります。プログラマーに指示してプロジェクトの進行を管理していきます。
システムエンジニアは主にSIer(システムインテグレーター)での職種のことを指します。SIerは例えば銀行のシステムなどの業務系システムを構築する会社のことを指します。
システムエンジニアをやっている友人が言うには、「プログラミングスキルは下地としては必要だけど、大切なのはExcelとコミュニケーション」とのことでした。プログラマーに指示する以上プログラミングの知識が必要なのは間違い無いですが、実際にコードを書くことはほとんどないみたいです。
プログラマーとは
システムエンジニアがまとめた仕様書通りに実装していくのがプログラマーです。業務はコーディングのみと言っても過言ではないですね。
プログラマーはシステムエンジニアのもとで指示を受けながら仕事をこなしていくので下の立場にあり、収入面でもシステムエンジニアに劣ります。
エンジニアとは
エンジニアはシステムエンジニアとプログラマーの中間的な業務内容ですね。コーディングもするし、プロジェクト管理などビジネスサイドのこともします。
エンジニアは主にSIerではなくWeb系企業での職種のことを指します。Web系企業とは、分かりやすい例で言うとメルカリやGoogle、Yahoo!などの企業のことですね。
Web系企業は基本的にエンジニアみんなでサービスやプロダクトを作っていくというスタイルなんです。
だから、サービスを開発するうえで必要となる要件定義とか設計とかテストとかも自分たちで考えて行うことになります。つまり、その過程で発生するマネジメント業務などもこなす必要があります。
エンジニアはプログラミングスキルと管理スキルのどちらも求められる
エンジニアはサービス開発において、ただ言われた通りにコーディングをしていくということはまずありません。エンジニア自身も製品、サービスがどうやったら良くなるか、どう実装したら効率的か、などを考えながら仕事を進めていくことになります。そこで適宜コーディングをしていくというイメージ。
システムエンジニアとエンジニアって全く違うんですよね。同列には扱えません。
システムエンジニアはプログラミングスキルがそこまで求められないという話でしたが、エンジニアはプログラミングスキルは絶対に必要です。むしろ、プログラミングスキルがなければWeb系企業ではエンジニアとして働けませんからね。
ただコーディングのみがしたい人にはエンジニアは向いていないかもしれません。
SEなどの管理系職種の方が給料が良いというのは誤解
確かにどんな業界でも管理系の方が給与は高いですが、IT業界では必ずしもそうとは限りません。
IT業界はスキルが物を言うところが結構ありまして、エンジニアはプログラミングスキルが高ければ高いほど稼げます。エンジニアには20代でも年収1000万円以上もらっている人がいるくらいなので、SEの方が高いとは一概には言えないですよね。
ただ、エンジニアは40代・50代になってくると管理系職種に移行する必要が出てきます。なぜなら、若い人の方が技術の習得が早くて成長性があると見なされるので、年齢を重ねるにつれてプログラミングスキルが高いだけでは評価されづらくなる可能性が高いからです。
どんなエンジニアもいつかは管理側になる
エンジニアやプログラマーは50代定年説とかありますが、実際に50代や60代になってもコードを書く仕事をするのは厳しいと思います。なので、いつかは管理側に回らなきゃいけないんですよね。
できれば30代ぐらいからはコーディングと合わせてマネジメントも経験しつつ働くのが理想だと思っています。
エンジニアやプログラマーにはコードを書くスキルに優れている天才的な人もいますし、そういった人はたいてい子どもの頃からプログラミングしていたりするんですよね。もしプログラミングを始めたのが20代、30代になってからと遅くても、要領の悪い人でなければエンジニアでも年収1000万円は十分実現可能です。
また、システムエンジニアよりもエンジニアの方が働きやすい環境は整っていることが多いです。リモートワークできたり、私服勤務OKだったり。
最後に、各職種の特徴を以下の3つにまとめました。
- コードを書くことしかしたくないなら「プログラマー」
- ビジネスサイドの仕事をしたいなら「システムエンジニア」
- コードを書くのとビジネスサイドどちらもしたいなら「エンジニア」
自分に合った職種を探す時の参考にしてみてくださいね。