2020年6月14日日曜日

もし私がITエンジニアとして転職するなら



こんにちは。

今日は、もし私がITエンジニアとして転職するならどう動くかについて書いていきます。

私は、現在プログラマとして仕事をしています。

IT業界の経験は、約20年になります。

そんな私が、もし別の業界にいて、プログラミングも知らない素人で、これからITエンジニアとして転職を決めたとします。

その時、私はどういう工程を経てITエンジニアへの転職を目指すかを考えてみたいと思います。

結論を言うと以下の順番になります。

  1. 基本技術を習得する
  2. 転職先を探す
  3. 転職先で経験を積む

この順番で経験を積むことで、3年でスキルチェンジを目指します。

転職するためなら2までとなるのですが、「ITエンジニアとして一人前になる」と言うことがスキルチェンジだと私は思うので、そこまで説明していきますね。

1.基本技術を習得する



どんな転職でも同じだと思いますが、まずは、その業界の基本技術がないと話になりませんよね。

なので、私ならば以下の勉強に100時間以上はかけると思います。
  • html
  • CSS
  • javascript
  • PHP
  • SQL
フロントエンド(ブラウザ側)のみのエンジアになるには、上から3つ、html、CSS、javascriptを勉強すれば良いのですが、ITエンジニアとなるとバックエンド(サーバー側)の開発もある程度できるようになっておいた方が良いです。

また、上の5つは基本が分かるくらいまでで大丈夫です。

ただし、この5つの基本を習得するには、最初は100時間ほど手を動かして勉強が必要になると考えています。

「100時間も勉強が必要なの」と思うかもしれませんが、やってみると分かると思いますが、最初はキーボードもうまく打てないでしょうから、これくらいの時間は必要になります。

では、仕事をしながら、どうやって100時間もの時間を作るかと言うと、毎日1、2時間、休日は、6時間以上の時間を3ヶ月ほどかければ達成できます。

勉強方法はWebを使います。

プログラミングスクールへ通うのも良いのですが、今はWebで検索すれば基本技術の習得はできるのでそれで十分です。

私ならば、まずは、html、CSS、javascriptを使って、自己紹介のホームページを作ります。

もちろん、インターネット上に公開する必要はありません。

自分のPC内にテキストを作成すれば、インターネットに公開しないホームページは作成できます。

デザインは、いろんなホームページを見ながら、これと思うものを真似すれば良いのです。

もちろん、ソースコードまで真似してはいけませんよ。

検索サイトで、「html CSS」と検索すればソースコードの書き方が出てくるので、1から手を動かしながら勉強しましょう。

5ページほど作れば十分に基本技術は習得できます。

また、ランディングページ(最初に表示されるページ)にjavascriptで動きを着けてみましょう。

作成したページは、ポートフォリオとして使えるので、必ず残しておきましょう。

それ以外に、PHPとSQLは別に勉強しておきましょうね。

PHPとSQLもWebで検索すれば、すぐに勉強できます。

この時点で、コーディングをするのが苦痛に感じるのでしたら、ITエンジニアとしての転職は難しいと思います。

転職したら毎日コーディングする必要があります。

最初は、分からないことがたくさん出て来ます。

調べながらコーディングする事になるので、それを楽しめないと精神的にもちません

IT業界は、エンジニアだけではないので、自分にあった職種を探してみましょう。

2.転職先を探す



100時間ほど勉強したら、転職先を探し始めましょう。

一つ注意ですが、今勤めている方は、あわてて退職願を出さないでくださいね。

実経験のない人が、IT企業に転職するのは、かなり難しいです。

今は、エンジニア不足ですが、それは、実経験を積んだエンジニアが不足しているのです。

受け入れるIT企業側から考えると、中途採用しているのは即戦力となるエンジニアを探しているのです。

なので、実経験がない人を雇えるだけの余裕がある企業でないと、実経験がないと言うだけで不採用となることはよくあります。

では、どうやって転職先を探すかと言うと、私ならば以下の2つの方法を使います。

  • 転職サイトに登録して探す
  • Webサイトを見て探す

仕事をしながら転職先を探すには、上の2つの方法が良いと思います。

