勝ったなガハハ.com

日常のオタク活動、ガジェットを中心に書いていきたいです

【仕事】これから社会人になる人、転職して別業種を考えている人へ【システムエンジニア】

 

 

まえおき

※これは私が主観と経験則で書いたものなので間違っている点も多々あると思います。あまり鵜呑みにしすぎないようにしてください。

 

今回は新しく社会人になる人、転職して別業種を考えている人に向けて少しでもSEという職業について知ってもらい、参考にしてもらえたらという考えで書きました。

 

できる限り未経験でも分かりやすいように簡潔に書くので、気楽に読んでもらえたらと思います。

 

SEのイメージ

さて、皆さんはSE(システムエンジニア)という職業についてどういったイメージをお持ちだろうか?

 

10年くらい前は

  • IT土方
  • デスマーチ
  • 休みない…
  • 低賃金…
  • 専門的な知識...
  • 死んだ魚の目をしたおじさんが多い...

というイメージだったと思う。

 

ここ数年はアフィ〇スやプログラミングスクール、情報商材のせいで

  • 未経験からフリーランスでイッセンマン!
  • フルリモート!
  • セブ島
  • スタバでドヤ顔Mac
  • キラキラでカッコイイ!
  • 人手不足!売り手市場!

というイメージが強くなった気がする。

 

実際どうなのか?

 

私自身のイメージとしては

 

当たらずとも遠からず

 

という感じである。

 

(未経験からフリーランスは相当なコネやコミュ力がないとリスクが高すぎるので本当にやめた方がいいです)

 

実際、働き方を大きく変えた要因としては、

だと思っている。

 

これによりIT業界全体的に柔軟で働きやすい環境が整ってきたように思える。

 

具体的には

  • リモートワーク環境が整って家でも仕事ができるようになったこと
  • 残業時間や過労に対して企業がとても敏感になり厳密に管理されるようになったこと
  • 人材不足による売り手市場になったこと
  • 売り手市場なので環境を整えて賃金を上げなければ人が集まらなくなったこと
  • 社会のIT化がようやく進んできたこと

が挙げられる。

 

正直なところ、

「少なくとも昔よりは働きやすくて、世間に理解されるようになったかなぁ」

と思っている。

 

SEの仕事とは?

SEって何してるの?

 

SEと一言で言っても様々な仕事内容がある。

 

プログラミングをして、ソフトウェアを作る。

 

というのが皆さんイメージしているものではないだろうか?

 

大きな流れとしてはそれで正解である。

 

ここでは基本的な共通した仕事内容について記載する。

 

①要件定義

まずは、要件を定義していく。

 

簡単に言うと

  • どういったものを作るか?
  • どういう要求を満たすものを作らなければならないか?
  • コンセプトは何か?
  • 使ってもらうターゲット層はどこか?
  • システム全体の流れはどうなるか?

を顧客やチームで話し合って決める

という開発初期段階になる。

 

ここがブレてしまうと有耶無耶で中途半端なモノが出来てしまうので、

しっかりと話し合って顧客やチームですり合わせをする。

 

同じ方向を向いて開発を進めることができるように決めてしまおう。

というフェーズになる。

 

 

②基本設計

どういったものを作るかが決まったら次は、

基本設計に入る。

  • 何を使って作るか
  • どんな機能を持っているか?
  • どんなデータを持っていなければならないか?
  • 画面はどんなものがあるか?
  • このボタンを押すとどういう動きをするか?
  • 画面はどこからどこに移動するか?

という基本的な事を決めていく。

 

ここを決めることにより作るものの全体像が見えて、どういう処理や画面を作らなければならないか見えてくる。

 

大抵はチームで分担して作っていくので、

ここができれば分担しやすくなる。

 

 

③詳細設計、開発

基本的な設計が決まったら、

具体的なプログラムの設計をして開発に入っていく。

 

処理や画面の細かい部分の設計を後から見て分かるように残しておいて、それを見ながら開発をしていく。

 

ここがプログラミングになることが多い。

 

 

④テスト、修正

処理や画面が作り終わったら、ちゃんと動くかテストする。

 

設計と異なる動きをするところはバグなので修正する。

 

全てのテストでOKが出れば開発完了ということになり、リリースになる。

 

未経験からチームに入る時は大体このテストから始めることが多い。

 

 

⑤運用、保守

どうしても人が作ったものなので、バグは出る。

リリース直後のソシャゲもそうだと思う。

 

リリースした後にバグが出たものに関して修正したり、新しく機能を追加したりすることを保守という。

 

 

大体のSEの仕事の流れとしてはこの①〜⑤の繰り返しになる。

 

プログラマという職業もあるが、

