システムの仕様と技術、どちらを勉強するべきか

2019年8月10日土曜日

IT

システムの仕様と技術、どちらを勉強するべきか

この記事では、エンジニアとして働いていく上で、システム固有の仕様と、技術的な知識のどちらを重点的に学んでいくべきかについて考えていきましょう。


エンジニアやプログラマーとして働いていく中で、新しい現場に配属された時は、わからないことだらけです。

システムの仕様についてもわからなければ、そのシステムを開発するための技術にも、あまり詳しくない場合もあるでしょう。

また、あなたが新人エンジニアであれば、仕様や技術はもちろんのこと、システム開発の進め方そのものについてもあまりわからない状態かもしれません。


そんな状態からエンジニアとして仕事を進めていけるようになるためには、様々なことを学んでいく必要があります。


私自身も、空いた時間などを使って仕事のための勉強を行い、システムの理解を深めていこうとした際に、2パターンのアプローチのどちらから学習を進めていくのか、迷うことがあります。

その2パターンとは、自分が携わっているシステムの仕様の理解を深めていくか、システムを作るためのプログラミング言語や技術の理解を深めていくかということです。

技術的な知識の習得の方が優先度が高い

技術的な知識の習得の方が優先度が高い

結論から言うと、私はエンジニアとして長く働いていくのであれば、技術の理解を深めていく方が優先度が高いと考えています。

それは、私自身がエンジニアとして色々な現場に行って開発を行っていく中で、普遍的なスキルの必要性を強く感じてきたからです。



上記の2パターンのスキル以外にも、開発で必要とされるものとしては、周囲との人間関係を構築するようなソフトスキルも挙げられるかもしれません。

しかし、私が多くの現場で開発を行ってきた中で感じる事は、その現場特有のシステムの仕様ですとか、その現場で構築した人間関係などは次の現場には持っていくことができないということです。


どんなに今作っているシステムの仕様に詳しくなったとしても、その仕様がそのシステム固有のものであれば、次の現場ではあまり生かせない可能性が高いです。

また、現場の方に気に入られていたとしても、別の開発現場に行って開発を始めれば、前の現場で構築した人間関係を使う事はできません。

また新しい現場に行って、その開発現場のシステムの仕様を一から把握し、人間関係を一から構築し直し、システム開発に取り組んでいく必要があります。


そうなったときに、やはり結局のところ、1番大事なのは自分自身に紐付いているスキルです。

今の現場だけではなく、どこに行っても生かすことができるスキルを優先して身に付けておく事は、たとえ開発現場や仕事の内容が多少変わったとしても、ある程度のスキルの土台を持って取り組むことができるようになるために大事なことだと思います。


これは、社内での異動だけではなく、転職をするような際にも言えることだと思います。

転職の履歴書に書く内容や面接時に話す内容は、次の仕事現場で活かせる内容でなくてはいけません。

そこでアピールするべきなのは、広く一般に認識されているスキルであり、前職の現場固有の知識やスキルではありません。


広く一般的に生かせるスキルを身に着けて、自分の市場価値を高めよう

広く一般的に生かせるスキルを身に着けて、自分の市場価値を高めよう

IT業界において技術的なスキルと言うものは、よほどニッチな分野に取り組んでいない限りは、非常に広く一般的に生かすことができるスキルです。

私はフィリピンの開発現場で開発をしていたこともありますが、当然そこでも使われているプログラミング言語や技術的なスキルは、日本で学んだ開発スキルと何ら変わらないものでした。

「とにかく今の現場で成果が出せるようになれば良い」
ということであれば、現場固有の仕様を集中して学び、周囲との人間関係を構築することに大きなエネルギーを使うことも効果的だと思います。

ただ、1つの現場にずっと留まり続ける事は、自分の市場価値を保ち、その市場価値を自分自身が認識していく上では、あまり良いことではないように思います。

どうしても1つの現場で開発を続けていると、その現場固有の風土に染まってしまい、仕事に対する考え方も偏ってしまいがちです。

そうならないためには、定期的に取り組む開発内容や仕事の場所を変えながら、新たな環境で開発に当たっていく事も大事です。


また、こういったご時世ですから、本人の望む望まざるとに関わらず、1つの開発現場で長い社会人人生全てを過ごし切ることができるという前提で働くのは非常に危険であると思います。

少なくとも、今働いている現場だけではなく、外の世界にもアンテナをしっかりと張りながら日々の仕事に取り組んでいく必要があるでしょう。



そういった、
「全く新しい環境で仕事に当たる」
と言う機会が訪れる可能性がある以上、大切な事は、どんな現場に行っても自分自身の助けになるような普遍的なスキルを身に付けておくことです。

そして前述のように、ITの技術的なスキルと言うものは、場所を選ばずにどこでも生かすことができるスキルの典型です。


目の前の仕事だけでなく、技術的な学習も続けていこう

目の前の仕事だけでなく、技術的な学習も続けていこう

もしあなたが新人エンジニアであれば、もしかしたら今あなたは目の前の仕事をこなすことに一生懸命になっているかもしれません。

そしてシステムがどのように動くのかを一生懸命把握して、何とか業務に食らいついていっているかもしれません。

まずは目の前の仕事を一生懸命こなす事はもちろんとても大切なことです。


ただ、それだけに囚われることなく、どうか技術的なスキルの勉強も忘れないようにして頂ければと思います。


長く1つの現場で働いていると、まるでそれだけが社会の全てであるような錯覚に陥ることもあります。
しかし、もちろん、そんな事はありません。

世の中には多くの開発現場があり、様々な仕様のシステムがあり、それを使うクライアント様の業種も様々です。


ただ、そういったシステムを開発するための技術と言うのは、共通している部分が多くあります。

もしあなたがシステムエンジニアやプログラマーとしてシステム開発の仕事に携わり続けるのであれば、技術的な知識を得ることにエネルギーを使い、少しでも普遍的に活躍できるような準備をしていくことが大切だと思います。

この記事が、あなたが楽しくエンジニアとして働き続けていくことの助けになれば幸いです。

最後まで読んでくださり、ありがとうございました。