ITとは「Information Tecnology」の略で、「情報技術」を意味します。市場の成長と人材不足を背景に、IT企業に就職(就活)する人がどんどん増えてきています。
しかしながら、IT業界は様々な専門用語があり、就活生を含め、これまでIT業界と関わり合いの薄かった人にとっては取っつきにくいという印象があるのではないでしょうか。
この記事では、IT業界の基礎について、とくにプログラマー(PG)とシステムエンジニア(SE)の違いを中心に分かりやすく解説していきます。
IT業界について
IT業界の業界規模は年々増加傾向にあり、2020年には国内IT企業の売上高の総額は12.9兆円に達しています。AIやブロックチェーン技術の進歩に伴い、こうした傾向は今後も続いていくことが考えられます。
こうした業界の進展を背景に、IT業界における人材不足は深刻となっており、2030年には国内のIT人材の不足数は45万人に達する見込みとなっています。
就活や転職の成否は基本的には人材の受給によって決まるため、大学生や社会人にとってのIT業界のとの関係性は今後ますます増していくことが予想されます。
プログラマーとシステムエンジニアの違いとは?
それでは、本題のプログラマー(PG)とシステムエンジニア(SE)の違いについて見ていきましょう。
システムエンジニア(SE)とは
企業毎にシステムエンジニア(SE)の定義は異なりますが、SEの仕事として共通するのは、「システムを発注する顧客からの要望をヒアリングし、システムの設計図を作る職種」ということです。
顧客がなんらかのサービスや製品を作りたいと考えており、それを実現するためのソフトウェアやウェブサイトなどの作成をIT企業に依頼します。そこで顧客がどのようなシステムを構築したいと考えているのかをヒアリングし、それは実現可能なかのを判断するのがSEの仕事となります。
具体的な仕事例として一般的に挙げられるのは下記のようになります。
- 要件定義(顧客から要望を聞き、どのようなシステムを作るのかを具体化する)
- 詳細設計(全体設計の要素ごとの仕様や動作の詳細を設計する)
- システムリリース後の運用保守
など。
プログラマー(PG)とは
プログラマー(PG)とは、「コンピュータのプログラムを作成する人」のことを差します。
コンピュータは基本的にはプログラム(言語:Pythonなど)によって構築された設計・システムにもとづいて動作します。プログラマーはプログラム言語をもちいてそうしたシステムを構築することになります。
一般的に、プログラマーの仕事として挙げられるのは、
- コーディング(実際にプログラムを書くこと)
- デバック(プログラムの誤り・不具合・欠陥といったバグを探して取り除き、修正すること)
- ソフトウェアテスト(完成したソフトウェアをテストすること)
などとなっています。
PGとSEの違いと関係性
顧客がIT企業にソフトウェア製作の依頼を行い、それが納品されるまでの基本的な流れは下記のようになります。
つまり、SEの仕事は顧客の要望をヒアリングし、その要望を実現するためのシステム(プログラム)の設計を行います。その設計をPGに伝え、PGはその設計を実際にプログラミングしてシステムを構築していくこととなります。
SEとPGそれぞれに求められる能力
システムエンジニアに求められるスキル
基本的なプログラミングの知識
SEはPGと異なり、実際にプログラムを書くわけではないため、プログラミングに関する専門的な知識を網羅する必要はありません(もちろん、IT業界で働く以上、専門的なプログラミングの知識があるにこしたことはありません)。
しかしながら、顧客の要望が現在の、もしくはその会社のプログラミング技術において実現可能なかのかどうかを判断する必要があるため、「プラグラムの基本的知識や仕様」「プログラミングで実現できること」などのプログラミングの基本的な知識は必須となります。
コミュニケーション能力
SEは顧客と自社の開発メンバーの橋渡しとなり、そのプロジェクトを円滑に進行する必要があります。そのため、
顧客や開発メンバ-とのコミュニケーションが多いのがSEの特徴となります。プログラミングの基礎知識は重要ですが、SEにおいてはこのコミュニケーション能力がとくに重要であると言われています。
論理的思考力
プログラムされたとおりにしか動かないため、融通が利きません。そのため、それぞれのプログラムを適切に組み合わせることが出来なければ完成したシステムやソフトウェアは正常に作動しません。
そのため、SEの最も従業な仕事である要件定義を行ったり詳細設計を行う際には、ロジカルに設計を行っていく必要があります。そうした思考ができる能力もSEには必要です。
プログラマーに求められる能力
専門的なプログラミングの知識
実際にプログラムを書くプログラマーにとって最も重要といえるスキルがプログラミング言語に関する知識となります。
プログラムやシステムで問題が起きたときに、何が原因なのかを特定し、素早く対処するためにはシステムエンジニア以上の専門的なプログラミングの知識が必要となります。
学習し続ける能力
日進月歩のプログラミングの世界で生き残っていくためには、常に最新の技術や動向を学び続ける姿勢や能力が必要となります。
プログラミング言語と一言で言っても、JavaScriptやJava、PHP、Ruby、Python、C言語、C++、アセンブリ言語、Kotlin、Swift、Objective-Cなどなど様々な言語があり、流行廃れやそれぞれの言語に適した開発分野などがあります。
これらを全部知っている必要は全くありませんが、そうした技術や言語の流れに着いていくために学び続ける必要があるでしょう。
論理的思考力
システムエンジニアに求められる能力でも書いたとおり、プログラムは論理的に組んでいく必要があるため、論理的な思考力が必要となります。物事を順序立てて考え、それをしっかり構築していくことが重要です。
まとめ
就職や転職を考える際に、人材不足の状況が続いていくであろうIT業界のプレゼンスは増していきます。そのIT業界において中心的な役割を担うシステムエンジニアやプログラマーは、その役割や求められる能力も少しことなります。
また、IT業界で働くに当たって、理系であるにこしたことはありませんが、文系の人間もどんどん就職しています。とくにコミュニケーション能力が重要なシステムエンジニアにはその適性に文系・理系の区別はないと言えるでしょう。
専門知識や用語が飛び交う業界ではありますが、今後重要性は高まっていくことが予想されてるため、一つ一つの知識を着実に身につけていくことが重要でしょう。