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字回復したとしても、景気が低迷する時期は必ず来ます。

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

まとめ

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

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

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

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

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

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

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

では、今日はこの辺で。