2019.01.012019年4月でシステムエンジニア歴が丸6年になる筆者。今回はシステムエンジニアを目指す人や、システムエンジニアになることが決まった人に、システムエンジニアの勉強について簡単に紹介します。巷で言われているように、システムエンジニアは常に勉強しなければやっていけない職種です。逆に、勉強さえできれば意外と楽に稼げる職種だと感じています。目次システムエンジニアはなぜ勉強しなければならないか最新技術を取り入れた開発ができなくなる適切な技術選択、システム設計ができず、デスマーチを生み出す勉強して得したことまとめシステムエンジニアはなぜ勉強しなければならないかシステムエンジニアが勉強しなければならない理由は大きく2つあると考えています。最新技術を取り入れた開発ができなくなる適切な技術選択、システム設計ができず、デスマーチを生み出す最新技術を取り入れた開発ができなくなる最新技術を取り入れようと思ったら、勉強して最新技術を覚えるのは当然です。大学などで機械学習やAIを習ってきていないリーマンエンジニアが、機械学習やAIを使った開発をするにはどうすればよいかというと、勉強するしかありません。機械学習やAIを使うには、プログラミング言語としてはpython、数学としては線形代数や微分が知識として必要になります。私も2016年までpythonなんて存在も知らなかったし、線形代数や微分もすっかり忘れてしまっていましたが、機械学習は今後必須になるという予感がしたため、必死に勉強しました。おかげで社内でディープラーニングを活用したシステム開発に携われ、給料もあがりました。仮に今私の会社が倒産しても、機械学習のシステムが組めるといえば、今後数年は職に困ることはないでしょう。逆に、pythonや線形代数、微分を勉強するのがめんどくさい人は機械学習エンジニアにはなれません。いう人にはどういう仕事が回ってくるかというと、レガシー技術で作られたシステムのメンテナンスです。私の会社でも、私がpythonを使ってAIエンジンを作っている隣で、エクセルマクロの修正を一生懸命行っている人がいます。エクセルマクロを100%否定するわけではありませんが、次につながる仕事ではないのは明らかですよね。私だったらモチベーションがあがりません。エンジニアとして最先端の技術を扱いたいのなら、勉強は必須なのです。適切な技術選択、システム設計ができず、デスマーチを生み出す担当するシステムによって最適な技術というのはある程度決まってきます。機械学習を取り入れたシステムを作るのにプログラミング言語としてエクセルマクロやC言語を選択する人はいませんよね。これはすごく極端な例ですが、不勉強で知識がない人は、自分の知っている知識でしかシステム開発ができないため、あながち間違った例ではありません。大企業になると、「全員が扱えるように」という理由で、あえて低レベルな技術を選択することすらあります。私の会社だと、データを蓄積するシステムを作るのに、「RDBは専門知識がないと扱えない」という理由で、データをすべてcsvファイルで蓄積するというシステムが実際に存在します。愚の骨頂とはこのことかと思いましたが、この話を聞いた瞬間にこのシステムの担当者とはかかわるのをやめようと心に決めました(笑)また、大規模システムの開発になってくると、テストフェーズでバグが収まらずデスマーチ化するという話をよく聞きます。大規模システムになればなるほど細かい単位での単体テストが結合テストが重要になります。そのテストを実現するためにはシステムの機能を細かく分割するための設計テクニックが必要になりますが、例えばオブジェクト指向設計と呼ばれる設計手法はそういった設計テクニックの一例であり、世界中で採用されているため実績がありノウハウもインターネット上に散在しています。そのオブジェクト指向を勉強せず、我流で設計したシステムは細かい単位でのテストが十分に行えず、バグが頻発しデスマーチになりがちです。我流の設計手法を次の担当者に引き継ぐのも難しいため、時が流れるごとにアンタッチャブルなシステムになっていきます。一方でオブジェクト指向のような世界的に認知され広まっている設計手法であれば、次の担当者にオブジェクト指向の知識があればシステムの理解も容易になるでしょう。オブジェクト指向だけでなく、デザインパターンと呼ばれる手法や、GUIアプリであればMVCモデル、MVVMモデルが有名ですね。適切な技術選択、適切なシステム設計を行うためには、勉強が不可欠なのです。勉強して得したこと上述したようにシステムエンジニアは勉強が必須です。関わらず、日本のシステムエンジニアは勉強しない人がたくさんいます。知識がなくても知識がないなりの仕事を回してもらっているのです。年功序列の企業だとそれでも給料が上がっていくので、勉強する必要が見いだせないのかもしれません。日本社会の悪しき部分だと感じています。そのような環境でも勉強して知識を得るとよいことがあります。それは、勉強しない人に比べて明らかに仕事ができるようになるので、出世が早くなるし、仕事も楽にできます。知識がつき同僚や上司から頼られるようになってくれば、まず配置転換などがなくなります。システムエンジニアとして成果が出ないと、次に回されがちな職種は営業です。客先に営業に行くときにシステムに詳しい人間が重宝されるようです。私は、営業マンとして人と話して成果を出すくらいなら、システムエンジニアとして勉強して知識をつけて成果を出すほうが簡単だと考えているので、配置転換されないためにも勉強を続けています。まとめシステムエンジニアに勉強が必須な理由を紹介していきました。勉強が必須にも関わらず、勉強しないシステムエンジニアがたくさんいるので、日本の将来が不安になる一方、勉強している自分としては優位な環境になりつつあり、微妙な心境の今日この頃です。経緯も含め簡単に紹介します。「Geforce...雑記abrAsusの「薄い財布」を買ってみた前々から欲しかったabrAsusの「薄い財布」。購入しようか迷っている人のために、レビューしていきます。若手ITエンジニアが大企業で働くメリット最近のITエンジニアの働き方として、フリーランスとして自由に働くスタイルが流行しています。そんな中でも、ITエンジニアが大企業に属するメリットを挙げていきます。人生を変えたいときに読む本~夢をかなえるゾウ~「夢をかなえるゾウ」という本を読んでみました。非常におススメなので紹介します。pro」を持っているわけではないので、詳しくは紹介しません。この動画を見ると、その実力が良くわかります。この動画、再生回数も多くなく、ホントの素人が撮影した動画のようです。以前このブログでも紹介した、ミノキシジル5%配合の育毛剤では国内最安の「ミノファイブ」。使い始めて2カ月半経過したので、成果報告をします。コメントをキャンセルメールアドレスが公開されることはありません。※サイト上に表示された文字を入力してください。ヒゲメガネメーカー勤務のリーマンエンジニア。いろんなことを記事にします。リーマンエンジニアのブログ.ホーム検索トップサイドバ。