作为一个过来人,给你一些编程学习和工作上的经验吧,希望对后来的同学有帮助,这几大能力是一个程序员最核心的竞争力:
1、极强裸编程能力
对于程序员而言,编程能力就是安身立命的最基础的技能!编程本质上是做翻译,将业务需求翻译成机器能懂的语言。多看书、多编码,精通面向对象和设计模式是高效编程的基础。
初级工程师应该多写代码、多看代码。
找高手做Code Review,也是提升编程水平的捷径。
2、有【造轮子的能力】和【不造轮子的觉悟】。
面对功能需求,怎么才能最快的实现?
普通程序员:立马开始构思自己如何实现脑海里出来一个方案。
顶尖程序员:发现功能点很普通github上面早已经有非常多的解决方案,着手根据业务选择一个最适合最优的方案。
强悍的数据结构+算法能力。
数据结构与算法,一定是程序员最核心的竞争力,在这里也送大家一本帮助我拿到BAT 等一线大厂 offer 的算法笔记,是一位阿里大神写的,对于算法薄弱或者需要提高的同学都十分受用,算法一定是计算机学习的重中之重。
3、文档能力
“文档是第一生产力”,这一点在程序员的世界是毫无异议的。看看Spring,hibernate,Struts等最流行的开源软件的文档就知道,他们tutorial,他们的getstarted,他们的reference文档写的多么的易懂。
搞技术的容易忽视文档的力量,也因为写文档十分困难,更多程序员选择舒适区,习惯写下代码,但正因为如此,妨碍了不少程序员的进阶。
4、解决BUG的效率差别
一般程序员利用搜索引擎(百度)寻找答案,经常找不到解决方案,然后更换技术方案!
顶级程序员也利用搜索引擎(google)、StackOverflow等寻找答案,一般bug都顺利解决(其实跟前期框架选择等关系非常大)。
5、持续学习、兴趣是最好的老师!
这不是一句空话,一个不真正喜欢编程,业余时间从来不编码的人不太可能成为真正的大佬,顶多是一项谋生的技能。
6、强大系统的CS基础知识
顶尖的程序员,在内存、OS、网络、linux等方面都是十分系统的,这样在遇到Bug的时候,才能进行全链路的分析!
7、胶水能力
"胶水"能力其实就是一个人编程素养的综合体现。一个合格的工程师应该是用最低的资源实现最大的效益,而不是拿到需求就想从头造轮子。
8、调试Debug能力
程序员都自嘲,写代码是写Bug,调试能力也是工程师编程能力提升的关键手段。很早之前有个传说:“调试能力有多强,编程能力就有多强。”不过现在很多编辑器的功能很强大,调试能力的门槛已经大大降低。
调试能力是项目能否按时、高质量提交的关键。即使一个稍具复杂度的项目,大部分工程师也无法一次性准确无误的完成。大项目都是通过不断地调试进行优化和纠错的。所以调试能力是不可或缺的能力。
多写程序,解决Bug,多请教高手是提升调试能力的重要手段。
10、单元测试的能力
Unit Testing won’t help you write good code
其实,Unit Test 的主要目的是,为了防止你不会因为一个改动而引入 Bug。
11、面向搜索引擎编程的能力
这不是说要让大家写代码都去网上copy,而是遇到一个不会的知识点的时候,如何快速搜索获取到有用信息,并拿出适合项目的解决方案。
12、项目管理能力
以终为始、确定里程碑。为了达成目标,所有的计划必须以终为始来制定。将大项目分解成几个小阶段,控制每个阶段的里程碑可以大大降低项目失败的风险。
13、表达与沟通能力
程序员大多喜欢和机器打交道,相对来说表达能力弱一些,但是顶尖程序员的表达能力一定是很强的,需要良好的沟通才能和产品、其它程序员快速对齐方案。
觉得有用滴话,请点个赞哟,笔芯~