上班后时间还真是少,断续花了3个礼拜把这本书看完了。其实真想一下子把它连续看完,因为这书确实如作者所说是一本“企业派”的好书,而且书中每一个环节都点到了点子上。很多事例相信应届生、在职人员都有种感同身受的感觉,这就是作者的过人之处了!毫无疑问,作者是个过路人,并且是个有心人,把自己的风风雨雨都记录下来,最后形成了自己的一套系统和体系。

    本书分为三篇:生存法则、致胜法宝、达人策略。一步步引导读者从“菜鸟”走向“高手”。我恨不得把对每一章的感受都写出来!

生存法则篇

    生存法则篇中,不得不提的就是我们常听说的“优胜劣汰”的残酷自然法则,现实中弱者确实可能得到同情,然而你却不可能因为别人的同情而得到一份工作。

第一章:知己知彼…

    指出了就业中大家都可能存在的三个疑问,并点评怎样经营自己。其中从王国维的《人家词话》的“人生三境”中转而用到“程序员的修炼三境界”。可谓是活学活用,并且表述得让人叫绝!

    谈到了大学毕业生就业难的问题,阐明毕业生没有以企业的“需求”为前进方向,从而导致技术广,但达不到企业需要的深度和精度。并摘选了部分就业面试的情景以让毕业生更形象的了解面试是怎么一回事,其中也说到了面试和笔试中容易出现的一些常见问题。

    经验自己中,可以了解到一份求职简历应该怎么写。什么是“自我评价” ,自我评价的“认真负责”、“善于团队工作”以及“思维严谨”又是怎么个被滥用。自我评价不应该用“高、大、全”的语言涵盖,而应该拿出“真本事”给人家看看。在写专业技能的时候,也是存在容易被滥用的词语,“熟悉”和“精通”混为一谈。应该知道,“熟悉”只能说明你知道这个技术,“熟悉”这个技术和真正能够拿他来开发更是不能同日而词。—— 通过这样的简历,是否也看到了自己的影子,因此需要重新审视自己的特长。

第二章:…职业的误区

    软件开发职业领域里经常出现的对这个职业的误解,这些误解往往会成为新程序员的“思想枷锁”,因此告诉我们怎样轻装上阵。共计讲了5个误区:开发职业是青春饭,做软件开发必须加班熬夜,开发一个软件产品必须集团作战,程序员不是一般人,存在“软件蓝领”岗位。误区就是雷区。

    正如我所想的,“青春”在更多情况下应该是指思想的“青春”。国内目前很少50岁的程序员是由于国内IT起步晚,国外多得是。30岁以后,虽然像初级程序员那样的大量编码不大可能,但核心编码工作尤其难度大的部分编码工作会较多涉及。

   阐明了程序员熬夜工作的一些借口,然而其中由于项目进度紧张而加班,这就是项目或者你自身出现问题的信号了。并告诉我们常态加班的危害,控制好工作的一日时间表才是关键,要把时间的“好钢用在刀刃上”。揭示了“第二大脑”的存在性,利用这第二大脑以及大脑的前提——尽量避免通宵工作。“加班熬夜,是用你未来的时间工作。”

    以MySQL,EditPlus、MRTG、WPSOffice为例论证软件产品不一定是需要集团作战的。自己必须坚信,只要是“人”做到的自己就能够做到。之所以需要集团作战,是时间的考虑也是一大因素。

    在程序员不是一般人中,论证了程序员是一般人,但也说明了他又不是一般人,具有他们自身的特殊性。建议程序员好多补充水分和加强运动保护视力。

    “软件蓝领”,让我终于明白了“蓝领”是什么意思!原来是那些不需要动脑的工作。理解了这个意思后我也能够想象“软件蓝领”的不存在,毕竟量产、重复操作都可以在编程中实现,这个岗位有何必存在呢?再说,我们的“复制+粘贴”就是量产,呵呵。

