orangeitems’s diary

クラウドで働くエンジニアの日々の感想です(ほぼ毎日更新)。

システムエンジニアにはなるべきではない論を読んで語ってみる

f:id:orangeitems:20190512165202j:plain

 

システムエンジニアになっちゃダメな理由?

システムエンジニア歴20年強の私が通りますよ・・。

(とはいえプログラミングはやらないインフラエンジニアだけど)

 

www.virtual-surfer.com

「今こそ、エンジニアになるべき!!手に職つくし、ある程度勉強してフリーランスとして案件こなせるようになれば誰でも月に数十万円は稼げるぞ!」

こんなツイートがTwitterのタイムラインで増えてきたので、エンジニア歴3年目になった立場から「いつかエンジニアになりたい!」と思っている人がエンジニアになるべきじゃない理由をまとめておく。

(中略)

 

読んでみて、過去のIT業界の歴史を踏まえて感想をまとめます。

 

感想

①エンジニア職はある程度勉強すれば誰でもなれるようになってしまった。

20年前は、勉強しなくてもなれました。

私が新入社員研修を受けた時、40名ほど同期がいました。情報系の学校を卒業した人は一人もいなかったのは実話です。入社前に基本情報処理技術者試験(当時は第二種と呼ばれていた)の準備をしておくよう会社から指示があったのに、実際に受験して合格したのは私を含む2名だけ。研修中に自習時間すらあったのに・・。

昔はこのように、入社してから勉強するものだったのですが、最近はさすがに「ある程度勉強しないと」なれなくなったのだなあと感慨ひとしおです。

誰でもなれるのに、「フリーランス!給料は高く!」というのは確かに夢を見すぎだと思います。相変わらず現在も、IT業界に入るだけなら広き門なので、とりあえず関連企業に入り、腕を磨く必要があります。何か教材をかじっただけで勉強が身に付くはずはありません。フリーランスでバリバリ活躍している人たちは、納期に追われ、発注元に責められ、深夜休日も時には働いて、それを切り抜けてきた猛者たちが集っています。勉強することはまず1番目ですが、2番目はまずは正社員としての就職だろうなあと思います。

また、中高生のプログラミングの能力ですが、仕事としてのスキルととらえると、ビジネス経験が全く足りません。ゲームを作るとしても決済の知識や契約の知識が必要になります。業務アプリなら、業務知識も必要です。したがって社会人としての強みを出すならば、現在の仕事上の業務知識を活かして、プログラミングを交えて新しいデジタルプロセスの仕組みを考えたり生産性を向上させたりするのが近道となると思います。単にプログラムが組めるといっても、そこから何を作るのかというのがごっそり抜けています。

結局、何らかのプロセス・フローを自動化しロジックを構築するのがプログラミングです。それを考える力って、実はプログラミングとはまた別の、発想力・創造力・発見力だったりします。単に降ってきた要件を実装するだけのプログラマーではなく、要件を発注先もしくは自分自身に問い、整理し、実装できるプログラマーが、シリコンバレーで言うところの年収2千万のような世界に通じていると想像しています。

※プログラマーとシステムエンジニアの違いはあえて曖昧に書きました。ご了承ください。どちらにしても同じだと思っています。

 

②日々新しい知識を勉強し続ける必要がある。

二十年前から同じです!。

ただ、大事なことをお話しします。

基礎がしっかりあれば、業務時間内で新しい知識のキャッチアップは十分できます。基礎がない若いうちは、業務時間外であっても勉強し続けるのが吉です。なぜなら、年上の人たちに舐められるからです。若いと何も知らんだろうと。若いからこそ裏でチートして、ベテランが休んでいるうちに最新の知識をたくさん本を読んだりして身に着けるのです。そうすると、「彼は若いのにできるヤツだ」なんてベテラン勢が過剰評価してくれてなんでもやりやすくなること請け合いです。

そのうえで基礎ができ、そのうえで仕事を重ねていくとそのうち仕事そのものが新しい知識の勉強になってきます。新しい仕事自体はどんどん新しい知識の上に成り立ってくるものなので、仕事さえしていればいい状態になります。そこからは、あえて好きでもない業務外の勉強をしなければいけないというものではありません。中には本すらない新技術もあるので、基礎は大事だなあと思います。

まとめると、

・若いうちは基礎をしっかり固める
・若いうちは業務時間外に勉強してチートして、ベテランに舐められないようにする
・ベテランになれば(若いうちにちゃんと勉強しておくことで)仕事内で完結できる

ということですね。また、ベテランになるとIT業界のことでだけではなく、いろんな社会のことを知らなければいけないので、勉強ばっかりやっている時間もなくなりますかね。

また、新しいことを学ぶことができない人はどんな世界ですら淘汰されていく厳しい時代にすでになっています。システムエンジニアだからということはないと思いますね。

 

③エンジニア職はグローバルで競争にさらされるようになる。

あー、これは10年前くらいから。オフショア開発というのが流行したころから言われていることです。

 

こちら、2005年12月の記事。流行はこのころからですね。

 

