プログラム作りコンテンツ

数冊の専門書でも学べない、プログラム作り実践ノウハウを自宅で習得!
実践で遭遇するプログラミング問題集』のプログラムを作って、評価とアドバイスを受けて再チャレンジ、質問メールも思考トレーニングツールとして、目標は、C言語で言語基礎を、C#.NETでオブジェクト指向を習得。同時並行で基礎プログラム作りを60日間でマスターするセミナーです。
教材(テキスト)はPDFファイル、月謝12,000円、期間は任意(習得するまで)

INDEX

ステップで学ぶプログラム作り法

プログラム、早く自分で作りたいな!資質が変わればできるようになる。

『演習問題を解くワークシート』
スマートフォンサイズ画像とPowerPointファイルをプレゼント!

  • 演習問題を解くワークシート (1)
  • 演習問題を解くワークシート (2)
  • 演習問題を解くワークシート (3)
  • 演習問題を解くワークシート (4)
  • 演習問題を解くワークシート (5)
  • 演習問題を解くワークシート (6)
  • 演習問題を解くワークシート (7)
  • 演習問題を解くワークシート (8)
  • 演習問題を解くワークシート (9)
  • 演習問題を解くワークシート (10)
  • 演習問題を解くワークシート (11)
  • 演習問題を解くワークシート (12)
  • 演習問題を解くワークシート (13)
  • 演習問題を解くワークシート (14)

セミナー申し込み

なぜ?現状を知って改善する!

なぜ?混乱、行き詰まり、作れない?

力試し「実践問題」

n個のファイルを選択した。この選択したファイルの中に同じ内容のファイルが存在しているかチェックしたい。
もし、同じ内容のファイルが複数存在した場合、該当するファイル名(フルパス)を全て画面に出力するプログラムを作成しなさい。

未経験者の方へ、この問題の意味や目的はわかりますよね。わかる範囲で考えて見てください。
経験者の方は、この程度ならばとすぐにプログラムを書こうとする人がいますが、まず問題分析からはじめるのが重要です。
・要件を分析して、デザインして、ロジックを考え、プログラムを作る。
・GUIで考えると面倒なので、CUIで考えてみましょう。

考えて欲しいのは、この程度のプログラムでも、考え方も作り方も製作プロセスも作る人の経験や力量差によってバラバラだということです。客観的にベストに近い結果をだす人もあれば、バッドに近い人もいるでしょう。あるいは、作れないかもしれない。
問題なのは、作ったからそれで終わり。・・・ではないことです。
自分ではパーフェクトだと思っても、もっといい方法があるかもしれません。あるいは、要求を勘違いして全く使えないものを作ったかもしれません。このように、客観的フィードバックのない独学には限界があるのだということを知って欲しいのです。

CONTENTS

夢のまた夢

プログラム作りコンテンツ

 

プログラム作りコンテンツ

 

プログラム作りコンテンツ

 

プログラム作りコンテンツ

 

プログラム作りコンテンツ

 

セミナー申し込み

セミナー受講条件

  • (はじめて)未経験者の方、初心者の方、経験者の方を問いません。
  • Windowsの基本操作、Visual Studioの操作など、プログラム作り以外についてはサポート対象外です。

費用等

  • 月謝:12,000円 (税込)
    1ヶ月試して、成果が得られなかったときはご連絡下さい。無料で1ヶ月延長します。※1
  • 期限:月単位で継続するかご判断ください。
  • 停止:一時停止(無期限)も可能です。
  • 支払:銀行振込
  • 場所:学習場所は問いません。あなたの自宅でも会社でも学校でも
  • 特定商取引法に基づく表示

    申し込み後、手続きとお支払い方法をご連絡いたします。振込日より開始となります。
     なお、お支払い後のキャンセルはお受けできませんので予めご了承願います。
    振り込むまではキャンセル自由です。

  • 他のコースとは完全に別です。誤解なきようお願いします。

申し込み

こちらより必要事項をご記入の上お申し込みください。
プログラム作りマスターセミナー 申し込みする
補足事項に「プログラミング思考改善セミナー 成果保証付き」
とご記入ください。

準備…申し込み後でもかまいません

