「プログラミング」の版間の差分
(→デバッグ) |
|||
(同じ利用者による、間の13版が非表示) | |||
1行目: | 1行目: | ||
[[Category:プログラミング]] | |||
[[ファイル:プログラミングのイメージ.jpeg]] | |||
一見極端ながら、妥当性の高い話をしよう。 | 一見極端ながら、妥当性の高い話をしよう。 | ||
16行目: | 20行目: | ||
[https://karino2.github.io/2023/04/02/should_create_greatest_things.html プログラマが凄いものを作ることについての雑感] | [https://karino2.github.io/2023/04/02/should_create_greatest_things.html プログラマが凄いものを作ることについての雑感] | ||
===プログラミングで挫折するポイント=== | |||
そもそも設計の概念が抜け落ちているから、という指摘がある。<ref>[https://qiita.com/ganma_/items/8609e82e5412c28b1e4b プログラミング初心者が挫折するまでの道のり #ポエム - Qiita]</ref> | |||
==教材== | |||
[https://note.com/shiba_program/n/n340a81ea3c8d プログラミング初心者がゲーム感覚で楽しく学べる無料サービス16選|苦しんでプログラミングを学んだ柴犬(くるしば)] | |||
教材づくり | |||
[https://qiita.com/konbraphat51/items/b138683db352afd77714 初心者向けゲームプログラミングJavaScriptライブラリを作り、講座をした #JavaScript - Qiita] | |||
==必須スキル== | ==必須スキル== | ||
26行目: | 42行目: | ||
事務レベルだと[[ChatGPT]]が使えること。<ref>[https://dev.classmethod.jp/articles/minecraft-programming-with-chatgpt/ 子供にマインクラフト使ったPythonプログラミングを教えようとしたらChatGPT使ったプログラミング不要な世界を体験させちゃった | DevelopersIO]</ref> | 事務レベルだと[[ChatGPT]]が使えること。<ref>[https://dev.classmethod.jp/articles/minecraft-programming-with-chatgpt/ 子供にマインクラフト使ったPythonプログラミングを教えようとしたらChatGPT使ったプログラミング不要な世界を体験させちゃった | DevelopersIO]</ref> | ||
===作ろうとしているものが何か理解できていること=== | |||
どのようなものをじつげんしようとしているのかについての具体的なイメージがきちんとないと、何も生み出すことができない。 | |||
==型== | |||
=== decimal型(十進小数) === | |||
[https://qiita.com/mod_poppo/items/dd2ac0af80993751ee5a decimal型(十進小数)に夢を見ている輩が多すぎる #浮動小数点数 - Qiita] | |||
decimal型(十進小数)は、浮動小数点数の問題を回避するために提案されるが、全ての実数を正確に表現できるわけではない。例えば、1.0 / 3.0 * 3.0 の計算は正確に1.0にならない。C#のdecimalやJavaのBigDecimal、PythonのDecimalなど各言語での実装とその限界を示し、用途に応じて適切な表現方法を選ぶ必要があると論じている。 | |||
==アルゴリズム== | ==アルゴリズム== | ||
32行目: | 60行目: | ||
問題解決指向プログラミングの本質。 | 問題解決指向プログラミングの本質。 | ||
詳細は[[アルゴリズム]]の記事を参照のこと | |||
==プログラミング言語と仕様== | ==プログラミング言語と仕様== | ||
アルゴリズム表現のルールと制約 | アルゴリズム表現のルールと制約 | ||
==コーディング== | |||
[https://azukiazusa.dev/blog/start-with-the-ugliest-code-that-works/ 最小限のコードで動く最も汚いコードから始める] | |||
[https://blog.ojisan.io/kuso-code-wo-yomasenai/ クソコードを読ませない | blog.ojisan.io] | |||
==リーダブルコード== | ==リーダブルコード== | ||
42行目: | 78行目: | ||
==コーディング効率化== | ==コーディング効率化== | ||
[https://codezine.jp/article/corner/936 開発用エディタのド定番「VSCode」を使いこなそう一覧|CodeZine(コードジン)] | |||
Ctrl(Cmd)+Dで複数選択からの、一括編集(VScode等) | Ctrl(Cmd)+Dで複数選択からの、一括編集(VScode等) | ||
50行目: | 88行目: | ||
[https://zenn.dev/kazuchanfl/articles/e698acd4a74da6 デバッグの思考法(問題の定義と分析について)] | [https://zenn.dev/kazuchanfl/articles/e698acd4a74da6 デバッグの思考法(問題の定義と分析について)] | ||
[https://qiita.com/koki2022/items/b1ece532c9ccdcbb7465 研究室向け なぜ君はソースコードのエラーを自分で解決できないのか? - Qiita] | |||
デバッグ開発段階で出来ないと、場合によっては重大な事例となる。 | |||
[https://gihyo.jp/article/2023/11/zengin-nttdata バグは“数千パターンのテスト”をすり抜けた ―NTTデータ「2023/10/10 全銀ネット障害」について説明 | gihyo.jp] | |||
とはいえ大変<ref>[https://speakerdeck.com/soukouki/zi-zuo-ckonpaira-8shi-jian-nofen-dou 自作Cコンパイラ 8時間の奮闘 - Speaker Deck]</ref>なので、コーディング段階でテストしながら書くクセをつけておくのがよい。 | |||
==社会問題解消== | ==社会問題解消== |
2024年9月15日 (日) 23:06時点における最新版
一見極端ながら、妥当性の高い話をしよう。
間違いなく、これからの時代は、プログラミングが前提となる社会がくる。
理由は簡単で、少子社会だからである。
心配はいらない。インターネットが使えれば、無料で学習が可能で、仕事もゲットできる。
そして、これまでのプログラミング教育は全て無駄になる。ChatGPTを踏まえた教育でなければ。[1]
プログラミングとは
https://speakerdeck.com/yosuke_furukawa/puroguramingujiao-yu-nituite-gong-kai-ban
プログラミングでものを作るということ
プログラミングで挫折するポイント
そもそも設計の概念が抜け落ちているから、という指摘がある。[2]
教材
プログラミング初心者がゲーム感覚で楽しく学べる無料サービス16選|苦しんでプログラミングを学んだ柴犬(くるしば)
教材づくり
初心者向けゲームプログラミングJavaScriptライブラリを作り、講座をした #JavaScript - Qiita
必須スキル
職業レベルだと、環境設定や構築までできること。
事業主レベルだと、ハードとソフトの両方を理解していること。
作ろうとしているものが何か理解できていること
どのようなものをじつげんしようとしているのかについての具体的なイメージがきちんとないと、何も生み出すことができない。
型
decimal型(十進小数)
decimal型(十進小数)に夢を見ている輩が多すぎる #浮動小数点数 - Qiita
decimal型(十進小数)は、浮動小数点数の問題を回避するために提案されるが、全ての実数を正確に表現できるわけではない。例えば、1.0 / 3.0 * 3.0 の計算は正確に1.0にならない。C#のdecimalやJavaのBigDecimal、PythonのDecimalなど各言語での実装とその限界を示し、用途に応じて適切な表現方法を選ぶ必要があると論じている。
アルゴリズム
こうしたらこうなってこうなる。
問題解決指向プログラミングの本質。
詳細はアルゴリズムの記事を参照のこと
プログラミング言語と仕様
アルゴリズム表現のルールと制約
コーディング
リーダブルコード
https://zenn.dev/sutamac/articles/ed0a8eff9ca1f9
コーディング効率化
開発用エディタのド定番「VSCode」を使いこなそう一覧|CodeZine(コードジン)
Ctrl(Cmd)+Dで複数選択からの、一括編集(VScode等)
デバッグ
ソフトウェアやプログラムの問題を改善するために行う、ソースコードの改善やそのためのさまざまな取り組み。
研究室向け なぜ君はソースコードのエラーを自分で解決できないのか? - Qiita
デバッグ開発段階で出来ないと、場合によっては重大な事例となる。
バグは“数千パターンのテスト”をすり抜けた ―NTTデータ「2023/10/10 全銀ネット障害」について説明 | gihyo.jp
とはいえ大変[4]なので、コーディング段階でテストしながら書くクセをつけておくのがよい。
社会問題解消
人間に解決できないことが、低コストで解決出来るようになる。
経済格差
高い金払ったり奨学金がなくても、実践レベルまで情報はインターネット上にある。
要するに、お金をかけなくても、勉強はできる。
実力があれば関係ない。