プログラマは③〜⑤の開発、テスト、保守だけを担うことが多い。

 

SEはプログラマの上位職と考えてもらって良い。

 

逆にSEだけど①〜②の要件定義と基本設計しかやらないということもある。

 

この辺りは割とあいまいになっていることも多いので、プログラマでも自分はSEと名乗ることも多いと思われる。

 

SEの業務形態

SEにも色々ある。

 

所属している会社によって異なるが、

代表的な業務形態がいくつかあるので紹介していく。

 

 

①派遣

派遣先に行って、その派遣先の人の命令で働く。

 

派遣契約なので、技術はコロコロ変わるし、環境もコロコロ変わる。

 

あまり柔軟な働き方はできないイメージだが、未経験でもある程度雇用してもらえることが多い。

 

 

②SES

システムエンジニアリングサービスと言って、SES企業が技術を貸し出すというイメージ。

 

派遣のように派遣先の人が命令はできず、あくまで所属しているSES企業が命令を出して働く。

 

この辺りはあいまいなこともあるので調べてみてください。

 

最近のSES企業は残業時間や社員の管理を徹底していることが多く見られるので、未経験の人はまずここから始めるのもあり。

 

ただ、出向先がコロコロ変わるのでなかなか技術が身につかないこともある。

 

働き方は所属しているSES企業によるので、リモートワークができたり柔軟に働けることもある。

 

 

③受託開発

基本的には企業からシステムの開発を請け負って、そのシステムの開発を会社として完了させて納品する。

 

あまり客先常駐がなく、基本的には自社内で請け負ったシステムを開発するということが多いので、働きやすいイメージがある。

 

納期等には厳しいので繁忙期は大変なこともある。

 

社内のチームで開発をすることが多いので、技術が身につきやすく、周りの人にも助けてもらいやすいことが多い。

 

 

④自社開発

完全に自社のソフトを開発して自社がソフトをリリースする自社内で完結することが多い。

 

自社ソフトを持っていてそれで経営が出来ている会社になるので、柔軟な働き方ができることが多い。

 

その分、技術力は求められるし、基本的に自分で考えて自分で行動できなければ評価が下がるイメージ。

 

ベンチャー企業も多数あるので、働きやすい環境や刺激を求める人にオススメ。

 

 

⑤社内SE

開発企業等関係なしに、社内のIT関連のことを担うSE。

 

例えば社内のファイルサーバーやネットワークの構築、運用、保守をしたり、会社のHPを作成したり様々なことを担う。

 

会社によって様々であるし、会社の規模によっても異なる。

 

私自身あまり詳しくないのでこのような感じとしか伝えられない。

 

 

これらが基本的によく聞く業務形態だと思う。

 

環境や会社の規模によってピンキリなので一概にどれがいいとは言えないが、

私的には受託開発自社開発をオススメしたい。

 

 

SEの職種

IT系のエンジニアと一言で言っても様々なジャンルがある。

 

ここでは簡単にプログラミングを行う事を主とする代表的な職種例をいくつか紹介する。

 

 

①フロントエンドエンジニア

簡単に言うと、

Webページの画面を作ったり、アプリの画面を作ったりといった

ユーザーが目にするものをプログラミングするエンジニアのことを言う。

 

これは偏見だが、陽キャが多いイメージがある。

 

 

②バックエンドエンジニア

簡単に言うと、

Webページにアクセスした時に、裏で動く処理をプログラミングするエンジニアのことを言う。

 

画面からバックエンドエンジニアが作った処理を呼び出すと、データベースにアクセスして顧客情報を持ってきてくれるようなイメージ

 

 

③組み込みエンジニア

簡単に言うと、

テレビのリモコンでチャンネルを変えた時に、指定したチャンネルに変えるようにプログラミングするエンジニアのことを言う。

 

家電や携帯電話、自動車などのハードウェア機器を動かすためのシステムを開発するエンジニアのことを言う。

 

 

④インフラエンジニア

サーバーやネットワーク、データベースの構築、運用保守を行うエンジニアのことを言う。

 

最近だとクラウドもインフラエンジニアの仕事になった。

 

 

⑤社内SE

先ほども書いたが、自社内のシステム開発や、ITシステムの導入やサポートを担う。

 

簡単なものだと、

エクセルのマクロで社内業務の自動化をする等。

 

 

人口が多いのはこの辺りの職種と思われる。

 

簡単に書いたが、キャリアによっても変わってくるし、

まだまだIT系には様々な職種がある。

 

気になったら調べてみて欲しい。

 

 

SEになるためには?

完全未経験からSEになるために特別にやらなければならないということは特にない。

 

国家資格もあるが、特に取らなくてもなれる。

 

