How should I think when working?
仕事を進める前の自己学習で注意すること
仕事を進める前に自己学習をする時注意すること、
・自分が興味を持っていることだけや迫られていることだけを学び、慌てて実践にすぐ役立つような取り組みではなく、
やはり、
・ステップ、ステップで段階を経て学んでいく、ステップ型がいいですね。
(理由:来週からの実践に、ここを自学しなければ、知りたい、そして、これも知りたいと「つまみ勉強」をする。一を知り、五を知ると、さらに四も必要かなとあっちこっちの島を訪れていては、頭の中でロジックのつながった知識とはならず未完熟学習となります。多くの経験があればロジック化できる。
きっと最近多くの人がChatGPTで、Q&Aの行ったり来たり、その道中でいつかは、落とし穴(ピット・ホール)にはまります。
では、どうすればいいのでしょうか。
プログラミング開発的な視点で考える
学習方法をプログラミング開発思考で説明します。
学習の全体像をInput(データを入力)とOutput (出力)の視点で捉えます。プログラミングには構成する2つの要素
「アルゴリズム(出力までの処理をするロジック・ストーリー)」と「データ」があります。
ポイントその1:InputとOutputで考えよう
何を学ぶのか目的を明確にし、データを Input(入力)します、そして何を得るのか、Output(出力)するのかを考えます。
教材はこれだけでいいのか、他の教材はいらないかをデータとして考えます。データは今までの学んだテキスト、メモ書き、本に書き込んだメモ、ハイライトペンのあと、本の耳オリ(Dog-eared) もデータにつながります。
Output(出力)は自学用として、さらにチームの勉強用をInputに入れて考えれば最高です。
ポイントその2:プログラミングとはアルゴリズムとデータできまる
プログラミングとは目的を達成のために①アルゴリズム(処理)を設計し、②その過程で必要なデータを扱うことです。
ポイントその3:アルゴリズムとは?(出力までの処理をするロジック・ストーリー)
アルゴリズムとは、目的達成のためのロジックとストーリーで、①順次実行 ②繰り返し(ループ)③条件分岐によって作ります。3つの制御構造です。
この3つでJAXAの宇宙開発の理論は(資金や人材は成り立っていないかも)成り立っています。
ポイントその4:アルゴリズムの3つの構成要素
ポイントその3と重複しますが、①順次実行 ②(条件)分岐 ③繰り返し、学習だけでなく日常生活でも、①②③は解説不要であまり気が付かないでしょうが、日常の行動となって習慣化しています。
週末に公園に出かけたとき、順番に順次行動を立て、さて電車は? JR、私鉄、地下鉄、バス、どういう経路? かかる時間は? 交通費は?と「アルゴリズム(出力までの処理をするロジック・ストーリー)」と「データ」を使っていますね、”
駅で”しまったPASMOを忘れた、でもSUICA持っているからいいか”と、①②③を繰り返しています。
ポイントその5:データを扱う3つの道具 変数·関数·配列
「データの扱い」のための3つの道具、①変数 ②関数③配列を説明します。
①変数は、
データの入れ物、教材はPCのどのファイルに保存しているか、またはどのUSB、どのSSDか、または本棚のどこか?
②関数は、
決まった処理をするときの道具です。コンピュータはどれ、使うソフトは、そしてその結果何が出る、関数はデータを変換するものです。
③配列は、
データを入れておくデータベースです。EXCELの配列をイメージください(行と列ですね)。データベースでは行のことをRECORD、配列のことをFIELDと呼びます。
ポイントその6:データベースを扱う4つの方法。
4つは、参照·新規保存·上書き保存·削除。
・参照できる、データーベースを探して取り出し(取得)、
・新規保存ができる、新しい資料を新規保存することが例です。
・上書き保存はデータを取り出し、編集、修正したら戻して上書き(保存)する。
・削除できます。
ここまでのおさらい。
目的達成のためのロジックとストーリーで、①順次実行 ②繰り返し(ループ)③条件分岐、3つの制御構造です。
順次処理とは、処理する順番に記述されているプログラム構造のことで、単純に、上から下に処理が流れていくシンプルな構造のこと
反復(繰り返し)構造とは、条件を満たしている間、または条件を満たすまで処理を繰り返すプログラム構造のこと
(ループ構造の中にさらにループ構造がある二重ループ構造もあります)
分岐構造とは、条件によって処理内容が分かれるプログラム構造のこと
フローチャートを書くとプログラムの全体像が明確になり、設計漏れやバグを減らすことができます。学習プログラムの質が上がります。
以下が、一般的なプログラム開発のステップです。プロジェクトの規模や要件によっては、さらに細部のステップが必要になることも多くあります。サブシステムとのやり取りが必要になります。
|
|
開発プロセスは常に改善されるため、柔軟な対応が必要です。
Design Safety System