転職サイトに登録して探す


まずは、転職サイトに登録しましょう。

登録するのは、メジャーな転職サイトを探して2件ほどで良いと思います。

中途でエンジニアを探している企業は、複数の転職サイトに掲載していることがよくあります。

複数の転職サイトに登録しても、検索して出てくる企業が同じと言うのはよくあります。

転職エージェントを使うのも良いでしょう。

ただし、転職エージェントを使う場合は、少し注意が必要です。

転職エージェントのビジネスモデルは、転職が成功することで転職先企業から、あなたの年収に応じて数パーセントを紹介料として受け取るモデルとなっています。

なので、実経験がない場合、「難しいから、まずはIT業界の営業とかも探してみませんか」などと言ってきます。

そこを理解した上で、転職エージェントは使うようにしましょう。

では、転職サイトでどのようにして転職先を探すかを書いていきます。

まずは、「ITエンジニア 未経験」もしくは「Webエンジニア 未経験」で調べてみましょう。

実経験がない人を雇えるような企業は、キーワードに「未経験OK」みたいなことを書いている企業が多いです。

なので、このキーワードでヒットする企業を優先に応募していきましょう。

その際の注意点としては、募集要項をきちんと確認することです。

どういったエンジニアを募集しているのか、どういった条件で募集しているのか確認しましょう。

また、募集している企業のホームページも確認しましょう。

IT業界の中には、営業を業務の中心としている企業と、技術を業務の中心としている企業があります。

営業を中心としている企業は、Webサイトの構築を受注することに力を入れている企業です。

営業が大きな力を持っているので、技術者は無理な要望を安い価格で行わないといけない状態になっている可能性が多いです。

なので、こういう企業の技術者は、自分の会社はブラック企業だと思っていることが多いですし、実際、ブラック企業だったりします。

では、どうやって判断するかというと、営業と技術者の比率を調べるのです。

技術者に比べて営業が多い場合は注意が必要です。

Webサイトで探す


これは、少し時間がかかります。

しかし、転職サイトを使用せずに、自社ホームページで中途採用をしている企業も結構あります。

もし、通勤できる範囲で探す場合は、検索サイトで「IT企業 地域」や「Web開発 地域」で検索してみてはどうでしょうか。

ホームページから、その企業がどんな企業かを読み取って、もし良い企業ならば、そのホームページに採用ページがないか探しましょう。

採用ページで中途の募集があれば、履歴書や職務経歴書を送るというのもありだと思います。

ただし、その際はホームページの採用ページを見て応募する旨を一筆添えましょう。

どんな企業でも書類だけ送るのはNGです。

中途の募集をしていない企業でも、良いと思ったら電話で中途の採用をしていないか問い合わせるのも良いと思います。

もしかすると、転職サイトではなくハローワークのみに出している場合もあるので、電話で確認するのが良いと思います。

中途の採用していなくても、問合せしたことで、一度会ってみようと思ってもらえる可能性もあります。

転職先を探す時は、なるべく多くの企業に応募して自分にあった企業を探すようにしましょう。

面接まで漕ぎ着けたら、基本技術を勉強する際に作成したポートフォリオを持参しましょう。

画面キャプチャを印刷して画像集を持って行っても良いのですが、できればPCやタブレットなどに入れて持って行き、実際に見てもらうのが良いと思います。

面接では、入社時期についても聞かれると思いますが、聞かられなかったとしても、こちらから入社できる時期について具体的に伝えましょう。

転職先が決まったら、今働いている会社に退職願を出しましょう。

退職する際は、今働いている会社も、将来、顧客となる可能性があるということは意識しておきましょう。

3.転職先で経験を積む



転職先に入社できたら終わりではありません。

実経験のない人を採用した企業からすると、短期間で実戦で活躍できると判断したから採用したのです。

なので、それに応える必要があります。

転職に成功したら、そこがスタートラインなのです。

最初は、業務に着いて行くだけで一杯だと思います。

それでも、業務に必要な技術をどんどん吸収していく必要があります。

そのため、業務時間だけでなく自宅でも勉強をする必要があります。

