【転職】危険かも!?未経験からのプログラマーは破滅への第一歩

社会・人間関係

最近、いろんなところで「プログラミングスクール」を見かけます。

リモートワークが可能で、今のインフラに必要な技術として、需要は大きくあります。

私の周りにも「今はプログラミングを学んだ方が良いんですよね?」と相談に来られる方が少なくありません。

私は今でこそ心理カウンセラーとして働いていますが、

大学はバリバリの理系(工学部卒)で、その後エンジニアとして10年以上勤務していました。
職歴も下流工程から上流工程まで、
仕様検討、システム設計、プログラム設計、コーディング、単体テスト、結合テスト、システムテストなど、
プロジェクトリーダーも含め、様々な工程や役割を担当させていただきました。

そのおかげということもあって、
「もし心理職で生活できなくなったら、またあの業界に戻ろう」
と思える余裕も持てています。

そんな私の少ない経験ではありますが、エンジニアという仕事について少しお話ししてみたいと思います。

スポンサーリンク

給料

どちらかというと、良い方だと思います。
しかし、業界や会社に寄ります。

システム改修の少ない業界の保守などは、とても時間にも余裕があり、楽なところもあるようです。

しかし、スマホアプリやオンラインサービスの運営や保守に関するシステム開発などは、給与は良くても労働時間を考えるとどうかな?
と思うところもあります。
私が勤めていたところは、残業代は全額出してもらえる会社だったので、何の不満もありませんでしたが、
年俸制だったりすると、時給換算するととても安い労働になってしまう可能性もあります。

個人的には『IT土方』(「ひじかた」ではない)という言葉はすごくイメージしやすいワードでもありました。
そのくらい、精神と体力の力仕事な現場もあります。

知的労働とは思えないような現場もありますので、しっかりと会社の職員の声を調べた方が良いでしょう。

需要

「エンジニアは需要がある」と言われています。
確かにそうだとは思いますが、私の感覚では「イラストレーター」や「動画編集者」と同じくらいのものだと思っています。
なかなかその職で差を生み出し、自分の価値を高めるということは難しいと思います。

組込ソフトなど、資源に制限があるところではプログラミングスキルで差が作りやすいと思いますが、
需要のある業界では実際にプログラミングスキルは、そんなに差がでないと思われます。
エンジニアの世界で差がでるのは、
・広い範囲の知識を保有していること
・対象についての深い知識を有していること
・読みやすい設計書を書けること

の3点が大きいと思います。

プログラムを知っているだけでなく、そのプログラムの前後の流れを把握している方が、
より良いプログラムを書くことができます。

より良いプログラムとはどういうプログラムかと言うと、
拡張性、汎用性、保守性の高いプログラムです。

拡張性とは、例えば
「新しい機能を追加したい」
となったときに、用意に追加できるようなプログラムのことです。

どこにどうコードを入れたら、期待する機能の追加ができるのかが、一瞬で判断できるようなプログラムです。
また、影響範囲がわかり易くなっていることも重要です。

次に汎用性。
これは、「使いまわしができる」プログラムです。

例えば、『ログイン』機能のプログラムなどは、一度作成してしまえば、
ほとんどのログインが必要なサイトで使いまわしができます。

汎用性の高いプログラムが組めない場合、ログイン機能のあるサイトを受注するたびに、一からプログラムを組まなければならなくなります。

そして、保守性。
完璧なプログラムはおそらく存在しないと思います。
もし、何かしらの不具合があったときに、その不具合の特定がどれだけ早くできるのかがこの保守性の要件でもあります。
適切な箇所にログを仕込んだり、エラーコード設定を組み込んだりなど、
このあたりはプログラマーのセンスが問われるポイントです。
また、作成した本人でなくても読めるプログラムであることも重要です。

拡張性などは、
「今はこういうシステムだけど、のちのちはああいう機能を追加したいとか言われることもありそうだな」
などと、想像できる人であれば、最初から未来の仕様を想定したプログラムの組み方ができます。
これは、そのプログラムから作られるソフトやアプリの使われ方を熟知していないとなかなか難しいです。
こういう想像ができるのは、「広い範囲の知識を保有していること」が大きな要素になります。

汎用性も同じように、
「今回はこの業界のシステムとして組んでいるけど、これならあの業界でも使えそうだな。」
と想像できる人であれば、最初からその機能について使いまわしがしやすようにプログラムを組むことができます。

保守性は、実際にユーザーがどのように使用するのかを熟知していることで、
ある程度のエラー発生ケースは想像できます。
「そんな使われ方は想定していなかった・・・」
というような状況で不具合が発生してしまうと、
使った人も手順は覚えていないし、作った人もどんな使い方をされるか想像できなかったりするので、不具合の解消がかなり困難な状況に陥ってしまいます。
これは、「対象についての深い知識を有していること」が大事な要素になります。

