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

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

では、今日はこの辺で。


2020年5月5日火曜日

在宅勤務での課題



こんにちは。

久々の更新となってしまいました。

最近、SNSを見ていると「在宅勤務で疲れた」と言う意見がよく見られます。

実は、私も在宅勤務で疲れを感じていたりします。

まずは、現状について整理しますね。

2020年4月7日に、新型コロナウィルスによる緊急事態宣言が発令されました。

このブログを記載している2020年5月4日現在、緊急事態宣言が2020年5月31日まで延長がほぼ確実をなっていす。

ほとんどの企業に於いては、緊急事態宣言により在宅勤務を余儀なくされています。

つまり、ほとんど準備の時間がなく在宅勤務を行うようになった企業が多いと思います。

私が勤めている会社も、緊急事態宣言を期に社員全員が在宅勤務をするようになりました。

そして、みんな多かれ少なかれ疲れを感じているようです。

私は、プログラマーです。

IT業界で仕事をしているので、情報はほとんどがクラウド上で管理されています。

個人データは、社内のサーバーで管理されていますが、その他の情報は社外からでも取得できるように設定できるので、在宅勤務をするには最適な環境にいたのです。

つまり、作業時に必要な情報にアクセスできず、ストレスがたまることは、ほぼないのです。

では、何故疲れを感じてしまうのでしょうか。

新型コロナの終息には、まだまだ時間がかかりそうです。

なので、ここで個人として、企業として課題を整理してみたいと思います。

個人の課題


まずは、個人の課題です。

ストレスが溜まる理由は、個人の問題です。

結論を言うと以下になると思います。
  1. 運動不足
  2. ストレス管理
  3. 環境作り
個人の課題としては上の3点になるのではないでしょうか。

上の3点を上手く管理することで、少しは在宅勤務を快適に行えるようになるのではないでしょうか。

1.運動不足

在宅勤務をしていると、普段よりも運動量が減ります。

これまでは、通勤で知らず知らずに運動できていたものが、全くの0になるのです。

だからと言って、今は、ジムに行って運動することもできません。

「私は、ムキムキの筋肉は欲しくない」と言う人もいるでしょう。

しかし、在宅勤務をしていると、本当に運動する機会がなくなってしまいます。

運動をしないと、筋力が落ちますし、体力も落ちてしまいます。

なので、自宅でできる筋トレをするようにしましょう。

軽い筋トレをするだけで、筋肉の低下を防ぐことができますし、少なからずストレスの解消となります。

2.ストレス管理

では、次に課題となるのは、自分のストレス管理です。

自分のストレスと言うのは、あまり分からない場合があります。

隠れたストレスが溜まると、体調に異変が出てくることがあります。

そこまでくると、ストレスがストレスを呼び、悪いスパイラルに陥り、末には、適応障害やうつ病へとなってしまうのです。

私は、以前にもブログで書いたように適応障害を発症したことがあります。

未だに、私は薬を飲んでいる状態です。

私のことはさて置き、在宅勤務を行っていると、たくさんのストレスに晒されます。

誘惑に耐えるだけでも、大きなストレスになります。

もちろん、会社で仕事していても、多くのストレスに晒されますが、在宅勤務で働いていても、また違ったストレスに晒されます。

3.環境作り

残念ながら、私は、現在の状況は長期化すると考えています。

新型コロナウィルスの治療薬は、現在のところありません。

そのため、緊急事態宣言が今後、段階的に解除されたとしても、感染者を0にすることはできないでしょう。

感染者がいる以上は、今後、再拡大する可能性が残ってしまいます。

そうなると、在宅勤務ができる環境を自分で作る必要があります。

ソフト的な対応は、今回の在宅勤務で大体が整ったのではないでしょうか。

なので、今後は、自宅に快適に仕事できる場所を作れるように考えてみましょう。

少なくとも、ストレスを受けずに作業できる環境を作ることが課題となります。

もし快適に仕事ができる環境が自宅に作れると、新型コロナが終息したとしても、通勤して事務所に行って作業するメリットも減るのではないでしょうか。