ITエンジニアとして一人前になるために、以下のことを意識しておきましょう。

  • 何でもやる
  • 最低3年は経験を積む
  • 技術以外の知識も勉強する

何でもやる


まずは、何でもやるという意識が必要です。

ITエンジニアにも本当はいろいろな作業があります。

実経験がないと、自分がどんなエンジニアに向いているのか分かりません。

なので、与えられる仕事な何でもやってみましょう。

正直、難しいと思います。

でも、IT業界に転職したのですから、周りには技術に詳しい人ばかりです。

自分で調べて分からないことは、どんどん周りの先輩に聞いて吸収していきましょう。

その際、先輩は、どうやって調べているのか、どんな風にPCやツールを使っているのか観察することも大切です。

見て学ぶというやつですね。

最低3年は経験を積む


技術者として一人前になるには、一般的に3年はかかります。

最初は、作業に時間がかかるかもしれませんが、次第に時間もかからずに作業できるようになります。

3年も経験を積めば、十分に利益を出せるまでになるでしょう。

そこまでやって初めて、ITエンジニアとなれるのです。

技術以外の知識も勉強する


前職での知識もあるので、3年間技術者として経験を積めば、周りの技術者よりも知識的には有利に立つことができます。

しかし、IT業界は、日進月歩で進化しています

なので、技術も勉強する必要がありますが、それ以外のIT業界について勉強する必要があります。

また、ビジネスも進化していきますので、ビジネスについても勉強をする必要があります。

前職での知識、IT業界の最新の知識、3年以上の技術経験があれば、これはかなり有利な立場へ立つチャンスになります。

ここまで来ると、いろいろな選択肢が出て来ます。

会社の利益につながる提案もできるようになるでしょう。

もっと給料のいい会社を探すこともできるでしょう。

フリーランスとして独立することもできるでしょう。

全く別業界へ転職することもできるでしょう。

まとめ


これまでITエンジニアとして転職する工程を、私ならどう動いていくかを書いて来ました。
  1. 基本技術を習得する
  2. 転職先を探す
  3. 転職先で経験を積む
この3つは、ITエンジニアへ転職する場合だけでなく、別の業界へ転職する際には必要な工程だと思います。

また、同じITエンジニアでも、組み込みエンジニアからWebエンジニアに、スキルチェンジする際にも有効です。

実際、私も、組み込みエンジニアからWebエンジニアへスキルチェンジする時に、この工程を踏みました。

同じIT業界ですが、組み込みエンジニアとWebエンジニアでは、使う技術が違います。

私の感覚としては、全く違う業界へ転職する感覚でした。

ただ、私の場合は、「2.転職先を探す」時に知り合いの会社へ応募したので、苦労することなく転職できたことです。

このブログが、IT業界へ転職しようとしている方の手助けとなれば嬉しいです。

では、今日はこの辺で。

2020年6月7日日曜日

10年前の私に一言いいたい



こんにちは。

今日は、10年前の自分に伝えたい最低限やっておくことについて書いています。

10年前と言うと、2010年なので、私は33歳でした。

そのころは、当時働いていた会社が、リーマン・ショックの影響を受け出していた頃です。

当時の私は、スマホのアプリ開発を行っていました。

そんな10年前の自分に伝えたいことは以下になります。
  1. インプットしなさい
  2. 挑戦しなさい
  3. アウトプットしなさい
もっといろいろあるのですが、最低限これだけはやっておけば良かったと思っています。

1. インプットしなさい


当時の私は、全くと言って良いほどインプットをしていませんでした。

自分よりも経験の浅いプログラマには、「私は開発の本なんか読んだ事ないよ」「経験があれば、どんな開発でも対応できるよ」なんて言ってました。

バカですね。

今だから言えるのですが、できる仕事しか回って来ていなかったのです。

SESでお客様先に常駐して開発していたと言うのもあり、人手の足りないプロジェクトにたらい回しされていて、月100時間近くの残業があり、体力的にも精神的にも限界に達していました。

人として新しいレベルに入るには、インプットすることが大切です。

本を読む、いろんな人の意見を聞く、勉強するなど、自分から新しい情報を取りに行かないといけない時に、私はやっていなかったのです。