成果が得られなかった方の申告条件 ※1

真面目に受講(進捗ノートを更新しコミュニケーションを図っている)されている方で、当塾が正当な理由とみとめる場合のみ適用します。正当な理由と認められない場合はお断りする場合がありますので、予めご了承願います。(悪用防止のためです)

▲ページトップに戻る

 

プログラム作りコンテンツ

プログラム作りコンテンツ

 

プログラム作りコンテンツ


このような複雑な画を口頭で伝えることはできない。

ところが

一見単純な図形なので無理して伝えようとがんばるかも知れない。
でも、正確に伝わったのかどうかを確認する方法が無い。

これは、口頭だけでなく文章でも同じです。「百聞は一見にしかず」と言いますが、イメージを伝えるってすごく大変で難しいのです。

図解のない「会話や文章」の場合はどうでしょうか?受け手は、言葉や文章を受け止め頭のの中で整理しながら、場合によっては図解して具体的なイメージを描いて理解していきます。

一般的な会話や文章でも、複雑なケースは紙にイメージを書いて整理していけば理解できるようになります。

プログラムの場合は、分析した結果を表にまとめたり、手順をフローチャートで表現するのがこれに当たります。検証も視覚的にできるようになり精度が上がります。

わかりやすく解説しています。

プログラム作りコンテンツ

プログラム作りコンテンツ

 

 

  1. プログラミング問題解決能力とは?
  2. プログラム開発能力とは?
  3. 今の資質は簡単に変えられる!
  4. これからはじめる初心者の方へ
  5. プログラミング経験者の方へ
  6. アドバイスで思考力と実装力をアップ
  7. プログラム作りのためのカリキュラム
  8. セミナー申し込み方法
  9. もう少しドラマティックに解説・・・

 

序章…プログラム作りは『結果』が全て

問題からプログラム実装へ導くための実践トレーニングと実践アドバイス(ノウハウ)

プログラミング問題解決能力

  • 直面する問題の解決…デザイン、ロジック、プログラム実装、完成までの一連をトレーニングする
    • 『論理的思考能力』を強化する
    • 『プログラム開発能力』を強化する

プログラム作りは『結果』が全てです。

『結果』とは、要件を満たし、どのような実行条件でも正確な答えを返し、一歩先を読んだ対応で、トラブルもなく、改造もしやすいプログラムのことを言います。

原則、途中経過に意味はありません。目の前にプログラムがあり、動かなければ、使えなければ、そして、完成する可能性がなければ、何もしていないのと同義なのです。

当本セミナーでは、まず、今の実力でプログラム作りに挑戦。その結果を様々な視点から検証して、あなたに次の一手をアドバイスしますので、それを自分へフィードバックし、同じ問題や次の問題で改善していく。これを繰り返します。

なお、一般的な思考方法について特に解説はしません。それは、あなた自身で学習して下さい。この手の本を読んで納得する部分は多々ありますが、結局実践で使えないのです。具体的にどんなツールを使って考えればいいのか、どんな形でつないでいけばいいのか、・・・???なのです。だから、実践で考えるべきこと、対処すべき事を具体的にアドバイスします。が、理論的な部分が欠落していたらそれは自分で埋めるようにして下さい。

長年ソフトウェア業界にいますが、不思議なことに「思考能力強化」的な啓発活動は聞いたことがありません。ほとんどが知的作業にもかかわらずです。ところが、論理思考能力は求めている。という「自分で身に付けなさいという」暗黙のルールが存在しているんですね。プログラミングノウハウ的な書籍は少ないですが、ロジカルシンキングをベースにしたようなコーディング作法などもなくはありません。一般的な論理思考の書籍に書かれていることは正しいと思うのですが、実際にその思考法を使ってプログラミングに活かす方法は結構難しいです。

論理的、思考、ロジカルシンキングといったキーワードで検索すると、結構無料で詳しい方法論が公開されていますので参考にして下さい。

実践で通用する論理的思考を実践の場であなたに伝承するのが当セミナーです。

初心者の方へ

言語基礎、デバッグ方法、ロジック、問題の解き方のテキストがあるので、1週間真剣に勉強すれば、プログラム作りはすぐにはじめられます。

