複業フリーランスのhillpointです。
IT業界入りしただけでは、システムエンジニアではありません。
最初は、プログラマーやテスター、よくてシステムエンジニアのアシスタントです。
ここからが重要で、少なくともシステムエンジニアまでは、駆け上がる必要があります。
現役システムエンジニアである管理人が、「システムエンジニアになるまでのステップアップ方法」教えます!
専門用語について
アイコンがついている専門用語は、「知らないと恥ずかしいITエンジニアの用語集」ページに説明を記載しているので、専門用語の意味が解らない場合、リンクをタップして、説明を参照してください。
IT業界入りした直後のポジションと仕事
未経験からIT業界入りした直後のポジションは、プログラマーもしくはテスター、よくてシステムエンジニアのアシスタントです。
それぞれどんなポジションでどんな仕事か?解説します。
プログラマー
システムエンジニアが作る設計書を見て、プログラミングをします。
一年中プログラミングしているわけでなく、システムエンジニアが設計中は、仕様なり技術要素の調査をしたり、プログラミングが終了したら、テストを実施します。
テストにおいてバグが発覚したら、調査・改修に行います。
実際にコードを書いている時間というのは、1年のうち、3分の1程度ぐらいのもんでしょう。
ある意味、システムなり、サービスを作る主役とも言えますが、裏を返せば、労働者です。
建設業で言うと、土方です。
IT業界では、一番の下っ端となり、給料も安いです。
IT土方なんていうキーワードは、プログラマーたちの苦労を現したものです。
なお、例外はいます。
まず、天才プログラマーたちです。
特殊な分野や技術を保有するとか、信じられないほどのスピードでプログラミングする、凡人では思いもよらないアルゴリズムを作れるとか、特殊な能力を持っている人たちです。
魔法使いのようなので、ウィザード級と呼ばれます。この人たちは、プログラマーであっても、高給であります。
例外の次として、SEPGと呼ばれる人たちです。
システムエンジニアもするし、プログラミングもする人たちです。
自分で要件定義して、設計して、実装して、試験して、運用することができる人たちです。
小さなシステム・サービス開発に多く、ベンチャー・スタートアップに多いです。
待遇はもちろんシステムエンジニアと同等か、それ以上のものとなります。
最後に、システムエンジニアとしてやっていける能力があるが、プログラミングが好きなので、プログラマーで生きる人たち。
たまにいます。これはこれで、好きな事を仕事としてやっていくので幸せです。
待遇は、プログラマーとなりますが、本人納得の上なので問題ではないでしょう。
テスター
システム開発において、大半の時間は、テスト・試験となります。
短くとも全工程の3分の1は、テストです。
テスターとは、テストを専門に行う人たちです。
簡単と思うかもしれませんが、技術と忍耐を必要とする仕事です。
システム内に100個のプログラムが動くとします。
この100個のテストをしてください。と言われたら、どうやってテストしますか?
そのテストで見逃したバグは、世にでます。
そして障害を生みます。
問題なく運用できることを証明するテストをしないといけません。
だいたいテストチームを結成して、テストについても計画・設計します。
網羅性、信頼性等、いろんな角度からのテストがあり、テスターというのは、このテスト設計、テスト計画に従って、もくもくとテストをこなす人たちとなります。
テスターは、下っ端、作業者です。
例外としては
テストの計画、設計を行うテストエンジニアです。
システムエンジニアのようなもので、テスターの上の職種となります。
テスト専門の会社もあります。
システムが大きくなればなるほど、テストの重要度、難易度もあがります。
品質を確保する上で、とても重要な領域です。
なぜにシステムエンジニアまでステップアップしないといけないか?
まず、プログラマーやテスターというのは、一部の例外を除いて、IT業界の一番下っ端で、給料が安いからです。
給料を上げるためには、いち早くシステムエンジニアになる必要があります。
IT業界における高いポジション、高給なポジションというのは、システムエンジニアの先にあるからです。
通常の会社、組織における管理職の他に、IT業界では、プロジェクトリーダー、プロジェクトマネージャーといった管理系のポジションがあります。
また、コンサルタントや、経営領域においても、最高技術責任者(CTO)といったポジションがあります。
これらの上位のポジションに行くのは、システムエンジニアを通過する必要があります。
SEPGを除き、システムエンジニアより上のポジションに行くと、プログラミングすることはなくなります。
プログラミングすることが好きな人は、プログラマーで留まることもあります。
システムエンジニアにステップアップする方法
さて、本題のシステムエンジニアにステップアップする方法ですが、レベル別に解説します。
レベル1:駆け出しのプログラマー
自分が作ったプログラムは、仕様や設計面も理解していることでしょう。
まわりの、他の人が担当しているプログラムも、見て理解します。
駆け出しのプログラマーが担当するプログラムは、ほんの一部でしょう。
もしかしたら、一部すぎて、そのプログラムがなにをするものなのか?解らないぐらい一部です。
関連するプログラムや機能を見て、自分のまわりから機能を理解します。
あなたが担当した業務なり、機能の全てのプログラムを見て理解してください。
また、人によって、プログラムの特徴があるでしょう。
力のあるプログラマーのプログラムを見ます。
そして真似ます。
駆け出しのプログラマーは、勉強するより、優秀なプログラマーのソースを見て、真似たほうが力がつきます。
目標として、自分の担当プログラムでない部分であっても、自分が所属するチームの機能であれば、だれかに「あれはどうなってるんだっけ?」と聞かれたら、「こんな風になってますよ」って、返答できるようになってください。
レベル2:普通のプログラマー
駆け出しのプログラマーを卒業し、普通のプログラマーとなりました。
担当するプログラムもいくらか増えたでしょう。
もしかしたら、1機能をまるまる担当することもあるでしょう。
設計に手をだします。
手を出すといっても、お手伝いからです。
プログラミングは、システムエンジニアが設計した設計書に従って、実装します。その設計書を作っているシステムエンジニアのお手伝いをします。
まず、客先との打ち合わせがあったら、荷物持ちでも、議事メモ取りでも、なんでもいいので、連れてってもらいます。
システムエンジニアがやってること見てきてください。
次に、小さな改造や変更があったら、設計させてもらう。
設計書ができたら、内容は、システムエンジニアにレビューしてもらいましょう。
通常、システムエンジニアというのは多忙です。少しでも、設計ができる人がいる、手伝ってくれるというのは、ありがたいものです。
システムエンジニアになったその先
未経験者がプログラマーやテスターを経て、晴れてシステムエンジニアになったとします。
システムやサービスの開発において、お客さんと打合せして仕様を決めたり、設計書を作って、プログラマーに指示を出したり、システムエンジニアとして活躍していると、そのうち、その先のポジションに挑戦してみないか?という声がかかります。
IT業界は、システムエンジニアは、中間ポジションです。
まだまだ労働者の枠の中です。
優秀なシステムエンジニアのその先は、プロジェクトリーダーやプロジェクトマネージャーといったリーダ職やマネージメント職です。
プロジェクトリーダーやプロジェクトマネージャーはとても大変ですが、高給となりますし、大変な分、やりがいもあります。
また、1人前のシステムエンジニアになったら、コンサルタントやフリーランスに転身といった選択肢も増えます。
「システムエンジニアになる。」というのがゴールではなく、システムエンジニアになった後こそ、いろんな道、生き方が選べるようになります。
以上 「晴れて入社できたものの、最初はプログラマーです。システムエンジニアになるまでのステップアップ方法教えます。」