この状況を迅速に華麗に対応していけるエンジニアは優秀と言っていも良いでしょう。

さて、最後に「読みやすい設計書を書けること」ですが、
給料の良いプログラムの仕事をしようとすると、複数人で大掛かりな作成をすることがほとんどだと思います。
あまり技術力に差がでないプログラマーよりも、どのプログラマーでも同じ解釈を、同じ出力を出せるプログラムを組めるような設計書を作成できる人の方が重要になってきます。

私の体験

私がエンジニアとして勤務していた時代はプログラマーの在り方の変化が大きかったように思います。

最初のころは、『オフショア』と言って、中国やインド、マレーシアなどのプログラマーを使ってシステムを作ることが主流でした。
理由は明白で、「単価が安いから」です。
「プログラムを作らせる」ということは、「単価を安く発注する」ということでもありました。
おそらく今の世の中でも開発費用をたくさんもらって受注し、プログラマーに安く作らせることをしている会社もたくさんあると思います。

しかし、その時代は長くは続きませんでした。
徐々に「ニアショア」という言葉を使うようになってきました。
ニアショアとは、日本で言えば「単価の安い日本人に発注する」というやり方です。

海外のプログラマーの単価が上がってきたため、
「そんなに安くならないんだったら、距離的にも言語的にもコミュニケーションがとりやすい方が良い」という状況です。

私自身も外注管理などの仕事をしていたので、
「プログラマーの世界って価値が下がる一方なのかな」
と思うようになってきました。
そんな中で優遇されるプログラマーは
作るものの理解がある
不足した情報を自分で補填できる
というプログラマーです。

同じシステムや製品の開発に長年携わっていたり、設計書には記載してなくても
「これ必要ですよね?」
「ここの検討は大丈夫でしょうか?」
などと、設計書のミスに気付けることはとても優秀だと思われます。

しかし、そのような検討漏れやミスのない設計書を作成できる人がいれば、
単価の高いプログラマーを雇わなくても、
単価の安いプログラマーに同じ品質のプログラムを組んでもらうことが可能になるのです。

実際プログラマーってどうなの?

将来性は無いけれど、安定性は期待できる。というところでしょうか。
おそらくプログラミングスキルを有していれば、どこかしらの会社に就職することはできると思います。
しかし、プログラマーをしていて収入が増えていけるのか?ということを考えると、何年たっても変わらないという可能性も十分にあります。
そして、その会社でのワークライフが良いものになるかどうかはわかりません。

それでも、他の職種に比べたら待遇などは期待できるのかもしれないので、現在のどんな待遇の仕事から転職をするのかで、お勧めできる具合は変わります。
ただ、「未経験からのエンジニアへの転職」などと謳っているプログラミングスクールもありますが、
最初から理系で、新卒のときからエンジニアをしている人に追いつくことはとても難しいです。
IT技術はこの数十年での進歩が目覚ましく、早ければ早いほど、その知識の蓄積が大きいです。
『サブネットマスク』を働きながら自然に覚えていた人と、今からエンジニアを始めようとしている人では知識の差はかなり大きいです。
そんな世界に「プログラムが組める」というだけで飛び込んでいくのは、けっこうハードだと思います。

個人的にはプログラムを学習してなくても、エンジニアを募集している会社に転職するのは有りだと思います。
プログラム以外の
・広い範囲の知識を保有していること
・対象についての深い知識を有していること
・読みやすい設計書を書けること

を意識して育んでいくことで、よりよい仕事ができるようになっていけると思います。

エンジニアを続けるコツ

世の中には、コーディング(プログラムをかくこと)、デバッグ(不具合を調査し、修正すること)が大好きな人もいます。
次から次に仕事が降ってきて、納期に追われ続ける「デスマーチ」という言葉がありますが、これを楽しめる人もいるのです。
私も一時期朝9時に出社して、翌朝4時に退社するような時期も経験しました。(この経験あるとほとんどの仕事が楽に感じますね)
作業量も多かったのですが、「本当に作れるのか?」と作れるかどうかもわからない不安を抱えながらのこの勤務なかなかにハードでした。

そういう人たちと私のような「そこまで好きじゃないなぁ・・・」というような人が張り合おうとすると、精神を病んでしまうこともあります。
自分の仕事との向き合い方を明確にしてエンジニアを目指していくのが良いと思っています。

未経験からのプログラマーについての結論

プログラミングスクールで学習して、「楽しい!」「面白い!」と思わなかったら考え直した方が良いと思います。
それでも仕事に困らないという安定性を求める人は、上述の「エンジニアを続けるコツ」を意識して頑張ってもらえたらと思います。

現在、高校生や大学生だったりすれば、プログラムは学んでおいて損はないと思っています。

コメント

タイトルとURLをコピーしました