
今回はどうしたらプログラミング初心者社会人や高校生・大学生がどうしたら確実にプログラマやチームリーダーであるシステムエンジニアに確実になれるのか?
プログラミング教育経験30年のわたくし横田昌彦が(ド根性ガエルの町田先生みたいですね(笑))間違いのない確実な方法を教えてさしあげます。
内容は実に簡単なことなので、読み終えたらことの真偽をよくよく考えて見て下さい。
大手スクールには大手なりの良さもありますが、生徒さん一人一人の能力・適性に合わせられない、より親切丁寧な指導が出来づらいという欠点があります。
言ってみれば大型爆撃機と戦闘機の違いといっても良いと思います。小回りが利かない。
それでは始めましょう!
設計図を描いてそれをプログラミングにする制作方法を指導しているか?
プログラムも建築物や電化製品と同じで、どんな製品をどんな要求・必要性があって作るのかを文書化し設計図を描き、修正しそれをみて制作・完成させなくてはいけません。
私は今年の春まで、自分のスキルレベルの維持のため、生徒数でベスト3に入るオンラインプログラミングスクールで講師をしていましたが、流れ図を使用して指導しているプログラミングスクール、特に大手のスクールはほとんどありません。
流れ図を使って指導するのは不公平になるので出来るだけ止めてほしいといわれました。
これはプログラミング指導の素人であることを表しています。
なぜなら、NECやIBM,富士通といった会社の社員教育で流れ図をみっちり指導しない事はありえませんし、力のあるプログラマほど流れ図作成を重視します。
それに日本ではATM支払機などシステムの納品では、仕様説明書とともに設計図である流れ図も一緒に納品しますから。
私も高校教員時代に北海道立情報処理教育センターの長期研修で、みっちり流れ図を使用したプログラミング授業を習いました。
大きなシステムは、基本情報技術者試験でも習う世界標準のシステム開発手法を手本として開発します。
- 要件定義書の作成
- 定義書を箇条書きにする。
- 概要設計・・・文書と流れ図、UML図などを使用し文書と図形を使って全体の設計図を作る
- 内部設計・・・概要設計図を切り分けプログラマに分け与え内部設計図を描かせる
- コーディング・・・設計図からプログラム開発言語でプログラムにする。
- ビルドとエラーチェック・・・出来上がった部品プログラムを組み上げて(ビルド・構築)全体動作のエラーチェックをしプログラマに修正依頼をする
- 完成・・・ビルドで最終のエラーチェックをした後、現場でしばらく試運転し問題が無ければ切り替えて稼働
これを模擬演習していないと、就職してもシステムが作れないのです。
私が以前担任をしていて数年前に非常勤講師をしていた、日立製作所の流れをくむ札幌情報未来専門学校では2年生になると開発チームを組んで開発経験のある指導者の下に2種類のシステム開発演習を行っていますが、このような学校は非常に少ないです。
詳しくはこちらの『札幌情報未来専門学校に見るシステム開発模擬演習指導』の記事をご覧ください。
札プロでは『Java基本+応用(WEBサーバー構築講座)』とこれを含む『基本情報技術者試験取得講座』の最後に卒業制作としてJavaまたはPHP言語によるシステム開発模擬演習を課しています。
流れ図が作れないとプログラムが作れない
実は流れ図を学習しないと「このようなプログラムを作りなさい」と言っても、全体の姿・構造を思い浮かべられないのです。
プログラムとは「最初に何をさせ、次に何をさせ、さらにこれをさせて、最後にこれをさせて終わる」という、コンピュータにさせる仕事を順番に並べた計画書、指示書ですが、それを思い浮かべられないのです。
札プロは流れ図とともにプログラミングを学んでいきます。冒頭の写真は札プロが誇る『流れ図演習』のオリジナルテキストです。
詳しくはこちらの『プログラミングの真に実力のつく学習方法!流れ図を書き流れ図によって考える』をご覧ください。
プログラムの一部分をコピペして大きなシステムを開発する学習ではプログラムを作れるようにならない

プログラムの一部分をコピペして大きなシステムを開発する学習スタイルの有名スクールは非常に多いです。
私がiphoneアプリの制作方法を学ぶのに通ったのに2010年ぐらいに通ったRスクールもこの形式でした。
結局、修了後すぐにiphoneアプリを作れるようにはないりませんでした。
iphoneを作るための環境設定ときっかけはつかめましたが、後は独学です。
この学習スタイルは、ただプログラムをコピペしてエラーを訂正して動かすだけですから、初歩から順番に分岐命令のIF文や繰り返し処理のWhile文などの文法を使用したプログラムなどの充分な文法内容や例題プログラムの説明もないためプログラムの内容がチンプンカンプンで終わる事が多く、それに加えて各学習項目についての豊富な実習課題でプログラミング力を養うことをしないのでプログラム制作の力は一つも身につかないのです。
ですからプログラムを作れない理由は実に簡単ですよね。内容の説明がほとんどないのですから。
特にJavaやPHPより実際はシステム開発が難解なRubyの学習でこのスタイルが多いです。
写真は札幌WEBプログラミングスクールのJava言語の2次元配列という学習項目の実習課題です。
この課題はやさしい実習課題から完成させていき最後の仕上げにこの課題を完成させます。
こうする事で、要求されたプログラムを、自分で全体の構造を頭に思い描き、流れ図を描き制作する力が身に付きます。