企業の課題


では次に、企業の課題について考えてみたいと思います。

企業側としては、社員を新型コロナウィルスから守らないといけないので、在宅勤務できる環境を作り、社員のリスクを減らさないといけないですよね。

では、まだまだ新型コロナが終息しないとなったら、企業としてどのような課題があるのでしょうか。

結論から言うと以下の3点になると思います。
  1. タスク管理
  2. 新しい働き方の検討
  3. アフタコロナ
上の3点は、私が考える課題です。

でも、これまで在宅勤務を行ってこなかった企業に取っては、検討が必要となる課題ではないでしょうか。

1.タスク管理

これまで、事務所へ社員が出社して作業すると言う一般的な企業では、社員の作業時間を管理していたと思います。

でも、在宅勤務となると、作業時間を管理する意味ってなくなってくるのが分かるのではないでしょうか。

必要なのは、社員がどの作業をしているのか、今どのくらいの進捗なのかといったことだと思います。

在宅勤務でも作業時間を管理することは可能です。

例えば、作業時間中は、zoomやskypeでビデオ通話を有効にしておくことで、社員が作業しているかを監視することができます。

でも、zoomやskypeはサードパーティのサービスなので、サーバーが止まることも考えられます。

また、ネットワークの不調で接続できなことあるでしょう。

監視されている社員も、常に監視されているとストレスを溜めてしまうかもしれません。

つまり、作業時間を管理するのは、在宅勤務では非効率なのです。

それよりも、作業を小さなタスクに分割して、その進捗を管理する方が効率的だと思いませんか。

直接ミーティングが必要な場合のみ、zoomやskypeを繋げば十分だと思います。

ただ、これまで作業時間を管理していた企業が、すぐにタスク管理に切り替えることは難しいかもしれません。

でも、長期で在宅勤務が続くことを考えると、タスクを管理する方向へシフトする検討が必要になると思います。

ちなみに、IT業界では、タスクで作業を管理するやり方を長年してきました。

もし、タスクで作業を管理する導入する方法が分からないのであれば、知り合いのIT業者に相談してみてはどうでしょうか。

いろいろと良いアイデアを貰えると思いますよ。

2.新しい働き方の検討

次は、新しい働き方の検討です。

在宅勤務と言うのは、新しい働き方の1つですが、それ以外の働き方と言うのも検討する必要が出てくるのではないでしょうか。

次の、アフタコロナにも繋がるのですが、在宅勤務が可能となると、新型コロナウィルスが終息したからと言って、社員はこれまで通り、事務所で働きたいと思うでしょうか。

毎朝、満員電車に乗り事務所で作業することの意味が、なくなるのではないでしょうか。

そうなると、事務所を構える意味も違ってくるのではないでしょうか。

それどころか、社員が事務所に通勤可能な地域にいる必要なくなるのではないでしょうか。

つまり、全国から社員を受け入れられると言うことです。

もっと言えば、世界から社員を受け入れるのも難しくないかもしれません。

世界からとなると、時差の問題などがあり、いろいろと考える必要があるとは思うのですが、極論で言えば、世界中の優秀な人材を受け入れることが可能になるのです。

なので、現在だけでなく、将来に目を向けて、新しい働き方と言うのを今検討しておいた方が良いのではないでしょうか。

3.アフタコロナ

では、最後に企業として最も大事なアフタコロナの対応についてです。

現在、新型コロナの影響で経済も低迷していますよね。

新型コロナが終息したからと言って、経済がそれまでのように上がってくるかと言うと、私はそうは思いません。

つまり、経済はそのまま低迷状態が続くのではないでしょうか。

そうなると、金融崩壊やリーマン・ショックの時のように、それまでの売り上げは期待できなくなるのではないでしょうか。

なので、今のうちから、新型コロナの終息後の事業を検討する必要があると思います。

企業にとって、事業のシフトと言うのは、結構大きなことだと思います。

でも、新型コロナが終息するのを待っていると、本当に手遅れになりますよ。