インプットすることをしなかった私は、自分が勤める会社がどう言う状況になっているかも分かっていませんでした。

ボーナスが減額になったりしていたので、景気が悪いからしょうがないよね何て同僚と話したりしていたのです。

でも、実は、自分の勤めている開発は、大きな経済悪化が起きていたので。

これが、本を読み、いろんな人と話をして、勉強をしていたら、おそらくIT業界がどう言う状況なのか、自分の会社がどう言う状況なのか想像がついたと思うのです。

ガラ携が下火になってきたことで、組み込み開発のシェアが少なくなって来ている事も分かったはずなのです。

Webシステム開発者へのスキルチェンジの必要性に気づくことは出たでしょう。

つまり、インプットをしていなった当時の私は、情報弱者となっていることに気付いていなかったのです。

2. 挑戦しなさい


当時の私は、毎日、同じ生活をしていました。

朝起きて、会社へ出勤、20時まで仕事して、帰って来て食事してTV見て寝る。

この生活をずっと続けていたのです。

実際、当時は、何の変化もないと嘆いていました。

でも、それって、自分が変化することをしなかっただけなんですよね。

自分が変わらないと、周りがあなたを変えてくれるわけないじゃないですか。

でも、当時の私は、周りの環境が変われば、自分も変われるのにと周りのせいにしていたのです。

また、いろいろとしたい事あるのに、仕事が忙しすぎて時間がないなんて言っていたのです。

でも、土日とか時間があると、ずっと寝てたり、ゲームしてたりで、結局やりたいこともなかったのです。

忙しいを言い訳に、何もしない自分を正当化していたにすぎません。

赤ん坊は、毎日挑戦し変化していきます。

私のそうだったはずです。

なのに、自分の経験のみで仕事をして、挑戦することをしなくなると、変化なんかできるはずもありません。

そんな人生、退屈な人生になるのは、すぐに分かるはずなのに、当時の私は、インプットすることをしていなかったために、そんな事にも気づくことができませんでした。

インプットをして、どんどん挑戦していれば、変化を楽しめるようになるのにな。

それに、もう一つ言い訳をしていました。

何かに挑戦しても失敗するから無理と自分に言い聞かせていたのです。

自分では、挑戦したいと周りに言っていたのに、いざチャンスが来ると、自分には無理だからと言っていたのです。

バカですよね。

結局、失敗するのが怖かったのです。

失敗して笑われるのが怖かったのです。

一般的に、挑戦して成功する確率なんで数パーセントです。

失敗しても当たり前だから、失敗を前提に挑戦してみれば良かったのです。

失敗しないようにインプットすることで、仮に失敗しても、そこから学ぶことは多かったと思うのです。

その学びを次の挑戦に利用することで、次の挑戦の失敗の確率は下がるのに、当時の私は何も分かっていなかった。

3. アウトプットしなさい


では、当時の私にアウトプットできることがあったのかと言うと、あったと思います。

仕事で得た知識は、十分なインプットだったと思います。

守秘義務契約を結んでいたので、全てをアウトプットすることは難しかったでしょう。

でも、プログラム言語は、仕事をしながら学んでい他のです。

できれば、インプットし、新しい事に挑戦し、その結果をアウトプットして行ければバッチリなんでんですが・・・

当時の私は、守秘義務がと言いながら、アウトプットしない言い訳をしていたにすぎません。

アウトプットしなかったがために、自分が学んでいる事に気づく事さえできなかったのです。

それがストレスとなり、結局、適応障害と言う病気になってしまったのです。

IT業界では、うつ病や適応障害になる人が多いです。

特に、適応障害になる人は、自分が変化している事に気づくことができずにいるのです。

また、変化することを嫌っている人も多いです。

実際に適応障害になると、夜も眠れなくなり、常に情緒不安定となってしまいます。

直すのも大変で、10年たった今でも私は薬を飲み続けています。

今では、変化することを楽しむことができるようになって来ました。

自分の変化をアウトプットすることで、自分が変化している事を自覚できるのです。

まとめ


10年前の私は、常に言い訳ばかりをしていました。