www.atmarkit.co.jp

 「コスト削減効果やオーバーヘッド、品質、納期などを疑問視する向きもあるが、オフショアで企業の競争優位が高まるかというと、答えはイエス」。ガートナージャパンのガートナーリサーチ ITマネジメントグループ 主席アナリスト 足立祐子氏は12月1日、自社のイベント「Symposium/ITxpo 2005」で講演し、オフショアの有効活用を訴えたうえで「成功のためにはオフショアの最適な形態を採用するなどの3大条件が重要だ」と指摘した。

 中国ソフトウェア業界協会やNASSCOM、JETROなどのデータからガートナーが推測する日本企業のオフショア利用の規模は2004年で1204億円。足立氏によると日本のITサービス市場は8兆円。組み込みソフトウェア開発などを合わせると10兆円を超えると見られるので、オフショアの規模は「まだまだ小さい」。しかし、その分だけ「今後も成長の余地が多く残されている」という。

 

それでどうなったか。アジア圏の人件費が高くなってしまい、「安い労働力を活用しよう」なんて言ってられなくなってしまいました。

 

www.sbbit.jp

 かつては日本におけるオフショア開発は中国が多かった。しかし、最近は人件費が高騰し、コスト的なメリットは薄くなっている。特に上海や大連などの沿岸部は物価が高く、オフショア先としては難しいのが現実だ。

 次に注目されるのが、インドやバングラデシュなどの南アジア、ベトナムやミャンマー、フィリピンなどの東南アジアだ。この中で、インドはすでにコスト的に中国を上回っているという。また、インドとフィリピンは英語圏ということから、米国企業のオフショア先となるケースが多い。では東南アジアはどうだろうか?

 

一方で、コストが同じであれば、日本人が日本で仕事を請けるのは最も有利です。言葉や文化の問題をクリアしていますし、日本の教育を受けていますからね。

そういう意味では、競争はグローバルだけれども、日本の市場で考えればそこまで大きな問題にはならないと思います。

まあ、超高度なレベルの仕事であれば違うでしょうけれども・・。そういう場合は、そもそも発注者すらグローバルビジネスをしている大型資本でしょう。フリーランスとは話がつながってこないと思います。超高度なレベルの業務を行っている企業に就職するほうが早いかなあと。

だから、普通のシステムエンジニアやプログラマーになるのは、簡単。グローバルに活躍する超高度なそれになるのは、そりゃあ難しいに決まっている。前者だけでも食べていくことはできると思います。将来性もありますし。

 

④エンジニアにならなくてもプログラミングはできる。

システムエンジニアとプログラマーの違いの議論は置いておいて、日本でIT業界の仕事をするなら、初めはシステムエンジニア職を希望するべきでしょうね。

本業じゃなくて身に着けるプログラミングスキルなんて、ビジネスのレベルではリスクが大きすぎます。それが怖いので、日本の企業はIT企業にアウトソーシングしているところばっかりです。

最近はそれをやりすぎて、ビジネスそのものがデジタル化しつつあり社内が空洞化した反省をこめて、社内のIT部門を強化する流れにあります。ただ、非ITの会社でITの勉強をするのって至難の業ですし、会社がお金を出してくれません。それより、元IT企業のシステムエンジニアを中途採用で雇っていきなり情報システム部長になるのがここ数年の黄金転職パターンです。

企業の情報システム部長さんに話を聞くと、「実は元〇〇〇」(※有名なIT企業)であることがよくあります。

 

エンジニアになること自体は難しくない。極端に言えば、無報酬でもいいならどこかの会社でインターンさせてくれと働かせてもらうことはできるだろう。でも、「エンジニアとして働くこと」と「エンジニアとして価値を出し、活躍すること」の断絶はめちゃくちゃ大きい。

そこまで業界はひっ迫していないかなあ。ちゃんとお金払いますし研修も必要なら受けさせますかね。お金を支払う以上は結果を求めるのも、どこの業界でも一緒かなと。

 

⑤あなたは実は、プログラミングよりもネットサーフィンが好き?

もはや、二十年も業界にいると好きとか嫌いとかではないかなあ・・。

ただ「向いていた」というのは非常に大事な要素ですね。好きではなくても、向いていれば楽しいですよ。ある私が知っているシステムエンジニアの人は、仕事はできるけどパソコンを家に持っていないそうです。見たくもないそうです。向いていたけど好きではないんでしょうね。

ただ、向いていないのにやるべきではないです。

どうやって向いているかどうか、これは自分を知るしかないのですが、周りと比べるというのは良い方法だと思います。同じことをやるのに、なぜか努力をあまりしなくても人よりできたり、褒められたりする。それって、生産性が高いということですね。こういう分野が最も向いています。

人それぞれ、向き不向きがあるので社会は多様化するし、それに合わせてぜひ職業選択するべきかなあと思いますね。

好きだけど、向いていない人、と言うパターンも実際には冷酷に存在していて・・。それはお勧めしません。

 

まとめ

以上、いろいろと私の考えをまとめてみました。

言ってることは林修さんと似てるなあ・・。

 

next.rikunabi.com

うまくいった人と行かなかった人の差? それは運ですね。人生は博打ですから。ハイリスクハイリターン。一か八かの勝負です。

ただし、その勝率を上げることはできます。それは、「勝てる場所で誰よりも努力すること」なんです。

 

すごく向いている人ってたまに見かけますけど、成長力ってすごいですから。

誰にでも薦められないのは、向いていない人にはとことん厳しい世界だから。でも薦めてみたいのは、たまにすごく向いている人がいて感動的な仕事をするから。

私のまとめとしては以上です。