Edited at

仮説・検証(63)プログラム初心者が知らなくてもいいこと

プログラミングがなかなかうまくできない人。

情報処理技術者試験になかなか受からない人。

両方に共通する事を拾い出してみました。


言語の文法

文法をいくら知ってもプログラムは書けない。

文法は、コンパイラならコンパイルエラーを出してくれる。

コンパイルエラーを直しているうちに、文法は説明できなくても、エラーにならないように書けるようになっている。

言語処理100本ノックのプログラム例を拝見していると、自分の知っている文法を使おうとすると無駄な記述が増えるかもしれないと感じました。

言語処理100本ノック 2015(python) 落ち穂拾い 第1章: 準備運動

https://qiita.com/kaizen_nagoya/items/ee1b625b0b65cd63d42a


よい事例

よい事例は、知っていなくても、ソースコードとして存在していて、何度も動かしてみれば良い。

人間が知らなくても、計算機が知っていればよい。

標準入出力

四則演算

文字列操作

C言語であればCコンパイラ、Linuxのようなものでもよい。

よい事例より、自分の好きな分野の事例の方が、役に立つことがあるというのが経験則です。

プログラミング言語教育のXYZ

https://qiita.com/kaizen_nagoya/items/1950c5810fb5c0b07be4

65歳からのプログラミング入門

https://qiita.com/kaizen_nagoya/items/1561f910c275b22d7c9f


計算機の原理

不完全性定理

計算可能性

難しい原理を直接しらなくても、ソフトウェアでソフトウェアを検査しても確かめられないことがあることをなんとなくわかっていればよい。

プログラミング言語の勉強の仕方と水準

https://qiita.com/kaizen_nagoya/items/ba2651035339ef45b3aa

仮説・検証(39)プログラマにとって、何か知っている必要なことは何もない

https://qiita.com/kaizen_nagoya/items/30daf9836702bdefaf7d


まとめ

プログラム初心者は、文法、よい事例、計算機の原理にこだわらずに、

自分が作りたいと思うものを一度作ってみればよい。

そこで必要になる技術は、従来の常識ではない技術かもしれない。

熟練者の声に耳を傾けるより、熟練者がやったことを同じように動かしてみながら、

自分は違う道を探してもよい。

プログラム熟練者といっても、専門分野によって、必要な技能・経験がかなり違うかもしれない。

プログラミング言語を作ったり、改良する人

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 初稿 20190214 昼

ver. 0.02 まとめ追記 20190214 夕

ver. 0.03 はてなURL追記 20190218 早朝

ver. 0.04 参考URL追記 20190218 朝

ver. 0.05 標題追記 20190525

このエントリーをはてなブックマークに追加

http://b.hatena.ne.jp/guide/bbutton