▲ページトップに戻る

 

プログラミング問題解決能力とは?

プログラミング問題解決能力と言うと、難しく感じられるかも知れませんが、実際は要求分析で発生する様々な問題を単純化し、構造化(誰が見てもわかりやすく)して、結果を導くロジックを展開するための思考方法なのです。

ただ、思考そのもののため『実践で遭遇する小さな問題』を使ったトレーニング(自分でやって、その結果のアドバイスをフィードバックする)が必要です。自己評価では効率が上がらず、中途半端な妥協や改善点を見逃す危険性が高くなります。

  • 何がわかっていないのかを洗い出すことができます
  • 何をすればいいのかを導き出すことができます
  • プログラムを書く前に大筋の流れが頭に入っています

▲ページトップに戻る

 

プログラム開発能力とは?

プログラム開発能力とは、文字通りプログラムをデザインして実装し様々なケースで動作検証して完成させる能力の事です。

  • フレームワーク(骨組み)
  • UI
  • 機能
  • データ構造
  • 基本ロジック
  • エラー処理、例外処理
  • 実行環境における問題の解決
  • 結果検証
  • 実行時ログ

「いきなりこんなに考える事はできないよ。」と身構えなくてもいいですよ。はじめは、意識だけすればいいですし、小さな問題はそこまで要求されないからです。少しずつ範囲を広げていけばいいです。最終的には、全てを考慮したプログラムが作れるようになります。

一般的には、この部分は個人任せになっています。そのため、自分の考え方や方法は正しいのか?間違っているのか?、漏れはないのか?、もっと違う方法や楽な方法はないのか?と言った事は意識しても学ぶことができないのです。

▲ページトップに戻る

 

今の資質は簡単に変えられる!

一般的に、プログラマーの評価は資質で語ることが多いです。

でも、プログラミング問題解決能力に必要な論理的思考などの思考方法を学んで身に付ければその瞬間に変わる(変える)ことができるので安心して下さい。ただし、考え方・思考方法をプログラミングの問題解決やロジック展開、デザインなどに利用するため、一朝一夕に習得できるものではなく、十分なトレーニングが必要です。

プログラム作りができない方は、文章をよく読まない人が多いです。でも、本セミナーのトレーニングを受ける事で、確実に、劇的に変わります。文章をよく読むようになり、(将棋のように)先読みすることもできるようになります。特に、メールによるコミュニケーションでその変化が顕著に表れます。

▲ページトップに戻る

 

これからはじめる初心者の方へ

「初心者なんだから、いきなりこんな事を言われても何のことだかわからないよ!」

そう言わないで、もう少しお付き合いください。

言語基礎なんて、真剣に(頭に詰め込むという)勉強すれば、たったの1日で理解できるって言ったらどうです?
丁寧に勉強しても1週間という所でしょう。ポイントさえ押さえれば、細部は流し読みでも良いんです。
一般的に時間がかかるのは、言語文法や仕様を理解すると同時にコンピュータの動作原理や高度な言語仕様概念の理解に時間がとられているからなんです。必要最小限のことを体系的に学習すれば短期間で習得することができるのです。

重要なことは
言語文法の全体を理解することではなくて、要求や問題を理解し、論理的にロジックを導き出す思考方法をトレーニングすることなんです。

問題を解いて、ロジックを考え、プログラムコードに置き換え、要求通りになる迄問題を解決して完成させる

この一連の流れを小さな問題からスタートするだけ。徐々に問題を大きく難しくして力を身に付けていくのです。もちろん、作りっぱなしではほとんど意味がありませんよね。あなたの考え方、手順、実装方法について、当セミナーが客観的に判断して、改善点、違う考え方、実装方法などについてアドバイスしていきます。このアドバイスを自分へフィードバックして、次の問題に活かしていくことで、短期間でプログラム作りがマスターできるんです。

常に「プログラムを完成する」を繰り返すため、流し読みしたプログラミング言語仕様や文法も自然に理解できるようになります。

※個人差があるため、明確な期間は断言できませんが、独学では決してできないけど、当セミナーなら確実にプログラム作りが習得できる学習システムです。