やっておくといいことはたくさんあるが、

やらなくてはならないことは一つもない。

 

どういう仕事をするのか、どういう業務形態で働くのかということを理解すること。

 

入社後大体研修で必要最低限のことを学ぶことになるので、学習する意欲があること。

 

後はやる気があって、

面接を突破すればSEになれるので気楽に考えて欲しい。

 

 

SEを続けていくために必要なこと

では、あなたがSEになったとしよう。

 

なったのはいいが、やっていることは難しく見えて、

これから続けていけるか不安に思うかも知れない。

 

そんなあなたに続けていくためのアドバイスをしたい。

 

SEを続けていくための必須能力

①コミュニケーション能力

初対面の人と仲良くなって飲みに行く程のコミュニケーション能力は必要ない。

 

最低限必要なことをしっかりと上司に聞き、報連相ができれば良い。

 

ただ、チームで開発することが多くなるので、コミュニケーション能力があればあるほど開発が円滑に進むことが多くなるので必須の能力になる。

 

 

②学び続ける能力

ITというのは日々新しいものが生まれ、どれだけ学んでも全然足りないという状況に陥る。

 

新しいものに興味を持って自分から学ぼうとする力がなければ長く続けるのは難しいだろう。

 

 

③受け身の姿勢で居続けないこと

分からないことがあれば自分で調べて自分で解決する能力を身に付けること。

 

教えてもらっていないからできません。

というのが通用しない世界である。

 

厳しいと思うかも知れないが、プログラミングに関することは大抵インターネットで調べれば解決方法が見つかる。

 

それでも分からなければ自分なりに答えを出して、上司や先輩に聞くというのがセオリーになってくる。

 

プログラミングというのは全て教科書から学べることだけではなく、実際にプログラムを動かして自分で失敗しなければ分からないことが多いからである。

 

そういった意味で②の学び続ける能力と合わせてこれが大切になってくる。

 

 

とても厳しいことを書いたと思うが、

上記の①~③ができると長く続けることもでき、キャリアアップができるエンジニアになれることが多いので頑張って欲しいと私的には思う。

 

続いて、必須ではないがあれば能力を挙げていきたいと思う。

 

 

SEを続けていくためにあれば良い能力

①論理的に考える能力

プログラムというのは、人が書いた通りに動くものなので、

論理的な考え方でしっかりと情報を整理した上でプログラミングをしなければならないものである。

 

例えば、

 

自動フローリング掃除機を作りたい

     ↓

どういったものか?

     ↓

人が設定した時間に、

指定した範囲のフローリングを自動で掃除して、

終わったら自動で元の位置に戻って充電を行う。

     ↓

では、どういう機能が必要か?

     ↓

自動走行機能、掃除機能、充電機能、範囲設定機能、時間設定機能

     ↓

その機能を付ける為に何が必要か?

     ↓

タイヤ、ロータリーエンコーダ、モータ、掃除ブラシ、吸引モータ、バッテリー、充電器、マイコンWifiモジュール、超音波センサ、etc.

 

という考え方ができることである。

 

これができると設計ができるようになるので、

設計書を見てプログラミングするという段階からレベルアップができる。

 

ただ、やってるうちに身に付いてくるものでもあるので、

ある程度考えていることを言語化できる人であれば特に意識する必要はないと思う。

 

 

②何かに没頭できる能力

正直、一日中PCに向かって作業をし続けることも多く、

時には同じような作業をひたすら繰り返すこともあるので、

集中して没頭できる能力があれば良い。

 

よく面接で聞くのが、

「最近何か熱中している趣味や没頭していることはありますか?」

という質問である。

 

これを聞く意図としては後述もするが、

  • 集中して一つの物事に向かうことができる能力があるか
  • 没頭できる趣味があればストレス発散にもなって安心である

という意図で聞くことが多い。

 

この能力があると、ここぞという場面で集中して仕事に専念できるので重宝されることが多く思える。

 

 

③周りに流されずに着々と物事を進めることができる能力

②の何かに没頭できる能力に通ずるところもあるが、

  • 集中してタスクに向かえる力
  • 計画的にタスクを進める力
  • 周りの状況に流されず、目の前のタスクに立ち向かう力

のことである。

 

「周りの状況に流されず...」

 

と書いたが、

エンジニアは上には上がいるものであり、

周りがとてつもない結果を出すことも多々ある。

 

そういった状況でも自分を卑下せず、淡々と自分のタスクを進めることができる能力があれば順当にレベルアップができるエンジニアになれると思う。

 

 

④体力

言わずもがな。

 

 

⑤英語読解力

プログラミングの公式資料や、プログラム自体が大抵英語であることもある。

 