第三章:…“菜鸟心态综合症”

    这其中也稍稍说到了些出世心态,以及心态对一个人对事情判断的影响。指出了8种病症:指望公司离有一个老师,不知道怎么前进,想做圈养的羊,总对自己说NO,缺少幸福感,困兽心态,缺少感激心,不知道“团队合作”。

    现实中确实许多人想想羊一样被人圈养起来,不愿意去奋斗。在近乎残酷的自然界,你行动的全部理由就是“活着”。自然界中狮子有时候也会被猎狗吃掉,这就是“丛林法则”。掠食动物需要追逐、策划、撕咬才能够得到食物,为了生存需要不断进取和拼搏。圈养者只要等着主人拿着的草尽管吃,去向的话也就是任人宰割就可以了。作为社会人,如果只想在公司混饭吃,那么吃的一定是“草”,并且命运掌握在别人手中。

    对于缺乏自信的人,作者的建议是牢牢记住生活取决于自己,要阻隔排除自己的恐惧理由,找到通往高楼的那扇门。对于“困兽心态”,则拿动物园的老虎、长颈鹿、猴子为例,形象阐述。在“团队合作”中,提及3个目标(个人目标、团队目标、企业目标),并提议真正需要放在第一位的是团队目标。前者太狭隘,后者太遥远。

第四章:换位思考,项目主管…

    主管招聘时所需要的人才的3个技巧:独立完成项目的经验,独立解决问题的能力,程序员的思维方式。

    真正的“独立完成项目的经验”,是为了拿到奖金需要怎么做这项目为目的,而这过程中的的收获就是真正学到的东西。这“测试手段”,对SQL的测试甚感慨。

    而“独立解决问题的能力”,就是经验之所在,达到“见招拆招”的能力,这好比武功的强弱,不见看招式,更重要的是内功。内功所致,能够把招式发挥得炉火纯青。程序员韧性的表现:耐心、信心、恒心、虚心。对于提升它的方法为“和田十二法”。

    程序员的思考方式,表现了日常生活中程序员思维的好处,能够找到问题规律,抓住中心把事情简单化。

第五章:保持前进步伐

    程序员与其他职业的最大区别是,需要随时随地更新知识,一刻都不能放松。给出程序员前进的4个阶段——找一个编程语言去入门、用这门语言去分析和推理、新知识新技术ude积累、大道无形。这最后阶段也是最难做到的“希声、无形 ”,直到登上绝顶,领略过天地苍茫和应用程序开发的限度,才能够体会到“风恬浪静中,见人生之真谛;味淡声希处,识心体之本然”,从而产生一种散淡心境,于是就会更加沉着、平实、时时循着生存智慧的步伐走。

    作者告诉了我们如何找一本好书,如何选择适合自己的好书。入门选小块头、插图多、国人写、“企业派”的书,大块头的书会让初学者直呼“XX技术好难”,而“学院派”的书则大多为一些大学老师教授,一种书卷气,虽然其中内容详细严谨,但不容易懂。“企业派”的书则口语化、注重实用。当然,如果需要深入研究理论,选择“学院派”的书是必要的。读技术书时,需要把握目的,需要掌握方法。

    最后还展示了哪位“不务正业”的老李的沉淀目录。其中放置了许能被反复实用的好代码,让混浊的水沉淀。

制胜法则篇

第六章:java程序员7种武器

    分别是IDE、数据库系统、Web服务器软件、操作系统、编程语言、辅助设计工具、版本控制工具。这其中,也确实有很多武器是我所忽略的。好的集成开发环境能够提升开发速度,但我们不能被它所束缚。这其中研究了JDBC驱动的代码,我还是第一次揭开它的神秘面纱。在使用数据库系统时,务必熟悉它避免“绕远路”(我把这真理推广一下:使用一个工具时就要“熟悉”它!!!)。在研究WEB服务器时,作者甚至研究了其中的部分源程序,这回还是第一次见到其中的“骨头”了。作者的操作系统方面知识也很到位,竟然如此系统地表述出了很多知名linux发行版。此外,作者建议需要对多种编程语言有所了解,并且掌握“第二门语言”。总之,程序员不是单纯的程序员!!

第七章:破除…迷信

    给我们展示了5个迷信:java到底是是否占内存,与C相比速度上到底慢了多少,Java不等于JSP,C/S是否一无是处,J2EE是否必须用EJB。

    Java的纯真时代以及渐渐远离了,什么设计模式、什么框架,这些都不是java本身的过错。让它变得不再纯真的是包裹在一个单纯java开发技术外的复杂的、八股的概念,让我们变得虚伪和务虚 。不管怎样,我们都需要保持一份“纯真”,这是上帝赐予我们的最重要东西。

    做着C/S的理解也正如我以前所理解的,其实B/S本质也是C/S,不同的是客户端为通用的浏览器,它把 数据逻辑和技术大都放在服务器上,客户端不过是呈现计算和数据得到的结果。同时也举例说明C/S不被淘汰。

    在谈到EJB这概念时,我此前也是一头雾水,做着那么一说就有些茅塞顿开的感觉。我也感叹“EJB害人不浅啊!”。EJB中说的“服务群集”和“企业级开发”,让人掉眼镜,太费解了。作者把它用大白话来说就是“把编写的软件中那些需要执行制定任务的类不放在客户端软件上,而是给它打包放在服务器上”。这么一听,就有种模拟浏览器的味道了。并且指出,EJB概念中说的是C/S软件,心中不由大骂那个可恶的概念编制人。之后,展示了EJB的实现技术的基础——RMI(涉及对象序列化、分布式计算、RPC)。通过RMI技术,J2EE将EJB组件创建为远程对象,客户端就能够通过网络调用EJB对象了。

    最后说道:“技术”不是神,不要盲目“崇拜”。我们程序员不要做软件开发的“善男信女”,要敢于挑战权威。

