看完谭浩强的书,不会编程是肯定的_风闻
asiavikin-军事与科技杂谈,同名公众号2022-01-04 22:14
【本文来自《单纯学习C语言的话,谭浩强的教材可以算是垃圾中的战斗机了》评论区,标题为小编添加】
哈哈哈,说得太对了!
谭浩强是没有实际程序开发经验的人,他的书(我指的是早年的版本,包括90年代中期以前出版的)是在根本没有程序语言教材的年代弄出来的,看完了他的书不会编程是肯定的。
他的书中范例都是软件工程思想的好教材,当反面教材的那种好法。
通览整本书就没提过什么软件工程思想,更谈不上在范例中体现一下。一说变量基本就是v1、v2,一说程序名大体就是p1、p2之类的。自学者看了这种书是不会有软件工程的概念的。
好的编程书籍是必须在范例中体现出软件工程思想的,在编程的同时把软件工程的思想潜移默化地传授给读者。这并不难做到,例如,在程序名称、变量名称上体现出来,当然同时要向读者解释这样做是来源于软件工程思想。一个程序名要定义成一看就知道其功能是什么的。至少要有一到两个描述其功能的单词出现在程序名里,否则过几天后编写者自己都不知道这程序是干什么的了。干大工程的程序员经常碰上这种事,你以为程序员会记得住一个月前写的那段代码的细节吗?早忘到爪哇国去了。
再比如,在程序段前、段中都要有注释。对于变量也要有注释,这个变量是干什么的;对于程序段就更要有注释,告诉将来的自己这个程序为什么这么写,需要注意的关键点是什么,别过了俩星期就忘得干干净净了,你以为这种事不会发生吗?哈,对程序员来说,那才真是家常便饭呢。
为什么要这么做?可以这么说,一个不爱写注释的程序员注定不是个好程序员,因为这种人既无远见,更没有团队合作意识。现在的年代已经不是比尔盖子那帮人单打独斗的时代了,必须是团队合作,大工程就更是要讲团队合作。什么是团队合作?就是善于沟通,善于主动和别人协作,也就是你的工作要充分考虑到方便别人接手。如果你连这种意识都没有,那就一辈子干个体户好了。
所有这都是很小的细节,但你忽略了那就严重影响代码的维护和修改效率。
而谭的书里绝大部分程序范例里是没有注释的,对于初学者极不友好,而且还教给人家坏习惯:编程序不写注释。所以我看不上这种玩意。居然还有人吹捧谭的书是什么基础。坦率地说,他那书虽然不是一无是处,但只能算水平非常次的基础书而已,北大的裘宗燕写的就比他那书好和透彻。
总之,以前没书可看的时候那就只好看看谭浩强的书,现在就大可不必了。真想好好学编程,可以把Linux的内核代码包下载了自己看看,起码知道高手们的程序是怎么写的,都有哪些好习惯,不至于被一些如谭浩强之类的烂书给带到沟里去。