SEにプログラム言語が不要というのは本当か
なんやかんやで就職してから8年ほど経ちました。
大学では経済学部を専攻でしたが、システムエンジニア(SE)の道を選びました。
理由はいろいろありましたが、所詮は学生時代に適当に考えたことで、
あまり深くは考えていませんでした。
今となっては就職活動をもっとちゃんとしておけばよかったと思います。
「未経験からSEになろうとしている方」に仕事内容をお伝えしますので、これから就職・転職しようとしている方の参考にしてください。
SEの待遇
ベースの給料が低い
私は不思議でならないのですが、なぜかSEは給料が良いと思っている方が多いです。
どう考えても証券会社、銀行、商社などと比べると見劣りするのは確実です。
もちろん超大手にいければ話は変わります。
Google、Apple、Microsoft、Sony、Accentureなど給与は凄まじいでしょうが、未経験からこんな企業に入社できる天才はほぼ居ないでしょう。
私の勤務先は中小企業としてはそこそこの規模ですが、給料はそれほど給料は高くありません。
残業なしのベースでいくと手取りで20万円を切ります。
おそらくですが " 残業 " によって給料が高くなることが多いのではないかと思います。
残業は減る流れになっている
ワークライフバランス、三六協定が改定と仕事でなく私生活も充実させようとしています。
特に三六協定の改定により月40時間を超える残業をする場合でも、
45時間以上の残業をするためには申請が必要になります。
企業としてもあまり残業時間の超過をさせたくはないです。
これからはSE名物の"デスマーチ"と呼ばれる徹夜の連続なんてものも減っていきます。
私はさすがにデスマーチなんてしたことはありませんが、一部のブラック企業ではまだあるようですね。
とはいえ現時点でSEは残業が多めの職業であると言えるでしょう。
総合的な待遇は他職と変わらない
身も蓋もありませんが結局は「企業による」というのが大きいです。
同じシステムエンジニアでもどこで働くかで待遇は変わります。
私の職場では給料そこそこですが有休は取りやすいです。
特別休暇で年に1回長期休暇の取得も推進されています。
友人のシステムエンジニアの企業ではボーナスなし、有休は取りづらい、でも社内のイベントは多くてアットホームというところもあります。
なので、システムエンジニア = ブラックという考えは必要ありません。
あえて言うならブラック率が低くはないので就職・転職の際には気をつけようというところです。
SEはプログラム言語をマスターする必要はない
プログラム言語習得は必須ではない
これは意外かもしれませんが「システムエンジニア = プログラム」という式は成り立ちません。
なぜそう言えるのか、それは私自身がプログラム言語をマスターしているとは言えないからです。
とても簡単な言語であるSQLなら割りと自在に使えますが、C#・Java・C++などプログラム言語と言えばよく聞く言語は全く書けません。
なぜプログラム言語なしで成り立つのか
もちろんプログラム言語を扱える方が仕事をしやすいのは間違いありません。
ただ、システムエンジニアとして仕事をしていく上では必須ではないということです。
なぜなのか。
それはシステムエンジニアとプログラマの住み分けが明確に線引きされているからです。
簡単に説明するとこのような感じになります。
SE(システムエンジニア)
お客さんが作りたいプログラムの設計書を作る
PG(プログラマ)
与えられた設計書に沿ったプログラムを作成する
俗にいう上流工程(システムエンジニア)と下流工程(プログラマ)で仕事の内容が変わるわけです。
この理論で行くとシステムエンジニアはプログラムを作るわけではないので、言語をマスターしていなくてもできるという訳です。
言語を習得せずに設計できるのか
「設計」というとプログラムを理解せずにできるのかと疑問に思われた方もいると思います。
実はこの設計というのは「お客さんが作りたいものはこういうものですよ」というのを示す設計書です。
基本設計書と呼ばれています。
例えば「ホームページの背景を青色に変更したい」というのがお客さんの作りたいものだとすると、ExcelやWordに画面イメージを貼り付けます。
この画面イメージもペイントで加工したものにコメントを追加するような感じです。
この例だと既存のホームページのスクリーンショットでも取って、吹き出しで「背景を青色に変更する」とでも書くんです。
ペイントやPhotoshopなどで実際に出来上がりイメージを作れればなお良いです。
どうでしょうか。
システムエンジニアが作る設計書にプログラム言語はなくていいのです。
ポイントは「お客さんがどんなものを求めているのかを明確にできるか」どうかです。
この基本設計書についてはお客さんも目にします。
お客さんとシステムを作る側の認識にズレがないか合意を取るわけです。
当然お客さんはプログラム言語なんて使えませんので、
基本設計書にはお客さんが理解できるように専門的にならない内容になるのです。
ただし、この設計書を作成する上でプログラム言語を全く理解できていないと不都合が起きる可能性があります。
それは実現困難な要望を受けてしまうことです。
たまにあるんですよ。
簡単な修正でいけると思ったのに影響が凄い大きいというパターン。
こういうことも起こりうるので「プログラム言語の勉強は全くいらない」ということはできません。
プログラムを作れるレベルになる必要はありませんが、少なくとも内容を理解できるような知識を身につけられるように努力する必要はあります。
プログラマの設計書
こちらは詳細設計書と呼ばれているプログラム寄りの設計書です。
「こんな設定・コードを記述して基本設計書を実現するか」を記載します。
先ほどの例でいくと「CSSのbackground-colorの値を"#00AFFF"に変更する」などと記載します。
俄然プログラムっぽい内容になりますね。
この詳細設計書についてはお客さんが目にすることは少ないです。
読んでも内容が判りませんからね。
こういった詳細設計書を書こうと思うとプログラムの知識が必要になってきます。
詳細設計書までシステムエンジニアが作ることができれば仕事も進むので、
プログラム言語をある程度理解できる(少なくとも調べながらなら読める)レベルが好ましいのです。
まとめ
システムエンジニアとプログラマで仕事の内容が違うので、「プログラム言語が判らないから就職を諦める」とは考えないでください。
ただし、全く勉強しないで良いほど甘くはありません。
どんな仕事でもそうかもしれませんが、特にIT系は日々の技術進歩がめざましいです。
時代に取り残されたエンジニアに未来はありません。
勉強を怠らないという意気込みは重要になると思います。