インプットをせず、新しい事に挑戦することもせず、アウトプットすることもしていなかったのです。

そのため、毎日、起きて、会社仕事して、寝ると言う単純な毎日を送っていました。
  1. インプットする
  2. 挑戦する
  3. アウトプットする
これって、変化して行く時代に必要なことだと思うのです。

そして、自分が変化することを楽しめるようになると、楽しい人生が待っているのです。

もし、皆さんの中で、10年前の私と同じような生活を送っている人がいたら、まずは、小さな変化をアウトプットしてみませんか。

アウトプットすることが無くなったら、インプットして挑戦するのです。

それを続けていると、楽しい人生を送ることができるのではないでしょうか。

では、今日はこの辺で。

2020年6月4日木曜日

変数の命名方法



こんにちは。

今日は、変数の命名方法について書いてみます。

プログラマの中には、命名規則に沿っていないソースコードを書く人がいます。

特に、経験の浅い人は、自分の好きなように、関数名や変数名を書く人が多いようです。

しかし、システム開発は、1度作ったら終わりとなる開発はありません。

有名なシステムの場合は、半年ごとに機能が見直されるため、自分が作った機能を、他の誰かが改造することは良くあります。

なので、命名規則には十分に注意が必要なのです。

では、最低限守った方がいい命名規則が以下になります。
  • 英単語を使用する
  • 1文字の変数は使用しない
  • プロジェクトで統一する
では、それぞれ説明しますね。

英単語を使用する


変数は、見ただけで何の値が格納されているのかが分かるように命名します。

プログラマの中には、日本語をローマ字で書く人もいます。

確かに、日本語をローマ字にした変数名だと、日本人には分かりやすいかもしれません。

しかし、今はグローバル社会ですよね。

今外国人と仕事していなくとも、後々、そのソースコードを外国人が修正するかもしれない。

その時、日本語をローマ字に変換しただけの変数名だと、外国の方には、記号にしか見えないのです。

なので、ソースコードを誰でも修正できるように、変数名は、英単語の変数名にしましょう。

1文字の変数は使用しない


日本語をローマ字に変換しただけの変数が、外国人には記号にしか見えないのと同じように、1文字の変数は誰が見ても記号です。

特に、入れるのインデックス値を1文字の変数にする人が多いです。

1文字の変数は、見てすぐに何の変数か分かりませんよね。

インデックスならば、indexと書いてあった方が意味が分かりやすいですよね。

これて、修正に修正が入って、ソースコードが長くなったりすると、1文字変数は意味が分からないくなることが良くあります。

なので、ソースコードが長くなると、不具合の原因になることが良くあるのです。

私も、長く修正が行われているソースコードで、1文字変数の意味が途中で変わって不具合になっているのを見たことがあります。

なので、1文字の変数は使わないようにしましょう。

1文字の変数が良く使われるのは、ちょっとしたサンプルのソースコードで良く使われるからです。

サンプルのソースコードって、短いし、後に修正が行われることを考える必要がないので、1文字の変数でもいいのです。

しかし、仕事でソースコードを書く場合は、後に修正が行われることを意識して書く必要があるのです。

プロジェクトで統一する


変数名の付け方は、プロジェクトで統一しましょう。

開発する時は、統一されているかもしれませんが、修正されるたびに変数名がぐちゃぐちゃになることが良くあるのです。

一番ひどいのが、英単語の変数名と日本語をローマ字に変換した変数名が混在している場合です。

プログラマの中には、自己流の命名規則に則って修正を行う人が結構いるのです。

修正する時に、命名規則がない場合は、修正する前にソースコードを読みましょう。

必要なソースコードだけでなく、他のソースコードも読むと変数名をどうすれば良いかは分かるはずです。

今は、オブジェクト思考でコーディングされていることが多いですよね。

なので、必要なクラスのソースコードや、継承元のソースコードを読めば良いのです。

まとめ


では、もう一度繰り返しますね。

変数名をつける時は、以下のことに気おつけるようにしましょう。
  • 英単語を使用する
  • 1文字の変数は使用しない
  • プロジェクトで統一する