特に中小企業にとっては、景気の低迷は、大きな影響を受けてしまいます。

少しの間は、政府の助成金などがあり、やっていけるのかもしれませんが、助成金が長期に渡って支援してくれるとは思いません。

なので、今のうちに、新型コロナが終息した後の事業について検討しておきましょう。

もし、新型コロナが終息した後に景気がV字回復したとしても、景気が低迷する時期は必ず来ます。

それが直ぐでなかったとしても、先に検討しておくことは重要だと私は思います。

まとめ

今回は、プログラマとしての意見ではなく、現状から考えらることについて書いてみました。

個人として、快適に在宅勤務ができるように考えておくことは、今後の働き方にも影響してくると思います。

また、同じような、世界的な疫病や景気悪化などが起きた時の準備にもなると私が考えています。

今は、初めてばかりのことで戸惑っているかもしれませんが、自分が社会人になって直ぐの頃のことを思い出してください。

おそらく、同じ心境だったのではないでしょうか。

今は辛い時期かもしれませんが、この世界的な疫病にみんなで頑張っていきましょう。

この経験は、必ず良い経験になると私は信じています。

では、今日はこの辺で。

















2020年4月17日金曜日

SESのメリット・デメリット


こんにちは。

今日は、SESのメリット・デメリットについて書いてみます。

私は、プログラマーとして社会に出てからずっと派遣でお客様の事務所に常駐して開発を行っていました。

当時は、特定派遣でしたが今はもうないですね。

今は、SES(システム・エンジニアリング・サービス)としてお客様先に常駐して開発するスタイルになっています。

SESの契約形態は、準委任契約になります。

私も、最近までSESでお客様先に常駐していました。

経験年数でいうと、10年以上自分の会社ではなく、お客様先にいたことになります。

もちろん、同じお客様ではないですけど、自分が勤める会社の中で開発するという経験の方がトータルでは少ないです。

SESの経験は十分にあるので、そのメリットやデメリットは十分に理解しているつもりです。

これから、プログラマーとして働きたいと考えている方や就職活動中の方には、SESは選択肢の一つになるとなる業務でもあると思います。

なぜかと言うと、中小のシステム企業は、ほとんどがSES業務を取り入れているからです。

これから、プログラマーを目指すのでしたら、以下の記事でIT業界について理解を深めてからの方がいいかもしれません。


前置きが長くなってしまったので、早速説明していきますね。

デメリット

「いきなりデメリットかよ」と言う声も聞こえてきそうですが、実際に長くSESでお客様先へ常駐しているプログラマーに聞くと、デメリットしか聞こえてきません。

なので、先によく聞かれるデメリットを説明しておきます。

結論を言うと以下の3点です。
  1. 技術力が偏る
  2. 自分のポートフォリオとして公開できない
  3. 契約更新が近づくと不安
この他にもデメリットは聞かれるのですが、デメリットとしてのよく聞くのはこの3点です。

1. 技術力が偏る

まず、長期でお客様先に常駐すると、その企業の開発手法はできるが、他では通用しないようになります。

よく使われる開発手法は、ウォータフォールモデルとアジャイル開発です。

以下の記事でそれぞれの詳細を書いてますので、読んでみてください。



企業は、上の開発手法をベースに、いろいろと改善を繰り返し、独自の開発手法を持っています。

そのため、SESとして長期で同じ企業に常駐すると、その企業の独自の開発手法に慣れてしまい、他の開発手法での開発が難しくなったりします。

特に、ベースとなる上の2つの手法が異なると、プログラマーとしては、その開発手法に慣れるのに苦労するでしょう。

と言うか、私は両方とも経験してきたので、ベースとなる開発手法が変わった時の苦労はよく分かります。

技術力が偏ると言うと聞こえが悪いですが、その企業での開発には精通していることになるので、その企業での開発に必要なプログラマーになっていると言うことなので、そんなにデメリットではないと私は思っています。

ただ、SESのデメリットとしては、一般的によく聞かれることです。

