プログラム初心者が知らなくてもいいこと。仮説(63)
改訂版です。
プログラミングがうまくできない人。
仕事で人の役にたったという実感のない人。
情報処理技術者試験に受からない人。
前向きになれない壁を拾い出してみました。
壁1 言語の文法
文法をいくら知ってもプログラムは書けない。
文法は、コンパイラならコンパイルエラーを出してくれる。
コンパイルエラーを直しているうちに、文法は説明できなくても、エラーにならないように書けるようになっている。
言語処理100本ノックのプログラム例を拝見していると、自分の知っている文法を使おうとすると無駄な記述が増えるかもしれないと感じました。
言語処理100本ノック 2015(python) 落ち穂拾い 第1章: 準備運動
https://qiita.com/kaizen_nagoya/items/ee1b625b0b65cd63d42a
最初に覚えるプログラミング言語は何がいいですか?
覚えなくていいです。
壁2 計算機の原理
不完全性定理
計算可能性
難しい原理を直接しらなくても、ソフトウェアでソフトウェアを検査しても確かめられないことがあることをなんとなくわかっていればよい。
プログラミング言語の勉強の仕方と水準
プログラマにとって、何か知っている必要なことは何もない 仮説(39)
https://qiita.com/kaizen_nagoya/items/30daf9836702bdefaf7d
壁3 ソースコード
ソースコードを眺めていてもさっぱりわからない。
ソースコードは人間が読むものとは限らず、まず計算機に読み込ませて、コンパイルまたはインタプリタで動かしてみれば良い。
人間が知らなくても、計算機が知っていればよい。
標準入出力
四則演算
文字列操作
C言語であればCコンパイラ、Linuxのようなものでもよい。
よい事例より、自分の好きな分野の事例の方が、役に立つことがあるというのが経験則です。
プログラミング言語教育のXYZ
https://qiita.com/kaizen_nagoya/items/1950c5810fb5c0b07be4
65歳からのプログラミング入門
まとめ
プログラム初心者は、文法、よい事例、計算機の原理にこだわらずに、
自分が作りたいと思うものを一度作ってみればよい。
そこで必要になる技術は、従来の常識ではない技術かもしれない。
熟練者の声に耳を傾けるより、熟練者がやったことを同じように動かしてみながら、
自分は違う道を探してもよい。
プログラム熟練者といっても、専門分野によって、必要な技能・経験がかなり違うかもしれない。
プログラミング言語を作ったり、改良する人
OSを作ったり、改良する人
図を書いたり、絵を書いたり、絵・図を描く道具を作る人、
DB(data base)、Webの仕組みを作る人
通信規約、入出力の装置運転(device drivere)ソフトを書く人
プログラム熟練者と言いながら、自分の分野でしか有効でないことを強調される人はいっぱいいる。
~~おかしなことを言う人はいっぱいいる。(#include <this>)~~~
オブジェクト指向についての記述の9割は特定の設計手段に偏っているか、おかしい。
関数に関する記述の5割は、副作用についてきちんと言及していない。
C言語規格では、副作用について、かなり詳しく書いているのに。
C Puzzle Bookの有り難み5つ、C言語規格及びCコンパイラの特性を認識
https://qiita.com/kaizen_nagoya/items/d89a48c1536a02ecdec9
文書履歴
ver. 0.01 初稿 20221225
ver. 0.02 ありがとう追記 20230622
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.