1。分享第一经验:“学历代表过去,能力代表现在,学习能力代表未来。”其实这是国外教育领域的研究成果。相信工作几年或十几年的朋友都对这个道理有所了解。但我相信这一点也很重要:“如果你太晚明白重要的道理,你会后悔终生!”所以放在每篇文章里,让刚毕业的小伙伴们早点看到!2、一定要确定自己的发展方向,并为此制定可行的计划。不要说什么,“我刚毕业,不知道以后会做什么?”,“跟着感觉,先做。”因为这样的观点会通过你的潜意识暗示你的行为是无为而无不为。一直在做技术,将来成为专家?往管理方向走,成为职业经理人?先熟悉行业和领域,以后自己创业?还是想先在这个行业混一混,过几年再转行?这一点很重要,它将决定你“做什么是为了做正确的事!”在过去的几年或十年里。3、在软件开发团队中,技术不是万能的,但是没有技术是万万不行的!在一个技术团队里,技术和人品同等重要,当然颜值也更重要,尤其是MM比较多的团队。在软件项目团队中,技术水平是被重视和尊重的重要砝码。无论是做管理、系统分析、设计、编码,还是产品管理、测试、文档、实施、维护,都必须要有技术基础。算上我的无知,我还真没见过外行人带领一个软件开发团队成功完成一个软件开发项目,哪怕只是一个,我也没见过。我曾经看到一个“高学历”(非技术型)带领一群人完成一个项目。项目交付后的第二天,项目组成员扔下一句“我受不了了!”各奔东西。那个项目的“成功”可想而知。4、详细制定自己的软件开发专业知识学习计划,注意及时修正和调整(软件开发技术变化太快)。请记住:“如果一个软件开发人员在1或2年内没有更新他的知识,那么他就不再从事这个行业了。”不要告诉自己你没有时间。时间管理领域著名的“八分之三原则”告诫我们:如何利用剩下的8小时,将决定你人生的成败!毕业以来,平均每天实际学习时间在2小时以上。5、书籍是人类进步的阶梯,对软件开发者更是如此。书籍是学习知识最有效的途径。不要期望在工作中遇到“外行高手”,不厌其烦地教你。关于用钱买书,我个人的经验是:不要买国内那些人出的书!从那些家伙那里买的书,我100%后悔,无一例外。更可气的是,这些书在二手市场的地摊上都卖不出去。“拥有书本,不等于拥有知识;拥有知识,不等于拥有技能;拥有技能,不等于拥有文化;拥有文化,不等于拥有智慧。”只有把书变成自己的智慧,才能真正拥有它。6.不要局限于对某种技术的肤浅使用,即使你只是偶尔使用一两次。“无所事事”是任何行业的工程师都不应该具备的品质。开发Windows应用程序,了解Windows程序的设计、加载、执行原理,分析PE文件格式,尝试用SDK开发从零开始开发一个Windows应用程序;使用VC++、Delphi、Java、.Net开发应用程序,花时间研究MFC、VCL、J2EE、.Net的框架设计或源代码;除了使用J2EE、JBoss、Spring、Hibernate等优秀的开源产品或框架,花时间看看大师们是如何抽象、分析、设计和实现那些类似问题的通用解决方案。努力做到这一点,你在以后的工作中就会少遇到让你说不清道不明、一头雾水的问题,因为你对很多事情“知其所以然”!7.用一种语言编程,但不要局限于此。《代码大全》说:“深入一门语言编程,不要浮于表面”。深入研究一门语言的发展是远远不够的。任何一种编程语言都有其自身的道理,所以没有一种语言是“包治百病”的“灵丹妙药”。编程语言对开发者思维和解决具体问题的方式的影响和制约的例子很多。我的体会是:在用面向对象工具开发某些关键模块时,为什么不能借鉴C、C51、汇编的模块化封装方式呢?在使用传统的桌面开发工具(主要是VC++和Delphi)进行系统结构设计时,何不参考Java社区的IoC和AOP设计思想,甚至参考Spring、Hibernate、JBoss等优秀的开源框架。?在设计和实现实时通信、数据采集等功能时,为什么不能借鉴实时系统和嵌入式系统中优秀的系统框架和模式呢?为什么一切都必须用开发语言当然是个人和团队的传统或经验来解决???“他山之石,可学”。8、养成总结反思的习惯,有意识地提炼日常工作成果,形成自己的个人源码库,解决某类问题的通用系统架构,甚至演化成框架。众所周知,对于软件开发人员来说,有经验的和没有经验的有很大区别:没有经验的人在完成任何任务时都是从头开始,而有经验的人往往通过重新组织自己的可重用模块和类库来解决问题(其实这个结论不应该局限于软件开发领域,它可以扩展到很多方面)。这并不是说所有可复用的东西都必须自己去实现,别人成熟的、经过检验的结果也可以收集、整理、整合到自己的知识库中。不过还是自己去实现比较好,这样就没有什么知识产权,版权等等,关键是你自己实现之后,才能真正掌握这个知识点,拥有这个技能。9、理论与实践并重,内外兼修。工程师的内涵是站在工程师的角度去观察和分析事物和世界。一个合格的软件工程师是真正理解软件产品本质和软件产品开发本质的人(个人观点,欢迎讨论)。掌握软件开发语言,使用语言工具解决工作中的具体问题,完成目标任务是软件工程师的主要任务,但从软件工程师的角度来看,这只是外在的东西,并不是重要和本质的工作。学习和掌握软件产品开发的理论知识和软件开发方法论,理解并在实践中应用软件产品分析、设计和实现思想,解决具体的软件产品开发问题,是真正的软件工程师的工作。从成熟的理论和可靠的方法论的角度去思考、分析和解决问题,并在实践中验证和修正这些思想和方法,最终形成自己的理论体系和实践方法论。10、心胸越开阔,视野就越开阔。不要死守着自己的技术和成果,等到它们落伍了,变成了垃圾,再拿出来丢人现眼。请及时发表自己的研究成果:开发产品、创意设计或代码,发表出来供大家交流或使用,让你的成果有进化和升华的机会。想想我在2000年开发的Windows系统工具,5、6年后的今天,它们还是老样子。现在流行的很多Windows系统工具都比我自己的晚,但是发展的很好,被这么多用户使用。.并且,不要保留自己的技术和想法,尽可能与他人交流和分享,或者传递给开发团队的成员。“交换苹果后,每个人都只有一个苹果;交换思想后,每个人都有两个思想”,道理人人都明白,但又有多少人真正做到了呢?11、尝试参与开源项目的开发,或者和朋友一起开发一些自己的产品。不要因为没有钱可赚而停止这样做。互联网不再只是一个“虚拟世界”。网上有很多开源项目、合作开发项目、外包项目。这是一个很好的机会,可以涉足工作以外的知识,认识更多的人。不要因为工作是做ERP就去学习和了解嵌入式、实时、通信、网络等技术,反之亦然。如果别人找你合作一个合同,而你这个不会,那个也不熟悉,你后悔就来不及了。12.看书时不要只局限于技术方面的知识。诺贝尔经济学奖获得者西蒙教授的研究结果表明:“对于一个有一定基础的人来说,只要他真的愿意努力,6个月之内就可以掌握任何知识。”教育心理学感谢西蒙教授的研究成果,故命名为西蒙学习法。由此可见,掌握一门陌生的知识,远没有想象中那么难和深刻。从许多来源学习并广泛研究。尽量巩固自己的影响圈,尽量扩大自己的关注圈。金融、经济、税收、管理等方面的知识,有时间的话,抽空看看,韬光养晦,未雨绸缪。13、本文总结与反思:A:除非你的目标是这个,否则不要做技术高手。虽然这篇文章是关于提高软件开发知识的建议,但我一直不同意做技术高手。你可以提高你的专业知识,但前提是你能胜任这份工作。B:提高软件知识和技术只是问题的表面。其实质是提高自己认识问题、分析问题、解决问题的思维水平。软件专业知识的许多方法和原则可以很容易地扩展并应用到生活的其他方面。C:在胜任本职工作的基础上,马上涉猎其他领域的专业知识,丰富自己的知识体系,提高综合素质,尤其是那些目标不是技术的朋友。
