ITエンジニアが開発するシステムには、使用される範囲があります。システムの使用範囲について見ていきましょう。
※開発したプログラムのことを、システム、ツールと呼びますが、規模が大きめだとシステムと呼び、小さめだとツールと呼ばれることが多いです。会社やプロジェクトによって感覚が異なる場合があります。
※規模というのはプログラム全体の画面数、機能数だったり、ソースコードの行数だったりします。

■一般公開システム
インターネットをする時に、ショッピングサイトや御見積申込をするサイトなど、不特定多数の人がアクセスできるようなシステム。セキュリティアタックや情報漏洩が考えられるため、様々なことを考慮して厳密にシステムを構築しなくてはならない。セキュリティアタックとは、ニュースなどで取り上げられている、クレジットカード情報が流出したり、システムに負荷をかけられてダウンをさせられたりするような悪意のある攻撃のこと。
■お客様社内のみ使用するシステム
お客様の社員のみがアクセスするシステムであるため、お客様によってはセキュリティを意識したプログラムを組まなくてよいことが結構ある。そうはいってもシステムが停止してしまえば業務への支障がでてしまうし、お客様から料金をもらっているため障害を多く発生させるようなことがあれば信用が低下する。品質を確保したシステムを構築しなくてはならない。
■自社内やチーム内のみ使用するツール
自社やチーム作業の効率化をしたい場合などに組むプログラム。使われる場面にもよるが、多少の障害があっても、すぐに修正をすれば大丈夫なことが多い。
■個人が使用するツール
自分の作業を効率化するためや、自信の勉強のために組むプログラム。障害や至らない部分があっても放置をしても自分が困らなければ問題ない。
例えば、「一般公開システム」を1人でお客様に納品できるレベルで組めるようになるためには、何年も掛かるでしょう。覚えることが沢山あり難しい部分ですので、ITエンジニアを20年やっても全部を組めないエンジニアは沢山います。「お客様社内のみ使用するシステム」についても、一般公開システムとの違いとしては、セキュリティアタックをどこまで考慮するかということです。セキュリティアタックを意識して組むのは非常に神経を使い大変です。
それ以外は「一般公開システム」も、「お客様社内のみ使用するシステム」も、実装をするといった意味では同じレベルの難しさになります。システムの品質を確保するというのは、あらゆる障害を想定してプログラムを組んだり、実務を想定した仕様にしたり、性能を意識した作りをしたり、考えることが沢山あります。PCの性能やどのようなプログラム言語、データベース、フレームワークを使うかなど、最終的な運用状況を考えて決めることすら大変です。こういったシステムを正しく開発できるレベルまで、数カ月でたどり着くことはできません。一部の天才なら可能なのかもしれませんが、私は出会ったことがありません。

「自社内やチーム内のみ使用するツール」、「個人が使用するツール」くらいのレベルのプログラムで、機密性、保守性、品質などを考慮せずに、ある程度動けばよいプログラムでよければ、組めるようにはなるのでしょう。ただ、正式に納品できるプログラムを組むのは困難です。
私が勤めている会社では新人に2か月の研修期間を設けており、WEBシステムが開発できるようになるための研修を実施しています。事前にITスクールに3~6か月通った人が何名かいましたが、会社が用意している研修内容を最初から正式なプログラムを組めるような人はおらず、基礎から教えていくことになりました。
ここで、前回提示した「未経験者がシステムを簡単に作れるようになるのか?」という質問についての回答です。
回答:ITスクールに通えばWEBシステムを1人で開発できるようになるのかもしないが、仕事で通じるかどうかは担当するシステムの種類や利用範囲による

ITスクールに通うことで、プログラム開発についての流れやスキルについては、それなりに得ることは可能でしょう。動くシステムができれば就職面談や仕事で役立つことも多いと思います。
ただ、ITエンジニアがそれなりの規模のシステムを1人で開発できるようになるまでは、ITエンジニアとして3年開発業務に従事したとしても全然足りません。仕事で通じるシステムというのは、それほど難しいです。数カ月間勉強を沢山したとしても、1人で仕事で通じるシステムを作れるようになるというのは現実的ではありません。
ITスクール以外にも自分で率先して開発研究をしている人、身近にITエンジニアがいて実践的なことを教えてもらっているような人、仕事相手が超小規模や個人の場合は、大丈夫なケースもあるとは思います。
システムの種類については、まだ説明をしていませんね。cocoteraでは実際にWEBシステム開発に必要な技術の概要を技術ロードマップにしています。
次回から、「システムの種類や開発に必要な技術」について、記載をしていきます。