未学習の文法は、プログラム作りの基本をマスターしてから一気に学習してもいいし、必要になったときにピンポイントで学習してもいいです。

▲ページトップに戻る

 

プログラミング経験者の方へ

いまさら、言語基礎から再学習するのは辛いと思います。今さら、何をどう勉強するんだという気持ちが強いからです。

『実践で遭遇する小さな問題』で、プログラム作りからはじめて、現状の問題を洗い出し、少しずつ改善していきましょう。

  • 文字列の意味がわかっていなかった
  • 型ってそう言う意味だったんだ
  • 配列って記憶の表(テーブル)概念だったんだ
  • オブジェクト指向ってそう言うことだったんだ
  • ロジックができれば、プログラムって難しくないんだ
  • 問題分析ってこうすれば簡単なんだ
  • ロジックってこうやって導いていけばいいんだ
  • 実装ってこんな事まで考えて書かないといけないなんて…知らなかった
  • 自分ができそうな問題から作っていくので…ちょっと楽しい

今さらながら、わかっていなかったことが見えてきたり、もやもやがスッキリとするはずです。

同時に、プログラム作りの考え方がわかり、自作で本格的なツールやアプリが作れるようになります。

▲ページトップに戻る

 

アドバイスで思考力と実装力をアップ

『実践で遭遇する小さな問題』より、できそうな問題を任意に決めてはじめてください。

プログラミングは、要求を満たしたプログラムを作ることなんです。考える事ができない、プログラムが完成しない場合の途中経過は認めてもらえないのです。重要なことは、考えてやってみて、自分が本当に解らないことを見つけ、できるようにすることなんです。実際にやってみないとわからないことに、できないことに気が付かないのです。机上で学習してわからなかったことも、実際にプログラムを書くことで理解することもあります。逆に、プログラムを書いていて文法が理解できていないことに気が付くこともあります。

プログラムは1つでも、複数まとめてでもかまいません。多少時間を頂くため、はじめはノーアドバイスで行ってください。なお、作成中に疑問などがあれば、その都度質問してください。メールも立派な思考ツールになりますから、どんどん活用して下さい。

提出物

  • 問題の要約、分析結果
  • ロジック、フローチャートなどの資料
  • プログラム仕様(チェックシート)
  • プロジェクト(ソースファイル一式)

アドバイス

チェックは論理的になっているかどうか、実装すべき事柄が考えられ守られているかを、現状のスキルに応じて評価判定したうえでアドバイスします。

プログラムに正解は作った数だけ存在するという考えですので、あなたの考え方や実装方法そのものを否定したり批難したり、当セミナーの考えを押しつけたりすることは絶対にありません。

  • 提出物の添削
  • 要求通りになっているかどうか
  • 考え方、ロジック、デザインに問題はないかどうか
  • どんなケースでも実行することができるかどうか
  • 要求者や利用者の事を考えているかどうか
  • 保守性、安全性を考慮しているかどうか
  • 実装技術に問題はないかどうか
  • 今後の学習ポイント
  • その他、気になること

技術的な問題解決は?

ライブラリの知識や利用技術といった側面は、インターネットを使えばほとんど解決することができます。ただし、総合的・体系的に概念と実装方法を理解し身に付けようとしても難しいケースもあります(必要であれば、その方法もアドバイスします)。

▲ページトップに戻る

 

プログラム作りのためのカリキュラム

言語基礎を中心に

経験者の方も、未経験者の方も
デジタル、コンピュータ、振る舞い、実体、言語仕様の基礎、プログラムの基本、ロジック、問題の解き方について学習します。

テキスト教材はPDFファイルにて提供します。

 

実践トレーニングでプログラム作りをマスターする

『実践で遭遇する問題集』から、順次問題解析してプログラムまで作っていくトレーニングです。

座学だけでプログラムを作り上げる事はできません。ましてや、一般論的な方法論を学んでも実践で使えなければなんの意味もありません。そもそも、プログラムを作るための思考改善なのですから、現状を理解しなければどうしようも無いわけです。

このトレーニングも目的は

  • 論理的思考能力の強化
  • プログラム開発能力の強化

つまり、問題を効率良く分析して、プログラムの実行結果を具体化させ、結果を導く手順や構造を考える能力を身に付けることです。そうすることで思考を改善し、プログラムが作れるように変化します。