少なくとも上記のことに気おつけることで、ソースコードが読みやすくなります。

できれば、会社で命名規則を統一しておくと、他のプロジェクトでも取り組みやすくなるので良いと思います。

では、今日はこの辺で。

2020年5月24日日曜日

プログラマの種類



こんにちは。

先日、ブログでシステムエンジニアとプログラマの違いについて書きました。


今日は、プログラマの種類について書いてみようと思います。

私が就活をしていた頃は、特に気にしていなかったのですが、プログラマは大きく「組み込み系」と「Web系」に分けられます。

今、就活している方も、あまり気にしていない方が多いように思います。

しかし、組み込み系とWeb系では、必要な知識や仕事内容が異なってきます。

なので、就活する際は、自分が身に付けたいスキルを考えて、受ける会社を検討した方が良いと思います。

では、それぞれの違いについて説明したいと思います。

組み込み系



組み込み系のプログラマーは、今では少なくなってきているような気がします。

私も10年ほど前までは、組み込み系の仕事をしていました。

組み込み系の仕事は、相手いがセンサーなどのハードになります。

つまり、センサーから送られてくるデータを加工し、必要なデータをアプリ側へ渡すプログラムを作成するのです。

私が昔携わった組み込み系の仕事は、ロボットの制御だったり、ガラ携のドライバやミドルウェアの作成を行っていました。

ただ、ガラ携からスマホに時代の流れが変わったことで、組み込み系の仕事がほとんどなくなってしまったので、私はWeb系のプログラマへスキルチェンジしました。

今でも、IoT機器の開発や、自動運転システムの開発などで、組み込み系の仕事はそこそこあるようです。

組み込み系の職場は、自分のデスクが実験室みたいになります。

大きな電源と基盤が各プログラマに渡されて、基盤にプログラムを書き込んで動作確認していきます。

つまり、プログラムを動作させる環境が必要になるので、大抵がお客様の指定した事務所で作業することになります。

シミュレータを使ってプログラミングすることもあるのですが、最終的には、ハードを使った試験が必要になります。

なので、今回のような外出自粛となってしまうと、結構な影響を受けてしまうのではないでしょうか。

ただし、良い点もあります。

IoT機器の開発や自動運転システムの開発などは、最先端の技術を使用します。

また、そのシステムが世の中に投入されると、一般の人からの喜びの声をすぐそばで聞くことができるのです。

私の場合だと、ガラ携のシステムを開発していた時は、携帯ショップで自分たちが開発した携帯を手にとっと喜んでいる人をみると、やってて良かったなと思ったりしていました。

Web系



Web系のプログラマと聞くと、すぐに頭に浮かぶのは、ホームページではないでしょうか。

でも、Web系のプログラマがホームページを作成することは、ほとんどありません。

ホームページの作成は、今ではデザイナーが行います。

では、Web系のプログラマの仕事はというと、Webシステムの開発がメインになります。

簡単に言ってしまうと、ブラウザーからの要求に対して、データベースからデータを取得し、要求されたデータを返すシステムの開発になります。

つまり、アプリケーションの開発などもWeb系のプログラマの仕事となります。

ただし、ブログサイトの構築やECサイトの構築は、ほとんとデザイナが行います。

なぜかと言うと、ブログだとほとんどが、Wordpressで十分なサイトが構築できてしまうからです。

Wordpressだと、詳細な処理はPHPと言うプログラム言語で作られているのですが、必要な処理はWordpressの中に作り込まれているので、あとは画面デザインをどうするかになるのです。

ECサイトもEC-Cubeと言うフレームワークがあります。

EC-Cubeは、商品の管理から売り上げの管理まで可能なのです。

なので、あとはサイトのデザインをどうするかなので、デザイナの仕事になります。

では、Web系のプログラマはと言うと、会社の基幹システムの開発が多いです。

例えは、これまで紙で作業していたのを、パソコンを使った作業に切り替えるとなると、Webプログラマが作業することになります。

この場合だと、要件を営業が聞いてきた後、プログラマが機能を設計し、デザイナが画面デザインを設計し、プログラマが適切な値を画面に表示するためのプログラミングを行います。

