程序员如何高效成长

这是我给公司培训的讲义,分享了程序员如何高效成长的秘密。一小时价值5万的培训资料,现在分享给大家。

你经常在网上看到类似《20 年老程序员告诉你的 20 条编码原则》这样的文章,看了很多却依然成为不了一个优秀的工程师。你肯定遇到个别特别厉害的同事,他们每次都能高质量完成开发任务,最重要的是BUG很少。他们会给你很多建议,你照着做却依然原地踏步。为什么这么努力还是不能变得更优秀?其实这些文章我也浏览过,说实话都是:道理都是对的。就好像武侠里你光知道武功的招式,不知道武功内功心法,是成不了武林高手的。更何况从心里学来讲,超过7条人类就很难记住。所以我在这里分享,成为优秀工程师的三个核心方法。这三个方法能指导你在三年内成为拥有十年工作经验的工程师。
这三个核心方法,很简单。或许因为简单,很少有人愿意把它们说出来。它们分别是:重视基础、重视思考、重视跨领域学习。

把基础知识夯实

没有扎实的基础知识,再好的建议或者方法也无法把事情做好。很多人不是很重视基础,很多时候自己觉得基础知识很好,实际上很多问题都是由于对基础知识不是很了解造成的。扎实的基础知识就能够使得你成为一个合格的工程师。下面说说我个人理解。编程最重要的不是语言,而是编程思想。C++,Java、Python,编程语言太多了,但是它们的基础是编程思想。编程思想包括数据结构、算法、设计模式。所以不仅要掌握一门编程语言,更要掌握这些编程思想。数据结构能够让你根据具体问题选择合适的数据结构。合适的数据结构能够让你的编程事半功倍。设计模式的了解,让你的代码更优雅,也能快速理解第三库的代码。作为非计算机科班的我,我当时学习设计模式,把书看了三遍,并且把书中Java代码重新用C++实现。通过这种输出学习方式,检验自己是否真的理解了。算法更重要了,这能够让你解决问题,少走很多弯路。光知道常用的算法设计模式:动态规划、分治法、穷举法、贪婪法,就能够比很多更高效地解决问题。这都是厉害的前辈的思想结晶,我们需要站在巨人的肩膀上出发,而不是自己花时间探索。算法是基础,任何应用算法都离不开它们。人工智能、图像处理、自然语言处理NLP等,可能算法的理论基础不一样,但是代码实现离不开上面的算法。

编程前先思考

你会发现很多人开发都是简单想下就开始动手编程,然后发现很多问题,一改再改。改动次数越多,带入BUG的可能性越高。而厉害的人会愿意花更多的时间思考。这里的思考最好要把你思考的结果写下来。接受开发任务,你要思考自己是否真正理解开发目的。如果比较复杂,在思考后最好与你的leader沟通下,确保双方达成共识。在目标明确后,开始思考怎么做,确保一次就做好。

不断寻找学习区域

当你把基础知识学好了,编程也学会先思考。这时候你会发现大多数开发任务都能很好地完成。但是有些问题需要细分领域的知识,说明你处在舒适区域,你需要根据具体问题,发现学习区域来提高自己知识的广度。另外,不断发现学习区域,学习细分领域的知识,能够让你的思考更全面,更深刻。比如,很多公司的产品是运行在Windows上,很多问题需要了解Windows开发知识,看一下经典的书籍,比如《Windows核心编程(第5版)》。你进入新的行业,最好通过Google或者请教,迅速掌握该行业的基础原理和基础知识。

总之,基础知识很重要,是一切工作开展的前提。学会思考,是高效工作的秘诀,想清楚 了,编程只是水到渠成。不断学习是快速成长的

你可能感兴趣的:(生活算法,算法,生活,高效成长,高效编程)