▲ページトップに戻る

 

月謝と申し込み方法

 

もう少しドラマティックに解説・・・

「思考改善ってどういうこと?」

「プログラム作りは、知識や個別技術は当然なんだけど、本質的に『論理的思考能力とプログラム開発能力』が要なんだ。」
「一般的にプログラマーに求められる資質と呼ばれるのは『論理的思考能力とプログラム開発能力』のこと。」

「それって、規模の大きいプログラムの場合ですよね。」

「違うよ。どんなに小さなプログラムでも基本は同じ。」

「要求があって、それを分析し、問題を解決して、結果を導く手順を考え、プログラムとして構築する。規模が小さければ、問題も少なくプログラムも小さくなる。規模が大きければ、問題も複雑になり、プログラム構造も複雑になってくる。つまり、プロセスは全く同じだね。」

「自分が作りたいプログラムでも同じなんですか?」

「そうだよ。要求って第三者だけでなく自分自身も含まれるんだ。こんなプログラムが欲しいな、作りたいなって思うだけじゃプログラムは作れない。具体的にどんなプログラムが必要なのかって考えるよね。」

「なるほど。それじゃ、『論理的思考能力とプログラム開発能力』についてもう少し詳しく教えて欲しいんですけど。」

論理的思考能力とは

ロジカルシンキングとも呼ばれていて、要求を分析したり、手順(ロジック)を考えたり、データ構造を考えたり、プログラム(システム)全体を考えたりすること、考時点で考えられる様々な問題を事前に解決することでプログラム開発をできるだけ早く楽に正確に行うことが考えられる能力

プログラム開発能力とは

プログラム全体構成、ロジック、データ構造などをプログラムとして実装し問題なく動作するプログラムを開発できる総合能力。

「つまり、プログラミング言語や部分的な技術を勉強しても、この2つの能力がなければプログラムは作れない、組み上げて完成するることはできない・・・と。こういうことですね?」

「そうなんだ。けど・・・」

「けど?」

「『論理的思考能力とプログラム開発能力』をどうやって身に付けることができるのか?」

「勉強方法ってないんですか?」

「一般論の概念から入って行けば、論理的思考能力身に付けられるんだけど、それとプログラミングとの関係性までは・・・ない・・・んだ。」

「そういえば、入門書や言語解説書はあっても、それ以外って気が付かなかったんじゃなくて、そもそもないって事ですか?」「」

「そうなんだ。”自分で身に付けろ!” と言うのがこの世界の暗黙のルールになっているんだ。」

「これじゃ、いつになったらプログラムが作れるようになるのかわからないじゃないですか!」

「方法はあるよ。自分で考えて、作って結果をだす。その結果を第三者の評価とアドバイスをもらって、繰り返してブラッシュアップするという方法だ。」

「なるほど、自分で考えて作って、それを先輩が評価して私にアドバイスしてくれるって事ですか?」

「いやいや、そこまでは言ってないよ。もう一つ問題があって、これを実践プログラミングでやると期間が長くなっちゃうでしょ。まずは、短期間(短時間)で”できるボリューム問題”を繰り返すことがポイントだと私は考えているんだ。」

 

「プログラムって、プログラミング言語解説書に書いてあるコードを組み合わせればできそうだよね」

「そうだね、一通り文法が理解できたら、次ステップへ進もうか」

「えっ~~。これでプログラムが作れるようになるんじゃなの?」

「そんな風に誤解している人が多いんだけど、
プログラムを作るためには、学ぶ順番を考えて、プログラム作りのための勉強をしないといけないんだ」

「ガク。この本は役に立たないの?」

「いやいや、そんなことはないよ。でも、解説書はプログラミング言語の文法や仕様について、書き方や考え方をわかりやすく説明しているだけなんだ。本質的なこと、プログラム作りについてはほとんど語っていないと思った方がいいよ。つまり、既にプログラム作りのノウハウを学んでいる、あるいは別に独習することを暗黙の前提として書いているんだ。」

「そのことに触れていないのは、本が売れなくなるからだと思うよ。これを読めばできる。みたいな。でも、プログラムは作れない。」