WebページなんかはGoogle翻訳してしまえば良いが、

高校レベルの英語は書けなくても話せなくても最低限読めるとスムーズに学習が進むことが多いので有用である。

 

 

⑥パソコンやインターネット、IT技術に興味を持つこと

なんでもいいのでIT系の物事に関して興味を持っていてほしい。

 

毎日プログラミングについて勉強しろとは言わないし、

休める時はしっかりと休んで欲しい。

 

ただ、自作パソコンを組んでみたり、

スマホやガジェットが好きだったり、

新しいソフトが出たら試してみる。

 

そんな趣味程度でいいのでITに関連することに興味を持って過ごしてほしい。

 

少なからずどこかで仕事に関係のある部分が出てくるので

そこから広がることもある。

 

楽しんで仕事をして欲しい。

 

ITに一切興味がない、むしろ好きではない、

であるとどこかで影響が出てくる可能性があるからである。

 

 

SEを続けていくためのメンタル維持方法

どんな仕事でもそうであると思うが、

SEもやはりメンタル的にきつくなることもある。

 

そんな時にSEを続けていくためのメンタル維持方法として一番に挙げるのは

 

没頭できてストレス発散できる趣味を持て

 

ということである。

 

なんでもいい。

 

運動でもゲームでも買い物でも酒でもダーツでもカラオケでも

なんでもいいから絶対にリフレッシュできる趣味を持て。

 

先述もしたが、

面接で絶対に聞くことがこれである。

 

面接をしていて無趣味の人はいくら優秀でも少し不安になってしまう。

 

逆に元気があって趣味について無限に語ってくるような人は未経験でも採用したいな

という気持ちになる。

 

それくらいSEという職業は続けていくためにメンタル面の維持が必要であるということでもある。

 

 

私自身のSEとしての現状と働き方

今はソフトウェアを自社開発しているベンチャー企業で働いている。

 

入社して色々あったが気付けば今の会社に入って6年目になる。

 

働き方としてはコロナ禍に入ってすぐ、リモートワーク規定が制定され、現在も週3で在宅勤務を続けている。

ミーティングも対面ではなくほとんどリモート会議が主流になって慣れてしまった。

 

正直リモートワークが始まってから

最高~~~

働きやすい~~~

という感じである。

 

SEは進捗や結果が目に見えて分かるのでサボることができないというのは

リモートワークを導入しやすい理由になるんだろうなと思う。

 

最近はフルリモートで地方からでもネットさえ繋がれば仕事ができる会社も増えているので

この点はオススメしたいポイントである。

 

 

SEの賃金

会社によって異なる。

 

技術力が高ければ高いほど

専門的な技術を持っていれば持っているほど

賃金が上がるのは当たり前であるが、

 

激務でも安いところ、

ライフワークバランスが保たれていても高いところ

というのはある。

 

この辺りは就活や転職活動をする上で

しっかりと見極めて欲しい。

 

あと都心と地方では

都心の方が仕事や会社の量も多く、賃金も高いので

未経験からとにかくSEになるというのであれば

都心の方を確実にオススメする。

 

一般的にはSEという職種であれば

普通に一人暮らしできるレベルは稼げる職業であると思う。

 

プログラマで開発とテストだけを行うような職種であれば

少し厳しいかも知れない。

 

評価制度が制定されていて、

単純に結果を出せば評価されて賃金は上がるということもある。

 

また、プログラマやSEは明確にキャリアアップを目指せる。

 

チームのマネージャーやプロジェクトのマネージャーになると

一気に賃金が上がるので

自分のやる気と努力次第でどこまでも伸ばせる職業だと思っている。

 

ある程度経験を積んで転職すると思いがけない年収になることもある。

 

努力が結果に現れる職業なので

そういった働き方をしたい人にはオススメの職業である。

 

 

まとめ

あんまり面白くない記事になってしまって申し訳なさしかないです。

 

本当は

 

そんなに専門的な知識はなくても後から身に付いてくるし、

そこそこ働きやすいところ多くなってきたし、

興味あったらやってみたらどうかな?

 

くらいの気持ちで書こうと思ったら

どちゃくそ長文おじさんのお気持ち自論記事になってしまいました。

 

私は一般的な業務用アプリのエンジニアなので、

ゲーム開発やAI開発等の人気のある業界には疎いです。

 

でもそちら方面の業界でもプログラミングはすることが多いと思うので、

少しでもプログラミングに興味があると思えば

私の記事を鵜呑みにせず、色々な記事を調べたり、業界について調べたりして

自分のなりたいものを明確にしてチャレンジしてみてください。

 

以上。

ここまで読んでくださってありがとうございました。