2. 自分のポートフォリオとして公開できない

SESで常駐する企業は、大手のシステム企業、もしくは、大手のシステム開発を請け負っている企業が多いです。

そうなると、業務につく際、守秘義務契約を結ぶ必要があります。

契約内容には、システムに関する一切の口外が禁止されています。

この契約は、契約終了後も有効になるように記載されていることが多いため、自分のポートフォリオとして公開できないのです。

大きなシステムの開発や有名なシステムの開発に携わったとしても、そのことを公開できないのです。

できるのは、そこで培ったプログラム言語能力のみとなります。

自分のポートフォリオに公開することができないのですから、「そのプログラム言語使えますよ」としか言えないのです。

守秘義務契約を結んでシステムの話を口外すると、大変なことになりますので注意してくださいね。

数年に1度程度ですが、守秘義務違反で問題になるケースを耳にしますので、これからプログラマーになる人は、しっかり注意してください。

3. 契約更新が近づくと不安

同じお客様先に長期で常駐していると、お客様とも仲良くなり、契約満了で次のお客様先へ移動となるのが不安になる人がいます。

それに、SESでシステム開発をした場合、納品までそのシステムに関われずに移動となることが多いです。

ガッツリそのシステムの開発に携わると、システムに情がわくこともあります。

「えっ!」って引かれるかもしれませんが、自分で作り上げたシステムは可愛いのですよ。

そのシステムが社会へ投入されるとことを見れないと言うのも、不安になる原因の場合があります。

私がSESで常駐していた頃も、契約更新の時期になると不安になってました。

特に、プロジェクトの工程の境目の時期は、次の工程がどの程度の規模かで人を入れ替えるお客様が多いので不安になってましたね。

ブラックな企業だど、契約更新の数日前に継続が決まったり、契約更新を忘れられたりします。

通常は、1ヶ月前までに継続するのか、移動するのか決まります。

契約更新が数日前にならないと分からないような企業は、ブラックな企業と思って問題ないと思いますので、ちょっと考えた方がいいかもしれませんね。

メリット

実は、SESでお客様先へ常駐してシステム開発することには、結構メリットがあります。

私が、ずっとお客様先で常駐してシステム開発していたのも、メリットが大きいと思うところがあったからです。

先に結論を言ってしまうと、以下の3点になります。
  1. 経験を積める
  2. いろんな人に会える
  3. いろんなシステム開発に携わることができる
この3点は、私が長年お客様先に常駐してシステム開発をやっていて、メリットだと思ったうちのトップ3です。

1. 経験を積める

SESの1番のメリットは、これでしょう。

プログラマーの経験が浅いうちは、いくらプログラミングができると言っても、経験が浅かったらあまり仕事をもらえません。

まずは、経験を積むことです。

自分が勤める会社で請負開発をやっているのなら、そこで経験を積めると思います。

しかし、請負開発って結構リスクがあるんですよね。

システムの品質の問題とか、セキュリティの問題とか、考えないといけないことがあるので、それなりに経験を積んだ人がいないと難しいと思います。

それに比べて、SESでお客様先へ常駐してシステム開発していると、その企業には、開発するシステムに精通した人がたくさんいます。

つまり、自分が経験の浅いプログラマーであったとしても、聞ける人がたくさんいるんです。

経験者がたくさんいるって安心しますよね。

そこで、経験者の知識を吸収しながら経験を積むと言うことは、経験の浅いプログラマーには格好の環境だと思います。

SESで常駐し3年もシステム開発を行っていると、結構な経験を積むことができます。

経験を積むと、自分のできる範囲が広がるので、だんだんと面白くなってきます。

ただし、長期で同じ企業に常駐していると、次第に上に書いたようなデメリットが目についてくるので、ある程度できる範囲が広がったところで常駐先の企業を移動することをお勧めします。

2. いろんな人に会える

SESでプログラマーを入れている企業は、ある程度の規模を持った企業です。

そのため、同じようにSESで集められたプログラマーがたくさんいます。