「それじゃ、何をどんな順に勉強すればいいの?」

「そう、ガッカリしないで。簡単に概要を説明するね。」

「その前に、プログラミング言語の”言語”って言葉をどう思ってる?」

「言語って、日本語とか英語とかの言語と同じ意味でしょ。」

「それは、自然言語といって、コミュニケーション図る目的で、文化・価値観・地域性によって自然に生まれたものなんだ。プログラミング言語は、人工言語。コンピュータはデジタル形式の機械語を命令として理解して実行する。でも人がデジタル形式で命令を書くのは不便だし、より高度な概念を楽に組み込みたいという理由から、様々な人工言語が誕生したんだ。だから、原則どんな言語で書かれたプログラムコードも、いったん機械語に変換(コンパイル)して実行モジュールとして実行することになるんだ。つまり、プログラミング言語は、コンピュータで実行する命令を書きやすく、わかりやすく、読みやすくしたもので、コミュニケーションを目的としたものではないということ。」

「でも、こんな知識ってプログラミングに必要なの?」

「小さな誤解・錯覚・無知の積み重ねで大きくねじ曲がってしまう可能性があるんだ。でも、いったんねじ曲がってしまうと、なかなか変えることができないのが人間ってもの。時すでに遅しにならないよう、自分自信で常にチェックしないと。」

「話を元に戻して、プログラミングの学習手順とポイントをまとめるね」

「お願いします。」

「効率的に学習するため、『プログラミング言語基礎』と『コンピュータ動作原理』について同時に学習。以下は順不同だよ。」

  • コンピュータにもっとも近い低級言語:C言語で基礎固め
  • デジタルデータ
  • 記憶、演算、判定、ジャンプ=変数・配列、演算、比較・判定、分岐、繰り返し + 関数
  • 構造体

「これらを実際にコードを書いて理解する」

  • デジタルデータとは何かを理解する
  • 文字、文字列の扱い
  • デバッガで、1命令毎にどのように実行するかを確認する

「簡単な演習問題の解き方を学ぶ。独学でこれを学ぶのは難しいんだ。求める人が少ないから情報も少なくなってるよ。」

  1. 問題を論理的に分析する
  2. どんな結果を望んでいるかを明確にする。要求が曖昧なときどうするかを考える
  3. 前提条件に基づいて、結果を導く途中の計算式や手順(ロジック)を考える
  4. ロジックを元にプログラムコードに置き換えて、期待通りの結果になる迄1,2,3を繰り返す

「ざっとこんな感じだね。」

「ぎょっ!もっとアバウトに勉強してましたよ~。」

「ココまでが、プログラム作りの基礎だよ。独学でできる教材があるし、いつでもわからないことは質問できるから安心していいよ。人によって違うけど、早ければ半月もかからないんじゃないかな。」

「感覚的な、アバウトな方法だと、どんなにむしゃらに勉強しても非効率だし、重要ポイントが見逃してしまう可能性が高い。特に演習問題は避ける人が多いし、やっても腕試しのような感覚。論理的思考やロジックを身に付けるという意識を持つ人は少ないんだ。」

「なんだか、プログラミングって、めんどくさそうですね。やる気をなくしちゃいましたよ~。」

「だったら、方法は2つ」

  1. 本格的なパズルゲーム作りのプロセス体験からはじめてみる
  2. プログラム電卓的なプログラミングからはじめてみる

「まず、1番のプロセス体験。Windows版でそこそこのボリュームがあって、ゲームデザイン以外は全て体験できるからおすすめだよ。やってみたらプログラミングって面白いなって気づくはずだ。」

「やってみたけど、そこまではやりたくない! なら、2番のプログラム電卓的なプログラミング。これなら言語解説書だけでできるはずだよ。結局、中途半端にプログラミングをはじめたら必ず躓くことになるから、賢明な判断だと言えるよ。」

 

「オブジェクト指向の概念とClassの関係、それとClassの作り方がさっぱりわかりません。」

「概念が理解できなくても、Classは書けるよね。」

「ええ~。でも、Classを正しく理解しているか知りたいんです。」

