《UNIX编程艺术》是一本由Eric S. Raymond著作,电子工业出版社出版的平装图书,本书定价:59.00元,页数:525,文章吧小编精心整理的一些读者的读后感,希望对大家能有帮助。
《UNIX编程艺术》读后感(一):TAOUP给我们的启示
"Those who don't understand Unix are condemned to reinvent it, poorly." – Henry Spencer 1987.11《UNIX编程艺术》(简称TAOUP,是对Knuth的TAOCP的致敬)讲解UNIX社区的历史、理念、哲学、原则,及其相关技术和软件。可作为故事书看完,也可作为相关技术参考。很奇怪的是,我基本上认同了该书陈述的所有理念与哲学,仿佛那些只是很自然的事情又似乎每一个人都可以接受一样(其实肯定并非如此),尽管我并非真正意义上的程序员或者黑客。
看完这本书我最大的收获或者想与大家分享的还不是书中的理念、哲学、技术,而是一个事实。通过作者的那番陈述(其实只是他叙述的方式在深深地影响我),我看到在我所在的这个地区(大学)的一个没有被太多人关注或者讨论的事实:目前我和我的同事、学生缺乏的不仅仅是理论、技术,可能更重要的问题是,我们缺乏一个具有统一理念且保持稳定发展的专业社区。
拿程序开发而论,我们往往看到我们讲授程序开发的局限性,也看到提升程序员能力的迫切性,更认识到目前要提高大部分同学编程能力的不可能性。一直在反思,是什么导致了这样的窘迫局面?我们有批评过教学的方法、教育的制度,也批判过社会的各种风气。然而,看完TAOUP之后,我想,如果我们的学生不能有(并且进入)一个可以影响他一生的程序员社区,不能学习生活在某个稳定的程序员社区中,并受一种薪火相传的理念或者称为文化氛围所熏陶与影响,他们在程序员这个路上势必无法走远。
稍微回顾一下我们学院CSer教育之路:大一学C、C++ (Windows 编程),然后Java,然后有数据结构、操作系统,再接着某些TCP/IP编程、做网站等等,学点数据库或者再加上软件工程。似乎学了很多知识,但是只要问一个问题,也许很多问题就暴露出来:我们培养的是具有何种统一技术理念的程序员?
这个问题在TAOUP中频频强调。我们号称培养的是灵活多变的程序员,无论什么操作系统都懂的程序员,反过来,其实是什么操作系统都不懂的程序员。也正因为我们不强调操作系统,那么操作系统所赋予的许多理念就不可能被传授,比如UNIX社区中的开源文化、代码重用、摒弃丑陋的GUI等等。这种不重视操作系统理念的编程教育,不能不说是因为Wintel 的崛起或者我国计算机教育的落后状况造成的极坏后果。
Windows为了满足一般用户桌面应用需求,提出“可见即所得”的理念,被鼓吹了20年。我们培养的程序员大部分是欣然接受这种理念的,尽管我并不能称他们是Windows程序员。我们培养的毕业生的毕业论文经常有很多丑陋的排版,只要你向他们指出,他们都归咎于Windows:没办法,Word就是这样工作的。比如,一张图片挤不进一个版面就会挤压到下一个版面而导致有一页有大量空行这样的错误。我不知道是否“Word就是这样工作的”,但是“可见即所得”绝对值得再写一篇文章批判。
我知道,要扭转这样一种简单的错误看法我们都需要花费上十年的工夫或者干脆是不可能的任务。为什么?因为他们身边大部分人都是这样的一般非技术用户,因为他们的老师、他们的技术主管、他们的领导都是从小就被Windows培养出来的专门人才。但是不要忘记,他们并不是Windows系统的专门人才,而仅仅是被简单而丑陋的系统惯坏了的用户罢了。我举这个例子只是想说明,要改变某些看上去容易改变的现状是非常非常困难的一件事情(注:批评Windows系统并不是一件容易接受的事情,更别提改变使用Windows的陋习是容易的事情。所以,我愿意为以上见解接受所有批评。),重点是没有一个正常的环境,即我一开始就提出的那种所谓的“程序员社区”。
如果我倡议说,把这样的社区建设起来,那也未免过于乐观了。一种文化氛围的建设岂是一人之力、几年的工夫可以完成的呢?那是不是就不可补救呢?也不尽然。当务之急,我想,首先要倡导尽可能多的同学在Linux下学习、编程、娱乐。其次,相关课程逐步跟进,比如,大一的编程、大二的操作系统、计算机网络等课程多强调Linux操作系统。希望星星之火可成为薪火相传之火、可以壮大成燎原之火!
也有人会问,那Windows操作系统这么流行就不讲了?答案是,Windows是流行,但是真没什么可以讲。所谓没什么可以讲是因为Windows本身就缺乏一种传统,而且它还是闭源系统,你讲什么?估摸现在能讲XP的老师都没有,但是XP已经退休了。那该讲Win8?嗨,这可能吗?就算能讲,讲完了估计该出Win10了。哦,不,也许是Win13,谁知道呢?
将IT文化建设的问题推广一步:一个地区的文化如果缺乏统一传承,那么这种文化即呈岌岌可危之势。在这一点上,我中华文化的传承中已经日益凸显其危机啊,就不提也罢了。不过,是该反思反思了。应该看到的是,我们的IT文化尚未成型,IT文化社区尚未建设,足可一叹,。这就是TAOUP给我的启示。分享给大家,应该是给大家的启示!
《UNIX编程艺术》读后感(二):简单就是美
最近这段时间比较忙,利用业余时间看完了这本书。虽然书中讲到的很多例子都是上古文物,我没有用过,不过原理都是相通的,对我的启发很大。比如无所不在的KISS原则,实践中慢慢体会到的SPOT原则,无不产生共鸣。下面是这些原则的一些笔记和个人理解。《UNIX编程艺术》读后感(三):每个人都要保持简单、只顾眼前利益
两年前初入百度公司,读了这本书,然后就一直在linux上深入发展,深得unix编程艺术的启发。附上当年的总结的笔记:《UNIX编程艺术》读后感(四):时时提醒自己KISS
之前读过《Linux/Unix设计思想》一书,加上这些年使用Linux的经验,对Unix的一些思想有所了解。读这本书就是一个老牌黑客给你讲各种经验和故事,穿插着上古时期的各种大神尊者的趣事。《UNIX编程艺术》读后感(五):do one thing,and do it well -- 《UNIX编程艺术》书评 --luikimfai
断断续续的把《UNIX编程艺术》看完了, 实话说还记得的也就do one thing,and do it weill 和 保持程序模块化 这两点, 作者是一个UNIX大师, 全书并不讲解UNIX是怎么搞出来, 而注重于UNIX的编程思想。 程序总是会过时的,代码必须随时代不断演化, UNIX漫长的进化过程中, 正是这些编程思想保证了其长盛不衰的生命力。《UNIX编程艺术》读后感(六):编程艺术实乃人类行为和心理之理解
本书多处提到“禅宗”,“禅宗”是一种哲学,用于指导人的行为和心理。编程则是人类众多行为中的一种,因此,如果对人类行为和心理有比较深入的理解和认识的话,因势利导,那么我们写出的程序将会更有质量,效率也不会差。
在此之前看过《编程大师访谈录》,多位编程大师都建议:大学时先学习数学、物理等,甚至是历史,在研究生阶段再学习计算机和编程。我的理解是:计算机和编程是对我们生活所在的世界和社会进行抽象和建模,是解决问题的方法和手段,需要我们对周遭的世界和社会有了比较深入的理解和认识。
试举一两个例子说明一下:
【模块化】:背后的逻辑是,人类大脑能够处理的信息是有限的(譬如一次最多只能记住7位数字),如果程序逻辑混杂在一起,那么人类将很难理解。这和我们人类常将各种东西分类是一个道理,譬如将科学分为:物理、化学、生物等;将动物分为爬行动物、哺乳动物等等。分类的一个好处就是将复杂的东西切割,切割成人类大脑能够处理的区块。
【透明性】:背后的逻辑是,人类的大脑总是寻求捷径,而对于复杂的东西,学习是有成本的。让人一看就知道怎么使用的程序自然是人类最喜欢的。
编程规范、程序的可读性等背后的逻辑是,人类的能力和素质总是参差不齐,为了保证软件的质量,通过制定规范,约束人类的行为,从而规避掉参差不齐素质下的不确定性。