第八章:中大型应用系统

    这一块知识让我猛地一看,不就是网络专业的知识么,我大快,毕竟是我的老老本行咯。之后想想,不大对劲,作者竟然扯到了这一块知识上去了。回头想想,也对,了解了这才知道自己做的项目以后是的归宿在哪里。

第九章:why框架开发

    当做着说这些的时候我脑海里 马上冒出了SSH,这果然也不出作者所料,呵呵。作者告诉我们一个真理:学习框架的使用方法原因只有一个——因为它实在太火了。

    作者阐述了框架带来的好处,这我都知道,简化编程、代码重用,以及本身是程序的半成品,然而作者告诉我们不能被框架束缚,要用框架的思想去“自由思考”,这给我巧了警钟。最后作者带我们一起设计属于我们自己的框架。

达人策略篇

第十章:高手…菜鸟…

    在说到“5年工作经验的菜鸟”时,我同时感慨国内好些公司对“工作经验”的盲目要求,太过于肤浅了。

    之后给我展示高手是怎样炼成的。把老子的《道德经》也扯上来了,作者还真是知识渊博!“无也是一种有,当连‘无’这个概念都无时,才是真正的无”。关注程序的品质,体现在文件命名、制作细节、异常处理的品质、资源的珍惜。这其中还真有技巧呢~~!紧接着作者把“技巧”和“技术”概念给区分开来,让我震惊。“技术”是具有完整性和系统化的,“技巧”是非体系的、创新性的、个性化的、非公开的。这两者都很重要。

第十一章:控制内存…

    几乎都是用实例形象展示了这抽象的东西。“功力”就是弄明白一件事情,对事情比别人明白的东西多。

第十二章:产品和项目…

    “产品”和“项目”的概念,我也是在作者的讲解中才得以明白。再次感谢作者的用心良苦~~!产品是被生产出来的物品,是可以满足人们需求的载体,就是制作出来用来销售的东西;而“项目”是根据客户约定的开发周期、开发要求、开发受到等开发的,并由该客户支付该项目的开发费用。前者是先开发在销售,后者是先销售后开发的。

    之后讲述了软件产品开发是“艺术”,它需要灵感、需要“前瞻性”、是程序员的传世艺术作品。

   在软件项目开发中,需要注意,程序开发者才是“三军统帅”,而不是客户。项目需要运筹帷幄,需要项目控制(多用头,节约手)。“军事行动”的成功需要,目标+行动计划+灵感。

第十三章:非技术知识的辅助

    三种辅助:作为工具的英语、信息搜索引擎的、常用文档写作。

    英语不必说,目前而言至少保证能阅读相关的文档资料、搜索引擎就想到了百度、google的使用、而文档写作就是word、PPT。

    文档确实很重要。我这记录下书中记录的。开发过程中需要的文档:软件可行性研究报告、项目开发计划、数据要求说明书、需求说明书、用户手册概要、概要设计说明书、详细设计说明书、单元测试报告、组合测试报告、用户使用说明书、产品介绍、项目开发计划。

    日常工作文档(这个,我确实很忽略):工作周报、工作月报、工作季度总结、工作年终总结。

    作者总结了一句:“非技术”仅仅是“技术”的衣服,但是不穿衣服出门的话叫做“裸奔”。呵呵,很幽默。

感谢:

    这部分也写得很好,同时意识到作者的成功与家庭方面的支持有很大关系,他的女儿的按时睡觉也是对他的一种支持,这个千真万确!!祝愿作者的家庭事业美满。

    Ming言:终于,把这本书在写心得之余又一次重温一遍了。感觉很欣慰。