どうも、陽翔(@engineer_yosho)です。
未経験でエンジニアを目指すあなたへ。 どれくらいの技術力的があれば現場で通じるか、気になっていませんか?
答えを言います。
SIの現場のエンジニアになるのであれば、高い技術力は必要ないです。ただし、並レベルのコミュニケーション能力は必要です。
つまり、並レベルの技術力と並レベルのコミュニケーション力があれば通用します。

- SIerでは具体的にどのくらいの技術力が必要か?
- 【Lv1】最低限必要なレベル
- 【Lv2】次の段階はスピードアップと品質向上
- 【Lv3】パフォーマンスチューニング
- 【Lv4】トラブルシュート
SIerで必要な技術力レベルについて【エンジニアを目指す人向け】シリーズTOPへ
本記事では【Lv1】最低限必要なレベルについて説明します。
是非、最後までお付き合いください。
さあ、どうぞ。
SIエンジニアは具体的にどのくらいの技術力が必要か?
できるだけイメージしやすいように具体例を示します。また、話がぶれないように前提をおきます。
- SIプロジェクト
- 業務アプリケーション開発
- Webアプリケーション
- サーバーサイドはJava+RDB
【Lv1】最低限必要なレベル
最低限必要な技術レベルはこのレベルです。スピード感としては未経験から1年後に到達するイメージです。
開発手法
知っておくべき事はプログラミング言語の知識だけはありません。ウォーターフォール開発について知っておく必要があります。
- ウォーターフォール開発の知識
- 単体テストの知識
SIは99%ウォーターフォール開発です。当たり前すぎて「要件定義とは?」とか「それぞれのフェーズは終了条件を満たした事を合意して次のフェーズへ。基本戻れない」とかそういう事は教えてくれないので最低限の基礎知識は必要です。
それを踏まえてプロジェクトごとに細かくルールが決められているので、「単体テスト要項書のレビューはどこまでやるのか?」、「ソースコードレビューは毎回必須か?」などは、最初にしっかり理解して置いてください。
単体テストの知識はMUSTで必要です。ブラックボックス、ホワイトボックス、分岐網羅など基本的な知識はは必ず押さえましょう。また、Javaの単体テストはJUnitというフレームワークを使う事が多いですが、これができなくてつまずく若者が多すぎます。
ですので、ここができると差を付ける事ができますよ。具体的にはMock刺し方とか、@Theoryアノテーションの使い方とかですね。
開発環境・ツール類
いまどきの開発の当然テキストエディタにプログラムを書くなんて事はしません。
Eclipseなどの開発環境を使いこなす必要があります。さっさとなれて手足のように使いこなせないと現場ではツライです。
- Eclipse、Visual Studio.NETなどのIDE(統合開発環境)の操作方法
- リソース管理ツール(SVN、Gitなど)の知識(使えればOK)
フロントエンド
フロントエンドとサーバーサイドに分けて整理しました。フロントエンドは主に画面周りと思ってもらえばよいです。
- HTMLとCSSはそれなりのレベルが必要
- JQueryも必須。基礎的な事ができればよい
- Web(HTTP)の基礎知識
- 非同期通信の理解
このあたりは技術書やプログラミングスクールで学べると思うので余り心配はないです。
今やJavaScriptを素で書く事はないのでJQueryは必須です。でも、高度な事は不要です。基本的なところをきっちり抑えてください。
サーバーサイド
サーバーサイドはフロントから呼ばれる内部の構造やロジックの事です。バッチ処理もまぁ、サーバーサイドに含みます。
- Javaの言語仕様はそれなりに(リフレクションなど高度な知識は不要)
- Javaフレームワークの知識
- SQL(SELECT文はしっかりと。UPDATE、INSERT、DELETEは普通に)
- RDBの基本的な知識
必ず何かしらのJavaフレームワークを使い、その上にプロジェクト独自のフレームワークを被せているケースがほとんどです。
抑えておくべきフレームワークは、DI/AOPの超スタンダード「Spring Framework」ですね。
10年以上ものあいだ大流行したプレゼンテーション層のフレームワーク「Struts」は、脆弱性のせいで急激に使われなくなりましたが、MVCという考え方は必須なので勉強はしておいても損はないですね。
因みにフレームワークの実装を知ろうという話ではないです。フレームワークを使えるレベルであれば大丈夫です。
そしてSQL。SQLはMUSTですよ。JavaはできるけどSQLが苦手なエンジニアが意外に多い。SELECT文は「結合」や「副問い合わせ」などの基礎は必ず抑えてください。
DELETEやUPDATEは実は奥が深いのですが、Lv1としては基本的な事ができればOKです。CREATE TABLEなどのDDLもまぁ、まだいいでしょう。
複雑なSQLの知識はトラブルシュートで必要になります。ちょっと先の話です。
RDBの基本的な知識も必要ですよ。キーワードを箇条書きしておきます。RDBといっても基盤的は話ではなくて論理設計とSQLの事です。
- プライマリーキーや外部キーの考え方
- 現場で使われる正規化(教科書みたいにはいかないです)
- テーブルの種類の考え方
- トランザクションテーブル
- マスターテーブル
- 履歴テーブル
- コードテーブル
最後に:エンジニアになったら読むべき書籍
本記事の最後に、エンジニアになったらまず読むべき書籍をいくつかご紹介しておきます。
Webを支える技術
Webをしっかり理解できていないエンジニアは通じない時代です。
私は、実務の中で身に付けてきた個々の知識を、この「Webを支える技術」で整理する事ができました。
2010年と少しまえの書籍ですが今での十分に有用です。Webの基礎は何年も変わっていませんから。
JavaScriptの最新のライブラリを覚える前に、まず基礎を固めないと薄っぺらいエンジニアになってしまいますよ。
プログラムはなぜ動くのか 第2版
初版は2001年、第2版は2007年に出版されていますが、ソフトウェア開発に携わる全ての人は読んでおいて損はないです。
私は初版を駆け出しエンジニアの頃に読みましたが、目から鱗が落ちた感覚を持った事を覚えています。
最後までお付き合い頂きありがとうございました。
SIerで必要な技術力レベルについて【エンジニアを目指す人向け】シリーズTOPへ 続きを見る
SIerで必要な技術力レベルについて【エンジニアを目指す人向け】
SIerで必要な技術力レベルについて【Lv2:スピードと品質】へ
-
SIerで必要な技術力レベルについて【Lv2:スピードと品質】
続きを見る