今では、いろんなソースコードがオープンソース化されているので、そのようなオープンソースを組み合わせてシステムを構築することもあります。

また、Web系のプログラマは、基本仕事をする場所が固定されません。

バーチャルサーバーをローカルPCに構築してしまえば、あとはPCひとつで仕事ができます。

なので、今回のような外出自粛の要請が出ても、すぐにリモートワークに切り替えることも出来たと思います。

もしかすると、その前からリモートワークしている会社もあったと思います。

Web系のプログラマが大変なのは、仕事をする相手が人だと言うところでしょうか。

なので、コミュニケーションが苦手な人にとっては、難しいと感じることがあるかもしれませんね。

まとめ


今回は、プログラマの種類についてまとめてみました。

プログラマには、大きく組み込み系Web系があり、それぞれ仕事内容が異なっています。

プログラマとして就活をしている方は、自分が将来どのようなプログラマになりたいのか決めてから、受ける企業を決めることをお勧めします。

中小企業のシステム会社では、組み込み系、Web系、関係なく募集している場合があります。

そんな時は、どのような仕事が多いかを確認するようにしましょう。

プログラマは、成長し続けないと長くやっていけない仕事です。

なので、自分の将来にマッチしない会社は避けるようにしましょう。

では、今日はこの辺で。

2020年5月18日月曜日

システムエンジニアとプログラマの違い



こんにちは。

今日は、システムエンジニアとプログラマの違いについて書いていこうとと思います。

私が就職活動や転職活動を行っている時に、システムエンジニアとプログラマの職種が別々に募集がありました。

当時の私は、将来的にシステムエンジニアの方が収入もいいかなと思って、システムエンジニアの募集ばかりを受けていたのです。

しかし、経験を重ねていく上て、システムエンジニアとプログラマの違いって、作業内容がほとんど変わらないことが分かってきました。

結論を言ってしまうと、システムエンジニアとプログラマの違いが大きくなるのは、大きな企業だけなのです。

中小企業のシステム会社では、システムエンジニアとプログラマは、同じ作業になります。

そう言うことが分かると、大企業以外であれば、システムエンジニアとプログラマの両方を視野に入れて就職活動を行うと、選択肢が大きく広がるのではないでしょうか。

今年は、新型コロナウィルスのために、就職活動が遅れていると思います。

なので、システムエンジニアとプログラマの両方を視野に就職活動を行うと、選択できる企業が断然増えると思います。

今日は、以下のことについて詳しく説明していきます。
  • 一般的なシステムエンジニアとプログラマの仕事に違い
  • 大企業のシステムエンジニアとプログラマの違い
  • 中小企業のシステムエンジニアとプログラマの違い

上記の説明をする前に、私の経歴について説明しますね。

プロフィールにも書いているように、私は、組み込み開発からWebシステム開発までを網羅的に作業してきました。

26歳でIT企業に就職し、組み込み開発は10年程度、Webシステム開発も7年程度の経験があります。

組み込み開発を行っていた時は、派遣として大手企業で開発しており、小さな開発から大きな開発まで携わり、機能リーダーを経て、プロジェクトマネージメントの助手もしていました。

Webシステム開発にスキルチェンジしてからは、中小企業で要件定義から納品までの一連の作用を行ってきました。

なので、大企業と中小企業の差についても、よく理解していると思っています。

では、説明に入りたいと思います。

一般的なシステムエンジニアとプログラマの仕事に違い


では、まずは、一般的なシステムエンジニアとプログラマの仕事の違いについて説明します。

システムエンジニアの仕事は以下になります。
  1. 要件定義
  2. 基本設計
次にプログラマの仕事は以下になります。
  1. 詳細設計
  2. コーディング
  3. 試験仕様書作成
  4. 試験の実施
つまり、システムエンジニアが上流工程を行い、プログラマが下流工程を行うことになります。

そして、プロジェクト全体を管理する、プロジェクトマネージャーがいます。

新卒でシステム企業に就職すると、以下のように経験を積んでいくことになると思います。
  1. 試験の実施
  2. 試験仕様書作成
  3. コーディング
  4. 詳細設計
  5. 基本設計
  6. 要件定義の作成