「その気持ち、よくわかるよ。そもそも、なぜオブジェクト指向は生まれたのか?主流になったのか? その理由わかる?」

「いえ、歴史的なことは知りません。」

「BASICは、メインルーチンとサブルーチンという枠組みしかなくて、変数はどこで宣言してもいいし、存在していればどこからでもアクセスすることができるんだ。そうすると何が起こるかというと、設計せずにいきなり思いつきでプログラムを書いてしまう。問題があれば書き直す。変数も場当たり的なので、どの変数が何を記憶していて、どのタイミングで更新されるかわけがわからなくなるといったプログラムが多発したんだ」

「その後、C言語がメジャーになった。C言語はアセンブラよりも高機能と言った位置づけの低級言語なんだ。因みにこの低級って言うのはコンピュータに近いって言う意味だよ。で、プログラムの単位を関数という概念で仕様化されたんだ。プログラムを実行すると、main関数が最初に起動される。これだけが仕様化され、後は関数が関数を呼ぶという流れで目的を達成するという形になった。データ領域は、ソースファイル単位で隠蔽することも共有することもできたんだけど、後々これが問題になったんだ。」

「機能とデータが分離されていることによる様々な弊害や問題が発生」

「で、これらの弊害をなくすために<データと処理を一体化する>という概念が生まれ、オブジェクト指向へと進化したんだ。」

「このとき言語開発者は、とんでもないことを考えたんだ。これまでの言語概念では、コンパイルしたコードはいつでも実行できるもの。つまり、プログラム中に関数Aは一つしか存在しないという考え方。ところが、オブジェクト指向では、一つのClassを、好きな時にいくつでもそれぞれ独立して実行できるようにしたんだ。C言語風に言えば、一つの関数を複数コピーして、個別に独立して実行することができるということになる。この技術はとんでもない事だと思う。」

「ここまでは理解できた?」

「うっ! わかったようなわからないような・・・」

「だろうね。もう一度読み直して、わからないところや歴史を調べてみたらいいよ。」

「そうですね、これ以上聞いても頭の中を整理できなくなってますから。」

「この続きは、またの機会に」

 

自分では、指示されたプログラムは書いているし、作ってもいる。多少自信もある。

だけど、自分一人で考えて作り上げる事はできない。

どうすればいいんだろう? 何をすればできるようになるんだろう?

「いま、あなたはプロセス、つまり過程を考えていますよね。こういう場合、結果(有るべき姿)から逆に遡って考えると見えてきますよ。」

  • どうなりたいのですか?
  • 何をしたいのですか?
  • どうしたいのですか?

「自問自答しながら、途中のプロセスで何ができなければならないのかを考えて行くのです。」

注意点

「プログラム作りだから、どうしてもプログラムコードに意識が集中しがちです。
折角ロジックを考えても、実際にコードデバッグすると、ロジックが間違っていたり、処理が漏れていたり、順番が違ったりとコード修正が余儀なくされるため、次第にコードで考えて進めて行くスタイルになりがちです。」

「このスタイルは、末端のコードで思考するため、視野が狭くなります。論理性よりもコード優先、思いつき優先になります。コードの書き直しは断固拒否するようになります。発想や思考が言語仕様主体になってきます。人に対して論理的な説明をすることができなくなります。

一度コード主体にはまってしまうと、環境や状況を変えないと自分で変えるのは困難になります。

はじめから完璧な分析、設計・デザイン、ロジック、プログラム仕様はできないのです。

こう考えて下さい。

プログラム実装工程が全ての集約になります。だから、様々な問題はこの工程で発覚します。ただし、分析で見落としていたら、なぜ見落としたのかを考え次に活かすことを考えて下さい。設計、ロジック、プログラム仕様も同様です。ロジックに漏れや間違いや手順などの問題があれば、もう一度情報を集めてロジックを再検証するようにします。こうすることで、コード主体にはまることなく、様々な工程のスキルアップを図ることができます。

▲ページトップに戻る

こちらより必要事項をご記入の上お申し込みください。
プログラム作りマスターセミナー 申し込みする
補足事項に「プログラミング思考改善セミナー 成果保証付き」
とご記入ください。

プログラム作りマスターセミナー 申し込みする

▲ページトップに戻る