一、不要在校时想赚钱,赚钱时却想上学,这样会导致上学时学不到东西,赚钱时也赚不到钱,这样很悲哀了。我想说的是该干什么干什么。到什么时候说什么话。我认为这条很重要,所以放到了第一条。

  二、确定自己的发展方向,并为此目的制定可行的计划。不要说什么,“我刚毕业,还不知道将来可能做什么?”,“跟着感觉走,先做做看”,"或者说什么骑驴找驴之类的想法"。因为,这样的观点会通过你的潜意识去暗示你的行为无所事事、碌碌无为。一直做技术,将来成为专家级人物?向管理方向走,成为职业经理人?先熟悉行业和领域,将来自立门户?还是先在行业里面混混,过几年转行做点别的?这很重要,它将决定你近几年、十年内“做什么事情才是在做正确的事情!”。

  三、在技术型团队中,技术与人品同等重要,当然长相也比较重要哈,尤其在MM比较多的团队中。软件开发团队中,技术不是的,但没有技术是万万不能的!在软件项目团队中,技术水平是受人重视和尊重的重要砝码。无论你是做、文档、测试、软件实施等等,多少你都要有技术基础。我还没有亲眼看到过一个外行带领一个软件开发团队成功地完成过软件开发项目。

  四、详细制定自己软件开发专业知识学习计划,并注意及时修正和调整(软件开发技术变化实在太快)。来自时间管理领域的的“三八原则”告诫我们:另外的那8小时如何使用将决定你的人生成败!

  五、书籍是人类进步的阶梯,对软件开发人员尤其如此。书籍是学习知识的有效途径,不要过多地指望在工作中能遇到“世外高人”,并不厌其烦地教你。“拥有书籍并不表示拥有知识;拥有知识并不表示拥有技能;拥有技能并不表示拥有文化;拥有文化并不表示拥有智慧。”只有将书本变成的自己智慧,才算是真正拥有了它。

  六、不要仅局限于对某项技术的表面使用上,哪怕你只是偶尔用一、二次。在用一个东西时要把它变成自己的东西,在调通的基础上在去研究它的内在的原理。例如:试试用SDK开发从头开发一个Windows应用程序;用VC++、Java、.Net开发应用程序,花时间去研究一下J2EE、.Net它们框架设计或者源码;除了会用mvc、j2ee、hibernate等等的开源产品或者框架,然后抽空去看看一些大师级的人物是怎么解决相关问题的,看看他们的设计你会学到好多!

  七、这一点也很重要,是养成总结与反思的习惯,并有意识地提炼日常工作成果,形成自己的个人源码库、解决某类问题的通用系统体系结构、甚至进化为框架。众所周知,对软件开发人员而言,有、无经验的一个显著区别是:无经验者完成任何任务时都从头开始,而有经验者往往通过重组自己的可复用模块、类库来解决问题(其实这个结论不应该被局限在软件开发领域、可以延伸到很多方面)。这并不是说,所有可复用的东西都必须自己实现,别人成熟的通过测试的成果也可以收集、整理、集成到自己的知识库中。

  八、心态有多开放,视野有多开阔。不要抱着自己的技术和成果,等到它们都已经过时变成垃圾了,才拿出来丢人现眼。请及时发布自己的研究成果:开发的产品、有创意的设计或代码,公布出来让大家交流或者使用,你的成果才有进化和升华的机会。“与人交换苹果之后,每个人还是只有一个苹果;但交换思想之后,每个人都拥有两种思想”,道理大家都懂,但有多少人真正能做到呢?

  九、尽量参加开源项目的开发、或者与朋友共同研制一些自己的产品,千万不要因为没有钱赚而不做。网络早已不再只是“虚拟世界”,网上有很多的开源项目、合作开发项目、外包项目,这都是涉猎工作以外的知识的绝好机会,并且能够结识更广的人缘。不要因为工作是做ERP,不去学习和了解嵌入式、实时、通信、网络等方面的技术,反过来也是一样。如果当别人拿着合同找你,你却这也不会,那也不熟时,你将后悔莫及。

  十、书到用时方恨少,不要将自己的知识面仅仅局限于技术方面。极力夯实自己的影响圈、尽量扩大自己的关注圈。财务、经济、税务、管理等等知识,有空花时间看看,韬光养晦、未雨绸缪。

  本文的总结与反思:

  A:不要去做技术上的高手,除非你的目标如此。虽然本文是关于提高软件开发知识的建议,做技术的高手是我一向都不赞同的。你可以提高自己的专业知识,但能胜任工作即止。

  B:提高软件知识和技术只是问题的表面,本质是要提高自己认识问题、分析问题、解决问题的思想高度。软件专业知识的很多方法和原理,可以很容易地延伸、应用到生活的其它方面。

  C:在能胜任工作的基础上,立即去涉猎其它领域的专业知识,丰富自己的知识体系、提高自己的综合素质,尤其是那些目标不在技术方面的朋友。