経験を積んだ人や、経験が浅い人、それに、面白い経験を持った人などがたくさんいます。

そういう人たちと会えると言うのは、SESのメリットの一つだと私は思っています。

特に、いろんな経験を積んだ人の話を聞くのは面白いですよ。

いろんな人たちに囲まれて作業していると、開発経験だけでなく、人生経験も学べたりします。

私の場合だと、フリーランスのプログラマーに多く会いました。

フリーランス のプログラマーには、結構苦労している人や、月に結構な額を稼いでいる人もいました。

私は、大手の企業へ常駐していたので、たまに有名な方とばったりと言う経験もありました。

いろんな人と会えると言うことは、いろんな意味で刺激になるんですよね。

将来、どんなプログラマーになりたいとか、どんな人生を送りたいとか、結構参考になることが多いです。

また、いろんな人と知り合いになっておくと、仕事がその方を通じて入ってくることもあるので大事にした方がいいと思います。

3. いろんなシステム開発に携わることができる

長期で同じお客様先に常駐していると、上に書いたようなデメリットが顕在化してきます。

そのため、私は、長くても1年程度で常駐先の企業を移動するようにしていました。

でも、常駐する企業によっては、開発のスパンが短くて、いろんな開発に携わることができます。

そう言う場合は、少し長くいてもいいかもしれません。

私も、開発スパンが半年とか3ヶ月とか回転の早い開発を行っている企業にいたことがあるのですが、その企業には5年ほどお世話になりました。

でも、やはり、長期で同じ企業に常駐するのはお勧めできません。

開発手法は同じなので、やはり技術力に偏りが出てしまいます。

経験を積んでいろんなシステム開発をしていくと、たまに、すごく大きなシステム開発に携わることができる時があります。

詳しくは書けないのですが、大手企業の有名なシステムの開発とか、みんなが普通に使っているアレの開発とかですね。

有名なシステムの開発に携わって、そのシステムを使っている人を見たりすると、結構嬉しかったりします。

自分が作ったこの機能が、今目の前の人が使ってるとかなると、微笑んでしまっていたりします。

つまり、SESでお客様先へ常駐してシステム開発をしていると、いろんな経験ができるのです。

まとめ

SES業務には、確かにデメリットがあります。

でもそれは、長期で同じ企業に常駐した場合の話です。

経験の浅いプログラマーにとっては、経験を積めて、いろんなシステム開発で、経験を積んだ人とコミュニケーションをとることができるのです。

そう考えると、デメリットだけに目を向け、SES業務を避けるのではなく、ある程度の経験を積む間、SESで経験を積むことは、今度、プログラマーとして働くための十分な経験になると私は思っています。

これからプログラマーを目指す人や現在就活中の人は、中小のシステム企業で、あえてSESで常駐することを考えてもいいと私は思います。

現在は、転職をすることは、普通にあることです。

SESで十分に経験を積んだ後で、転職をして大手のシステム企業へ入ることも選択肢としてもいいと私は思います。

最終的に自分の人生を選択するのは、あなた次第です。

このブログがあなたの選択の参考に慣ればと思っています。

では、今日はこの辺で。










2020年4月10日金曜日

プログラマーに向いている人は?


こんにちは。

数年前、新卒で入社した新人プログラマーに「私はプログラマーに向いてないみたいです。」と相談されたことがあります。

私も、プログラマーとして働き出したばかりの頃は、「自分にはプログラマーという仕事は向いてないな」と思いながま働いていました。

そして、気づけば約20年プログラマーとして働いています。

約20年働いていても、たまに、「自分には向いていない」と思うことがあります。

では、プログラマーに向いている人は、どういう人なのでしょうか。

結論を言ってしまうと以下になります。
  • PCを使うことが好きな人
  • 物作りが好きな人
  • 諦めないで続けられる人
おそらく、この3つを持っている人が、プログラマーに向いているのではないかと私は思います。

では、以下でそれぞれについて詳細に説明しますね。

PCを使うのが好きな人

私が初めてPCを使ったのは、大学に入ってからです。

