システムエンジニアに必要な調べるスキルとは
こんにちは。yukiです。
SEって、迷いなくかたかたとキーボードを打っているって思っていますか。
少なくとも僕は、迷いまくりですし、何か起きた時に調べることを制限されたら、仕事になりませんね。
エンジニアは、調べるスキルが必要不可欠です。
これからエンジニアになる、なりたい方向けにシステムエンジニアの大きなカテゴリわけを解説します。
システムエンジニアとは
いつものようにWiki先生に聞いてみます。
システムエンジニアの職域に関する明確な定義は存在しないが、日本の企業では慣習的にコンピューターシステムやネットワーク・データベース等の情報システムに関わりながら以下のような業務を行う者を指すことが多い。
- 企画
- 設計
- 開発
- 評価
- プロジェクトマネジメント
- コンサル
- 工事
- 保守
- 運用
実際には上記の複数を兼任する場合、上記のいずれかは含まないような場合もあるが、その範囲は企業や団体によってまちまちであるため、上記以外にも使用例として様々な用法があると推察されるが、情報システム関連の業務に携わる者が大雑把にシステムエンジニアと呼ばれる傾向がある。
工事ってなんなんだって感じですね。僕にも分かりません。すみません。ネットワークとかインフラの工事のことなのかな。誰か教えてください。
そんで、難しいなって感じるかもしれませんが、Wiki先生が言っていることを丸っと全部やることは、ほぼほぼないし、Web系くらいだと思います。
Web系って?
て疑問になると思いますが、ホームページ制作とか、通販サイト、SNSなんかを作っている方々です。
調べることの重要性
プログラミングをしていて、調べずにやることがいいとは思えません。
常にバージョンアップされていく言語やフレームワークたち、流行りな書き方なんてのも存在します。
昔は、動けばいいという考え方が主流だったかもしれませんが、今はメンテナンス性、ソースのきれいさも求められるようになってきました。
業務ロジックが分かりやすく記載しないといけない時代ですね。でも綺麗にプログラミングするためには素晴らしい関数やAPIなどを調べながらプログラミングをしなければ、メンテナンスのコストが上がってしまうことにつながりかねません。
そういうことで、調べるスキルが必要です。
本題は、この辺までですが、ここからは、例外もあるよってことを解説するためにカテゴリわけして書いていきますね。
エンジニアを大きく分けると3つ
では、Web系の他に何があるかというと、Web系、オープン系、ホスト(汎用)系とあります。
これからエンジニアになりたいと思っている方は、Web系、オープン系を目指した方がいいです。なんでかっていうと、ホスト系を今から作るという新たな案件はほとんどないためです。
ホスト系は、いわゆるITバブルの時に大きな銀行や会計システムを作りまくった時代のレガシーなシステムたちでこれから勉強するには、複雑かつ、案件も少ないし保守や運用案件ばかりで、オープン系へのリプレイス(移行)案件ばかりだと思います。
Web系
では、Web系ですが先ほど話した通り、表側のシステムになります。フロントエンドエンジニアとも呼んだりもしています。
言語的には、HTML、CSS、JavaScriptとなんかを使ってプログラミングします。
サーバーサイドはPHPとかRubyとかの言語を使用します。
ただ、言語と言っても一から開発することはあまりないのではないかと思います。フロント側もフレームワーク、ライブラリがほとんどで、結構新しい流行みないなのがすぐころころ変わるので、若い人が多いイメージがあります。
最近では、BootstrapやAngularJSとか、Ruby on Railes なんかのフレームワークが流行っているのかな。
それでいて、Web制作は最近はWordPressがほとんどなんじゃないですかね。
CMS(コンテンツ管理システム)っていって、色々できますよ!っていうソフトの上にオリジナルなコンテンツを開発するみたいなイメージです。
ここの動きも活発で、デザインやプラグインなど、有料から無料まで色々と出来ています。yuikmomoブログもWordPressの上にありますし、会社のホームページなんかもWordPressで出来ています。
オープン系
昔のシステムは、ホスト系で構築されていました。
オープン系は、ホスト系じゃない方です。(雑)
主な使用言語は、Java、C++、PHP、Ruby、最近はPythonなんかもですね。
私はエンジニアになってから一貫して、オープン系で、業務系・基幹系システムをやっています。
ホスト系で出来ていた業務系アプリケーションはどんどんオープン系に移行していってます。ホスト系よりも柔軟で、だんだん、アプリケーションもWebアプリケーションになってきていて、そろそろWeb系とオープン系は合体しちゃうかもしれませんね。
ホスト(汎用)系
結構年齢が高い方が多いです。僕は、前に勤めていた会社がほとんどホスト系エンジニアだったのですが、基本的にホスト系は高いのでお客様先でしか仕事がないことがほとんどです。持ち帰るなんてできないし、客先常駐となることになるでしょう。
使用言語はCOBOLなんかです。
あまりに大きなシステムでお金をかけて作られているものなので、この先仕事はあるかもしれませんが、技術が進むことはないと思います。
華やかな未来はないかもしれないですが、オープン系には頻繁にセキュリティパッチや、柔軟故に頻繁にバージョンアップがあります。Windowsのアップデートなんかをイメージしてもらえばわかりやすいと思います。
月に一回バージョンアップがあり、セキュリティ対策や、機能のアップデートがありますよね。
ホストにはないです。あっちゃいけないです。簡単に変わらないからこそ、重要なお金とかの情報を管理できていると言えるのかもしれないです。
銀行に預けたお金が正しく口座に預けられていないってなったら大問題ですよね。
そんなことがないように、基本的にシステムを柔軟にさせないという観点で構築されているのだと思います。
最後に
今回は、システムエンジニアを3つのカテゴリに分けて解説しました。
今の時代内部の根本的な仕組みは、フレームワーク、ライブラリ、エンジンとこうした方がよいみたいなルールの上で素晴らしい方々がつくったベースの上でプログラミングすることが多いです。
なので、調べないエンジニアなんて、めっちゃめちゃすごいか、知っている技術でしか仕事をしないエンジニアだと思います。
ホスト系は別だと思いますが、これから、いろんな技術がオープンに作られて皆がそれを使ってオリジナリティのあるシステムを開発していくことになると思います。
経験よりも学習、僕も正しい情報を正しくアウトプットできることを目指していきます。
正しい情報を調べられる若い人が力を発揮できる業種なんじゃないかなと勝手に思っています。
それではまた!