1188| 0
|
编程人生 |
最新书评 共 12 条
图灵教
这两天每天中午午休前都会看一些《编程人生》。现在已经看了七八个人,这些人开始编程的时候,正好是计算机的起步期,所以对整个计算机的底层都比较了解。不知道这是不是这些人能够成为大师的一个必要条件,自己有没有必要在这方面努力一下。我想这也是很多程序员思考过的问题。现在分享一下我的思考,和大家一起探讨。——ps:这些人大部分在中学的时候就开始编程,而那个时候我们一般都正在为考试闷头学习,这个差距要我们现在来弥补。
好的,首先有必要澄清一下“底层知识”的概念,对程序员来说什么才是底层知识?
一般情况下,我们可能会认为底层知识就是操作系统,编译器,寄存器等等相关知识。我认为这个问题是相对的,而不是绝对的。这取决于程序员从事那个层次的开发工作。如果是一个c语言开发者,把这些知识归为底层知识也许很合理,但是对一个java或者更高级语言的开发者来说,有些不准确,或者不可以称为直接的底层知识。
我认为,所谓的底层知识,是指他编程或开发所依赖的平台(或者框架,工具)的知识。比如,对于java开发者来说,java虚拟机,以及它所用的框架等知识就是他的底层知识,而更底层的知识,姑且叫它间接的底层知识吧。
为什么要学习底层知识?
不学习底层知识可能不会阻碍你称为一个称职的程序员,但也许会阻碍你成为一个优秀的程序员。
了解底层的知识有助于解决问题,并且做出更好的设计。打个比方,就像庖丁解牛,他看到一个牛后,不止看到的是牛,而是由各个骨骼,经络,肌肉等模块组成的有机体——整个系统对你来说就是赤裸裸的,没有任何神秘的面纱。这样也许能够给程序员提供更多的安全感。
但是如果你编程所依赖的平台需要你去了解更底层的知识才能够解决问题,那么,他可能没有做好他应尽的职责。
底层知识从何学习?
《编程人生》中有一个人提到过,要敢于去“打开盒子”,看里面到底是什么。而我要补充的是,尽量去打开你身边的盒子。
现在开发有个特点,就是分工越来越明确,而且整个编程的知识体系结构也越来越庞大,我们面前的“盒子”很多,我们没有精力去把每个盒子都打开。学习底层知识就要从你最直接的底层开始学起。一方面,你在工作中会遇到类似的问题,有了需求,学习效率就会高很多;另一方面,你也有这方面的基础,学起了可能更加的水到渠成。
当你把你的底层知识征服了,你就有资本(基础,能力)去征服更底层的知识了。
不学习最底层的知识是否会阻碍成为大师?
思考中。
发现我对学习本身的投入超过了对学习内容的投入。不知道是好事还是坏事。总之,要专心学习技术了。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chgaowei/archive/2011/06/01/6460287.aspx
转自:http://blog.csdn.net/chgaowei/archive/2011/06/01/6460287.aspx
详情
图灵教
这是一本让人激奋又让人颓唐的书;这是一本让人学会狂妄,或者懂得谦卑的书;这是一本让人藐视编码,或者尊重编码的书;最终,它是一本教会我们从程序中收获乐趣的书,教师是这样一批让人高山仰止的牛人们。
正是因为这些牛人们不同寻常的经历,使得我们在阅读本书时,既充满了孜孜以求的决心,又觉得那样的高度太难攀登,以至于自惭形秽。这些牛人们或者是狂狷的geek,或者是低调谦虚的学者,如此不同的混合体在一本书中展现,仿佛万花筒一般展现程序员的不同魅力,就让我们觉得目不暇接,他们中的谁才称得上是我们心中的偶像呢?这些牛人们都是一群天资聪颖的编程高手,面对编程中的难题,他们有着绝世高手的风范,十步杀一人,千里不留行,编码对于他们而言不值一提,却又乐此不疲。他们都是程序世界中的掌控者,先驱者,阅读本书,就是阅读他们的人生征途,和他们对话,了解他们的精彩人生。
本书的作者即书中十五位软件先驱的采访者,本身就是Common Lisp的专家,这就使得访问者与被访者的对话是平等的,能够在深层次挖掘问题,直达问题的本质。因为是访谈,所能能够容忍不同意见,看着不同专家就同一话题表达相反的看法,就给了我们一种很新鲜的感觉。这本书不再是同一张面孔,因此可以一直读下去,而不至于厌倦或疲惫。然而,通读此书,我又发现虽然千人千面,却又都是两只眼睛,两只耳朵,一个鼻子一张嘴。书中的这些牛人们其实又都有着诸多相似的一面。他们:
1. 都是技术的狂热爱好者,并深深为自己从事的行业感到自豪;
2. 都是编程的执著爱人,至今仍不放弃编码;
3. 从小就表现出对计算机的狂热,他们精通的语言几乎都是自学;
4. 不太在意软件工程的方法学,在他们心中有着属于自己的标准;
5. 对程序之美的观感几乎一致,那就是简洁、清晰和优雅;
6. 大多数不在意设计模式,甚至轻视设计模式,对于设计,自有他们的一套主张;
7. 都认为编程并不需要了解底层,但如果能了解底层,会更好;
8. 拥有好的数学天赋,或许可以说在数学家中,他们编程编得最好,在程序员里,他们数学学得最好;
9. 更倾向于自己是工匠或艺人,然后才是科学家;
10. 他们都是一群理想主义者,又是一群实证主义者,他们讨厌政治。
这些共同要素,是否就是成为编程高手的必备呢?如果是,那么检查检查自己,看看自己能否在未来跻身他们的行列?即使不能成为像书中主角那样的牛人,比照他们,也可以审视自己选择的路,你走得快乐吗?你感到自豪吗?对于编程,你还在意吗?
摘自:http://www.infoq.com/cn/news/2011/04/programming_life
详情
图灵教
读这本书,你不能指望从大师那学到什么可以立马上手的技能,也不能奢望读完了你就站在了大师的肩膀从此可以一览无遗。相反,这是一本介绍15位世界级编程大师的“发迹”史的。开放的国度和文化造就了先进的IT业,还有他们,这些中国读者熟悉不熟悉的名字。
所以,换个角度看,阅读这样的书是一种奢侈。每位大师都被迫回答相似甚至相同的问题,迎接每位IT粉丝的八卦心理。
“你最早什么时候开始编程的?”,“你还记得你写的第一个有趣的程序是什么吗?”OK,他们对于这样问题的答案,无疑会让粉丝们在被头衔唬住之后,又让粉丝顶礼膜拜一番:那些事情发生得太早了,现代人几乎不知道那些答案是什么。所以访谈的开头部分,基本上对于读者来说价值不大。
这样的问题还有:“你用过Knuth的文学编程吗?”,或者类似“你使用怎样的工具写代码?”你会发现,但凡大师级的人物,都是自信的,甚至是偏执的,比如对于工具的选择,他们的答案多半是“我打开Emacs就开始写了”,或者是“我使用记事本写就好了”。看,这是大师的选择,你是不是也要这么干呢?
不一定每位大师生来就是天才,但不必怀疑他们对于程序代码一生的追求和兴趣。我们可以看到他们之于这份事业的执着,学习他们的态度。
值得推荐的是,他们对于编程语言的看法(比如Joshua Bloch对于Java发展的自信以及不满),还有对于开发过程的看法,怎么调试代码,对于优秀书籍的推荐,他们还会谈到怎样跟团队合作。
甚至你还能看到他们彼此间的争执,是的,就这本书里面。比如Douglas Crockford和Brendan Eich关于ES4的争论和调侃。这个世界本来就没有什么绝对的对与错,不是么?大师亦如此。
一千个读者,就会读出一千个不同的编程人生。这是一本枕边书,需要反复读、细细体味。
摘自:http://www.infoq.com/cn/news/2011/04/programming_life
详情
厚脸皮
以访谈录的形式来将15位软件先驱的方方面面融合到一本书,起码对于采访者有非常高的要求,这点来说,Peter Seibel做的非常成功,他对技术及程序员到软件先驱的成长路上的经验与挑战有很好的把握,也就是说,通过Peter的访谈,读者基本能找到自己想要的,也正是本书的一大特色,不需要软件先驱们自己立传出书,而是通过一些轻松的访谈甚至是类似脱口秀的方式来布道解惑。
我一般喜欢在下班之余,一个人在空荡荡的办公室看上一段,看的比较慢,但是收获还是挺多的。同为80后,我很好奇Fitzpatrick(偶一直怀疑Fitzpatrick是不是Fitz与Patrick的合体*_*)的成长历程,该君生于1980年属于前期的80后,5岁的时候就在父亲的有意引导下在appleII上进行编程(这是个很好的开端,5岁的时候偶还在和泥巴、玩鼻涕……),6、7岁的时候阅读appleII程序员手册……不过此君还真的算天赋异禀,最好的表现就是在6岁的时候能抽象出打印变量然后用一行代码代替40行代码(估计就是36个字母加上一些标点)的事例,对比我大学时候一位师弟不会for循环直接写N次代码的往事,此君简直就是天使。
我最喜欢的一个小故事就是Fitzpatrick向同学兜售自己写的游戏,当时显示器支持2种模式,EGA和VGA,需要不同的贴图处理,估计此君程序检测显示接口不是很健壮,所以经常导致很多同学买了游戏,回去运行就是黑屏,然后家长就电话过来向Fitzpatrick的母亲说Fitzpatrick拿了个没用的东西在他孩子那骗钱,于是的母亲就开车带着Fitzpatrick去该同学家上门服务,解决软件问题。这情形看起来挺搞笑的,也很温馨,不说误工费,或许Fitzpatrick妈妈开车来回一趟的汽油费都不止Fitzpatrick卖游戏的钱,可是他妈妈还是如此的支持。
Fitzpatrick君在中学的时候因为痴迷CGI而说服当地ISP运行他自己写的一个投票脚本,也就是后来流行的FreeVote;之后,进大学的前一年,Fitzpatrick开始了LiveJournal,运营LiveJournal期间,Fitzpatrick在解决LiveJournal运营问题的时候,发布了memcached和perlbal等优秀的开源软件,具体的原因及解决问题的步骤,这里不再复述:),通过大学期间运营LiveJournal,Fitzpatrick发现并解决问题,成为他成长的一个黄金时期。在回顾自己大学生活的时候,Fitzpatrick觉得在大学期间经营事业是最好的方式----对比起那些在大学仅仅完成学业的同学,或者是提前退学经营事业,Fitzpatrick在学业与事业中找到了一个很好的平衡点。
Fitzpatrick因为熟悉Perl等高级语言,但是他还是强调底层的重要性,认为高级语言程序员还是很有必要知道一些底层知识。
Fitzpatrick眼中优秀程序员的最大特点就是自我驱动,能做很多没有人安排他做的事,积极主动,对工作充满激情----这个也就是目前Fitzpatrick在Google招人的必要条件。
一些来自Fitzpatrick的建议:
1.像科学家般的思考,一次改变一样东西;
2.有耐心,试着去了解问题的本质,学会增量的开发;
3.学习提高沟通技巧,包括在邮件列表里的书面沟通;
详情
杨爽
读完图灵俱乐部译的《编程人生》的前两章,给我第一感觉就是:听君一席话,胜读十年书。 Peter Seibel先生对编程先驱Zawinski、Fitzpatrick的访谈非常精彩。从这两章访谈中,我收获到了以下几点:
1. 保持好奇心,充满激情,编程人生才精彩,编程人生才快乐。著名黑客Zawinski好拆卸电子玩具一样对软件的内在充满了好奇,Fitzpatrick从小就对软件的神奇如痴如醉。同时,Fitzpatrick告诉我们,绝不能把编程仅仅当工作来看待,而应该是一件充满乐趣的事情。换言之,作为一个软件开发者,如果你仅仅以薪资衡量你的代码的话,那么还是赶快找个后路吧。
2. 语言没有优劣之分,在语言之间的优劣性方面打口水战是毫无意义的。在Perl语言方面,Zawinski和Fitzpatrick就存在巨大的分歧。 Zawinski认为Perl的语法太过古怪,数据结构一团糟;而Fitzpatrick就非常喜欢Perl的灵活性。而在C++语言方面,两位大师表现出一直性厌恶型。不过,对C++的厌恶只是厌恶,Fitzpatrick还是得用C++来构建高性能的程序。
3. 大师们与我们同在。Zawinski为Emacs贡献了很多。在我们用Emacs编辑代码时,Zawinsk与我们同在。当我们使用memcache这个Web前端利器时,Fitzpatrick就与我们同在。
4. 教育要从娃娃抓起。Zawinski和Fitzpatrick很小就接触了编程,发现并且发展了这方面的能力,终成一代大师。
5. 做软件产品,情况不同,侧重点也不同。做新产品抢地盘,及时推出质量合格的产品才有生存的机会。而有条件的话,早期更充分的考虑软件产品后面运营可能遭遇到的问题,后面改动的成本就会大大降低。
后面还有十三位大师的访谈录,真想知道会带给我些什么更精彩的内容。
【自】http://blog.csdn.net/peacon/archive/2011/01/15/6143359.aspx
详情
杨爽
很高兴收到图灵出版社<<编程人生>>这本书,这本书汇集了众多杰出的程序员先驱者们的故事,比如Unix,C语言作者之一Ken Thompson、算法巨著<<计算机程序设计艺术>>的作者Donald Knuth。作为热爱编程的一员,能在这里了解到他们对职业生涯的想法以及对编程的看法实在是太棒了,于是收到这本书时,我很激动且毫不保留的将这书推荐给我的同事和朋友(本文的另一作者灾难)。
这本书通过采访的方式并辑录而成,也许在这种谈话方式下其回答可能会不全面,但这是他们最真实最直接的编程感受和体验。从访谈交流的过程中字里行间体会到他们对所从事的工作的热情,并享受以此带来的乐趣。工作而非工作,是生活中的巧克力。因提快程序速度而兴奋;因新出语言特性不合理而愤怒。他们在程序的世界里面享受产品与技术带来的欢乐、抽丝剥茧得到真相的成就,为了计算机领域更加美好的拼搏。
Brad Fitzpatrick在他的程序世界搭建自己的世界,在他的程序世界里面有他的生活,程序中有他的生活乐趣,因为父母看到了孩子喝酒的帖子,想起了 “啊,要做个权限了。”;想取笑朋友一篇傻乎乎的文章,“啊,要做个评论的了。”因为觉得有趣而编程,因为编程生活变得有趣。
Jamie Zawinski觉得要从产品的角度去生产,而不是为了抽象而抽象,不能因程序员的过度追求完美而过度设计,有些为了完成功能也许采用了不是很完美的解决方法,可是这样能让产品推出去,而不是成为没人使用过的代码。Douglas Crockford极力反对ECMAScript4纳入ECMAScript语言标准里,努力推进WEB向前发展。作为JavaScript的布道者,从更高的角度去修正ECMAScript规范,以WEB的发展为己责,优雅的编程,用程序写作,从语言的特性出发去了解语言,利用该语言编写优美的程序,就像写散文一般,从艺术的角度解读程序;计算机领域有着产品生产以及计算机科学领域,从他们的谈话中,有些如何在产品生产和计算机科学领域中平衡的观点值得借鉴。
Ken Thompson对于代码的编写认为不是一成不变,当发现了新的程序结构划分或更好的实现方式会修改它,当发现旧的代码实现混乱难于修改便扔掉这些腐烂的代码,对于现有的代码,他的态度是从不迷恋,这也许正应对了我比较认同的一句话“天天重构,每天重构那么点点。”
记录这些谈话并不是漫无目的的,从几个方面和这些软件先驱者进行问答,对于编程语言的想法、对于团队管理的想法、对于编程方式的想法、对于程序产品的想法、对于设计架构的想法、关于编程调试、怎样培养新人的想法。从这本书中得到这些软件先驱者多少年积累下来的经验以及思考,可以从他们的视角去看待这些问题。虽然有些问题解决场景在今天来说并不适合,可是有了他们在这些问题上的探索,我们在解决同类问题时多了些参考与思路。
从他们的经验中得知他们走过怎样的路,什么样的路是失败的路,怎样才是比较好的解决办法,如何去思索现有的问题,如何去解决,当然他们的经验并不对每个人都适用,对于我们这些后来者而言,吸取精华为己所用,体会编程带来的快乐,让我们享受编码的过程吧。
【自】http://www.mrdtime.com/blog/article/808.aspx
http://jeffreydan.javaeye.com/blog/868927
详情
Franz
前些天和同事开玩笑的说,你愿意花10元钱去听对一位世界顶级大师的采访么?几乎所有的都表示愿意付更多的钱也去。
对呀,很便宜不是么?我读到了这本《编程人生》(英文版名称为Coders at Work)有十五位编程大师的访谈,我在读书的时候大赚了一笔。
当然我读这本书不是赚了“心里账户”里那一百多元,更让我认识到的他们思想和我的差异是那么的大啊。我近两年才认识到那一切花哨的东西都是浮云,我更注重思想方面的东西,在这之前我特爱追求这样那样的特性,研究各个版本的API差异。
这些顶级大师们的想法都各异,我对他们的想法有很多还是不能理解,不过我想先了解了在以后试着去理解。他们毕竟都是从打孔写代码的那个年代过来的人,他们对C++以及OO都有别样的看法,或许他们足够聪明到能在各个思维的层面上自由穿越吧。
书中采访方式的确特别像《鲁豫有约》、《艺术人生》,读起来也特别的轻松,因为轻松所以也就使人愉悦。粗略的来说基本上就两步:
第一步:忆童年,回忆牛人的计算机发展历程,谈计算机的变化。
第二步:谈经验,谈牛人对语言的喜爱、谈工具的使用、谈算法的素养、谈技能、谈面试等等。
虽然套路都是这套路,但是每个问题每位大师都给出了不同的答案,人物自传都是描述的人物的发展历程的,人物不一样历程自然不一样。
我记得在大学里就开始意识一个问题,我平时动手的时候比动脑的时候还多,先瞎撞一通不灵的时候才真正发挥大脑的作用。我现在想一些比较难的问题的时候我都离开电脑,思路在离开电脑后就边的好多了。我发现即便是大师们也有类似的习惯!他们的也许是因为有了这样那样的好习惯才能成为大师,我打算把他们的(我认为的)好习惯去实施一下。
详情
更多书评 我要评论 | ||
网站地图|小黑屋|Archiver|DoThinkings 悦书籍,思人生
GMT+8, 2024-11-27 13:21 , Processed in 0.420193 second(s), 42 queries .
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.