もう20数年前のことです。

当時は、windows95で大学内にある情報室でWebサイトを見るのが大好きでした。

時間があれば、情報室に行ってWebサイトを見ていました。

今では、生まれた時には、すでに家にPCがあって、小さい頃からPCを触ってきた世代なんですよね。

人によっては、小さいことからPCでゲームをしていて、ゲームのチャットで仲間と話すことでタイピング力を磨いてきた人もいます。

つまり、最近の新人でPCを使うのが苦手という人は少なかったりします。

もう少しすると、PCを使うのは苦手だけど、携帯やタブレットなら抵抗がないという世代が入ってくるようになるのでしょうね。

ただ、プログラマーとして働くとなると、携帯やタブレットではなく、PCが好きでないと結構辛い作業になってしまうかもしれません。

実際の作業は、PCを使ってプログラミングする作業なので、キーボードに慣れていないとプログラミングするだけでストレスになるかもしれません。

物作りが好きな人

次に必要となるのは、物作りが好きかどうかではないでしょうか。

プログラマーの仕事は、結局、今ないシステムを開発する作業となるので、物作りが好きな人が向いているでしょう。

ただ、プログラミングができないと向いていないのかというと、そうは言えません。

結論を言ってしまえば、プラモデルを作るのが好きな人でもいいのです。

私も、小さい頃から何かを作るという作業は好きでした。

父親が大工だったので、作業場で端材をもらって釘を打ったり、ノコで切ったりしていました。

また、ミニ四駆を作ったり改造したりするのも好きでしたね。

そのような環境で育ってきたので、そもそも物作りが私に取っては楽しいものだったのです。

プログラマーが物作りを好きでないといけない理由は、システムを作るだけでなく、その先を考えられるかということにつながると思います。

物作りが好きな人は、作ったものでどう遊ぶかまで考えて作ります。

同じように、プログラマーも、システムを作りながら、そのシステムをどう使うと面白いか、どれくらいの速度で動作したら面白いか、といったことを考える必要があります。

プログラマーの中には、システムを作ることよりも、既にあるシステムの使い方を考える方が面白くなって、営業へ転職していく人もいます。

まあ、それも分からないわけではありません。

自分でプログラミングして作るよりも、既にあるシステムを組み合わせて新しいものを作って売った方が利益にもなりますし、システムの改修も自分でする必要がないですもんね。

諦めないで続けられる人

ここまで、いろいろと書いてきましたが、結局は、諦めないで続けられる人がプログラマーには向いていると思います。

これは、プログラマーに限らずどの業界でも同じですよね。

私も、冒頭で書いたように、今だに「自分には向いていない」と思ってしまうのですが、結局は、諦めないで続けてきたというのが、今の自分がある理由だと思っています。

向いてる、向いてないというのは置いといて、諦めないで続けられる人ってどの業界でも一人前になっていくものです。

なので、向いてる、向いてないを考える時間があるくらいなら、目の前の仕事をどんどんこなしていきましょう。

目の前の仕事に集中していると、時間はすぐに過ぎていきます。

気づけば、経験が積み上げられて、いつの間にかプロになっているものです。

諦めて辞めてしまうことはいつでもできます。

いつでもできる事は、あとでもいいじゃないですか。

まずは、今積み上げられる経験を積み上げていけば、転職したとしてもやっていけると思うのです。

逆に、経験を積み上げる前に辞めてしまう人は、どの業界でもやっていけないのではないでしょうか。

そういう人って、人から仕事が与えられるのを待っている人が多いんですよね。

本気でプログラマーになりたいと思っている人は、仕事を与えてもらうのではなくて、自分から取りに行ってるんですよね。

まとめ

上でも書いたように、プログラマーに向いている人は、諦めないで続けられる人なのです。

諦めないで続けていれば、知らないうちに一人前になっているのです。

ちなみに、私に相談してきた人は、今でもプログラマーとして働いています。

今では、プログラマーとして独り立ちして、現場でバリバリ働いています。

では、今日はこの辺で。