This post is also available in: English-US (英語)
先日、大阪府内のとある高校にてお話をさせていただいた時の資料を、軽くコメントをつけて公開しています。
明快さ・分かりやすさを重視しているので、詳しい内容については掘り下げて調べてみてください。
SE(システムエンジニア)/プログラマ関連の話題については色々なところで議論されていて賛否両論あるとは思いますが、あくまで個人的な考えだということでお願いします。
Contents
SE(システムエンジニア)/プログラマ業務の大まかな内容
web系
webアプリケーション・ソーシャルゲーム・スマートフォンのアプリなど
業務系
回転寿司屋さんの注文システム、エクセルのプログラミング、企業の業務管理するシステムなど(経理・販売管理)など。
組み込み・制御系
ATM(現金自動預け払い機)、LOPPI(ローソンにあるチケット買ったりする機械)、家電や携帯電話、自動車など。
SE(システムエンジニア)の仕事内容とプログラマの違い
基本的にSEは設計する人、プログラマはプログラム書く人
SE(システムエンジニア)はお客さんの業務に関しての知識と設計に関する仕事を中心に、プログラマはプログラミングの設計とプログラムを書くことが仕事の中心。
開発の流れは以下のように進む、一般的に「プログラミング→テスト」以外はSE(システムエンジニア)の業務範囲。
ヒアリング→要件定義→設計→プログラミング→テスト→ローンチ
一般的なキャリアプランとしてはプログラマからSEとしてマネジメント・営業職という流れ。
プロラミングしないSE(システムエンジニア)もいる。ただし、人並み以上にコミュニケーション能力に長けてるとかでなければ生き残ることは難しい。
世間の流れ的には、アメリカのようにプログラマがヒアリングから要件定義・設計・プログラミング・テスト・ローンチまでする方法をとる会社が増えている。
ソーシャルゲーム・アプリがどんな感じで作られているかについて
会社の中に、少人数のチームが複数集まっているというイメージ。プログラマーとデザイナーが数人で1チームを組む。
もちろん、大規模なソーシャルゲーム・アプリとかは規模に比例してチームの規模も大きくなる。
開発の流れは、一部の優秀なプログラマがメインのシステムを担当して、あとのプログラミングは作業に近い。
一般的には一部の優れたプログラマが作成したライブラリ(物理演算とか)を利用して開発する。ライブラリは数学の二次方程式の公式のようなもの。
公式があればあとは具体的な数字を入れて解くだけとなり、ほとんどのプログラマの作業内容となる。
大学の学部とSEとの関連分野について
ここらへんの話は、実際に大学にいって話を聞いてみたりするほうが早いかもしれません。もっと幅広い分野に渡っていると思います。
医薬系
カルテを管理する医療システム。レントゲンやMRIなど。
理学部
新しいアルゴリズム分析手法・機械学習の基礎・コンピューターを利用した研究など。
農学部
バイオインフォマテクス(生命情報学)など。
工学部
IOT(モノのインターネット)・家電メーカー・人工知能・金融工学など。
経済・経営学部
ビジネスのための業務システムなど。
文学部
プログラミングしないSEなど。(大企業においては必要とされると思いますが、中小企業では相当優秀でないと必要とされないと思います。)
ITの応用分野について
こんな分野があるんですよ、ということで。深く掘り下げたい人はGoogle先生に聞いてみてください。
人工知能(機械学習)
ビッグデータ分析
検索エンジン
音声認識・手書き文字
コンピュータービジョン
レコメンドエンジン
バイオインフォマティクス
金融工学
モノのインターネット
スマート家電
自動車への応用
スマートグリッド(電力網のことなんですが、日本では微妙かも)
3Dプリンティング・スキャナー
組み込み機器のプロトタイプ制作(arduino,RasberryPy)
モノのインターネットとの連携(androidなど)
バーチャルリアリティ
Oculus Rift(ヘッドマウントディスプレイ)
訓練用のシミュレーション
IT業界で起業したいと考えている場合
よく聞かれるので、軽いコメント形式で。
悩んでいる間は、まずは大学行って就職したほうがいい。
100%完璧な事業計画だと思っても、後々変更になることがほとんど。世の中にはランダムで予想外なことが思っている以上に多いから。
もし起業したいと思ったら、まわりの友達や家族を説得してみて、それから考えてみるほうがいい。
まわりの人を説得できないくらいでは起業するのは難しいから。
起業にも極端に分けると2種類あり、一般的にベンチャーやスタートアップと呼ばれるM&A(合併・買収)や上場を目指すパターン、あとそれ以外のやりたいことをやるために起業する・生活費を稼ぐため・時間的な自由を手に入れるためなどのパターン。
M&A(合併・買収)や上場させたいというのでなければ、学生・社会人でも片手間でできることをしたほうがいい。
専業か片手間かどうかはあまり重要ではなく、顧客(お客さん)にどれだけの付加価値を与えられるかどうかが重要。特にシステム関連の分野はコンピューターの力で効率化することが可能な分野。
大学進学や就職したほうがいいかは、自分の目で見て判断するべき。
人それぞれ価値観やバックグラウンド、好きなことが違う。人の意見を参考にしつつ自分の目で見て体験して決める必要がある。周りの人がなんと言おうとも、自分の目で見て体験したこと以外は妄信しないでください。
大学・大学院で学ぶことは、経営者でもプログラマになっても基本的に必要なことと考えておいたほうが良いし、ある程度のレベルになるとどっちにしても学ぶ必要が出てくる。
結局は、常に勉強し続ける必要がある。
大学に行くべきかどうか悩んでいる間は、とりあえず大学行ってから就職するレールに乗っておいたほうが苦労はしないと思います。
SE(システムエンジニア)の将来性について
SE(システムエンジニア)の需要よりも、おそらく人口問題(人口構成比)の方がより影響を受けると予想されます。
考えている以上に日本はヤバいという意識を持って、社会の先生に詳しい話を聞いたり、海外に目を向けることをおすすめします。
参考:国立社会保障・人口問題研究所-日本の将来推計人口
http://www.ipss.go.jp/syoushika/tohkei/newest04/point.pdf
日本全体が低迷する時に、日本国内のシステムに関するSE(システムエンジニア)の需要を考えるのはナンセンス。
IT系の業界は海外に展開しやすい分野のひとつなので、海外展開している会社などはおすすめです。
オフショアでプログラマが不要になるという説について
優秀なプログラマは不要にはならないという考えが一般的です。現時点でもそうですが、並みの能力のプログラマや、プログラミングできないSE(システムエンジニア)については一部の大企業に勤めているケース以外は生き残るのが難しくなっていくと思われます。
また、システム開発が簡易的になるにつれて、プログラマ・SE(システムエンジニア)の職は同化していく流れにあります。
防衛関連などの機密性が重視される分野についてはオフショアに任せるのは難しいので、日本人に優位性があるので狙い目かもしれません。