修炼一名程序员的职业水准

你要的是强劲的学习知识的能力,是对某种软件知识/技能的有深度的精通,一种摸到它的根的深度,而不是已掌握的技能的种类和数量。这时无论谁用他掌 握了多少种你不会的技能来吓唬你都没用,你对他的层次只有蔑视。通过几年的学习和工作,要记住最重要的一点,永远最重要:对自己学习IT知识能力的自信, 一个程序员一生都要不停地进行高强度的学习,用心问问自己,有没有这个自信? 

从工作中开始吧,如果你有空闲,你需要做至少两类练习,一类是算法练习,所有的经典算法都是经典的逻辑,另一类是把以前和当前你工作中你不满意的程 序推倒重新设计一遍,这非常重要,省时省力,已是一个初步具备职业水准的程序员了,掌握了相应的技术和技巧,具备了较高的抽象逻辑思维能力,最主要的特征 是:能自觉地自我否定,不断地追求更高水平的逻辑能力。

从编译原理的角度来理解你工作中使用的高级语言,如果你做到这一点,至少有两个好处,第一个好处是避免一大堆低水平重复出现的编译错误。第二个好处是可以提高源码的可读性和效率。

有自己debug的特点,下面的说法作者不敢太肯定, ?只是经验之谈。即使在VC这种高度完善的开放环境下,你仍然应该要求自己仅凭打印语句就能debug。这也有两点好处,第一个好处是,遇到bug你会认 真想问题所在,而不是用debug工具一步步简单地追踪卡在哪儿了,你定位bug范围的方式是从大到小、从粗到精,这是一种自顶向下的思维方式,程序员的 职业水准:生产效率和程序质量,主要是取决于源码中bug的数量和debug的速度,

做好程序的单元测试,这是另一项考查你是否是一名具有合格职业水准的程序员的一个必要指标。其实在你拿到需求的时候就要准备单元测试用例了,并且这 些用例将直接影响你的详细设计(有关软件设计本来是该放在第四节讲的)。如果你在分析需求时就能看到测试的问题,并改进设计和实现,为此做好相应的准备工 作,嘿嘿,整个软件开发过程你的效率会高很多,通常你在一个开发团队中就会高度自信的,

修炼还是从基本功开始的,过程和成为一名职业程序员差不多。必须使用设计工具这一点是不用多说的。在工作中,你基本上遇到的是两类方式的设计,一个 是结构化设计,另一个是面向对象设计,就个人经验而言,面向对象的设计更好。通常他们要是能够把需求的功能和操作次序写完整的话,你应该就感恩戴德了,从 需求中整理出功能、操作的拓扑次序和条件是你作为系统分析员的职责。看看,要是没有一点图论的基础和拓扑学的入门知识,你是当不好一个职业系统分析员的, 即使你天赋不错,必要的数学和逻辑素质仍然不可或缺。

走到这一步,你就应该关注设计模式了,首先还是学习,这方面的好书有的是, ?但一般在工作中用到的设计模式较为单一,应该多尝试一下其它的设计模式。其次必须要明白设计模式不是设计思路,也不能代替设计思路,比方你要从A到B修 一条路,设计模式只是让你选择,是修水泥的还是柏油的?是高架路还是普通的,但线路必须你自己定,而线路就是设计思路,模式对思路是有影响,但不能代替, 所以如果你的智商高达250,我相信你直接用汇编语言也能写出面向对象的程序来。第三在此有一个陷阱,很多系统分析员生搬硬套设计模式,全然不懂如何融会 贯通,在你的一项具体工作中,往往是以一种设计模式为主,其它模式为辅的,思维不拘泥于形式才是关键,而且也为你到达更高的软件设计的境界做好准备。

你可能感兴趣的:(设计模式,算法,软件测试,单元测试,vc++)