大体、3年程度で詳細設計までの経験を積むことができると思います。

私も、上記の順で経験を積んできましたが、派遣で企業に常駐していたので、詳細設計までは3年ほどで経験できましたが、基本設計や要件定義をできるまでには6年目くらいからでした。

大企業のシステムエンジニアとプログラマの違い


大企業では、システムエンジニアとプログラマでは、作業に大きな違いがあります。

作業に大きな違いがあるので、収入も違ってきます。

システムエンジニアの作業は、まさに上流工程のみになります。

つまり、要件定義と基本設計の作業のみを行うことになります。

そのため、要件定義を作成して、基本設計が終わると、次のプロジェクトへ移動することになります。

時には、複数のプロジェクトを掛け持つこともあります。

私が派遣で大企業に入っていた時に、システムエンジニアの手伝いをしたことがありました。

その時は、要件定義を会議資料をもとに作成し、作成した要件定義をもとに基本設計を作成しました。

その間に、システムエンジニアは、別のプロジェクトの要件定義を作成していました。

つまり、そのシステムエンジニアは、私が手伝うことで2つのプロジェクトを掛け持っていたのです。

また、そのシステムエンジニアの収入はかなり高かったようです。

私は、派遣で入っていたので、作業によって収入が変わることはありませんでしたが、話によると、その会社のプログラマーの1.5倍ほどの収入があったようです。

大企業のプログラマは、多くが派遣やSESでパートナー企業から集められたプログラマでした。

そこに、その企業の経験の浅いプログラマが参加することで、プログラマとしての経験を積むような構成となっていました。

大企業のプログラマは、プログラマとしての経験を積んだのち、システムエンジニアに移行していきます。

中小企業のシステムエンジニアとプログラマの違い


中小企業でのシステムエンジニアとプログラマの仕事には違いがありません。

中小企業では、上流工程から下流工程まで全てを行わなければなりません。

小さい企業では、上流工程から下流工程まで一人で作業することもあります。

これは、プログラマとしては、経験が積める機会多いとも言えます。

しかし、これまで大きな企業でシステムエンジニアとして、上流工程のみを経験してきた人にとっては、このような環境は難しいかもしれません。

収入についても、残念ながら上流工程と下流工程で変わることもありません。

では、どのようにして収入を上げるかというと、1度にひとりでどれだけのプロジェクトを請け負えるかで上げることができます。

なので、経験を積みたいプログラマには、中小企業は打ってつけなのです。

しかし、新卒で中小企業に入社すると、最初からプログラマとしての仕事ができるとは限りません。

中小企業においては、新卒で入社しても、短期で業務へ着けることを求められます。

これは、新卒で社会に出た人にとっては、結構、苦しいことかもしれません。

また、最近は、転職でプログラミングを勉強し、中小企業の募集へ応募してくる人もいます。

その場合はもっと苛酷かもしれません。

中途で募集している中小企業は、即戦力のシステムエンジニアやプログラマを求めています。

つまり、上流工程から下流工程をすでに作業できることを求められるのです。

では、転職してプログラミングを勉強して、中小企業のシステム会社に入れないのかというと、そうでもありません。

プログラマとしての経験がなくとも、前職での経験が中途の人にはあると思います。

そのため、前職での経験を交えて自分の価値を主張することで、中小企業のシステム企業に入ることは可能だと思います。

まとめ


システムエンジニアとプログラマでは、一般的に作業は分けられています。

しかし、実際にシステムエンジニアとプログラマの作業が分けられているのは、大きな企業の場合だけです。

中小企業のシステムエンジニアとプログラマには、ほぼ区別がありません。

なので、就活する際には、大企業を目指すのでなければ、システムエンジニアとプログラマを切り分ける必要がないのです。

ちなみに、私は、プログラマを肩書きとしています。

これは、IT業界では、システムエンジニアとプログラマの違いを理解できるのですが、一般的には、システムエンジニアという肩書きが曖昧に捉えられるからです。

プログラマだと、一目で仕事内容が分かりますよね。

では、今日はこの辺で。