所有文章首发于我的公众号【程序员云课堂】,喜欢文章的可以微信关注,也可以扫码加我的个人微信交流~
最近有粉丝提问,说自己想在技术专业路上更进一步,也看了不少书,但收效甚微,出去面试通过率也没有显著提高,本职工作效率也没有很大提升。
原因到底出在哪?该怎么做呢?
我其实很理解他的迷茫,刚工作的前3年,我每天都在思考,怎么才能让自己的职业生涯”更上一层楼“。
到后面工作久了,有了专业知识和经验沉淀后,才总结出来一些有效的实用经验。
正好最近看到有个大佬之前也分享了这方面的心得,今天就跟大家聊一聊。
首先大家要去探究,成为“高级”工程师意味着什么?并不只是简单的title和工作年限的变化。
工具使用熟练
高级程序员非常了解开发工具。
他们对操作系统、命令行、IDE 以及软件将运行的平台有深入的了解。
在他们的职业生涯中,可能用过十几种或更多语言进行编程,并且对经常使用的语言有深度了解。
可以从以下几个方面做判断:
-
语法。能够用代码清楚地表达逻辑。
-
数据库。知道哪些库/框架已经存在,并有效地使用它们。
-
工具。了解如何调试、分析、运行、自动化等。
-
配置。了解如何改变构建和运行时的环境。
-
信息面。能够有效地利用各种技术论坛,拓宽自己的信息来源。
-
探索精神。了解一些语言的历史背景——包括功能演变、编译器版本、安全漏洞、分支等。
优秀的程序员都应该具备快速学习一门新语言的能力,且不只是对基本知识的粗略掌握,而是深入了解语法、基本库和工具。
不过即使是高级工程师,也需要选定一门语言做深度研究,而且他们更倾向于用更简洁、更易维护的程序来实现。
总的来说,有2点很重要:
-
高级工程师应该能非常快速地掌握一门语言并能提高工作效率;
-
对特定的语言具有深度的专业知识,这在处理难解决的bug时显得尤为重要。
理论基础扎实
高级工程师掌握 CS 基础知识。
他们不一定了解高难度的数据结构和算法,也可能无法证明一些理论的正确性,但他们对最常用的知识有自己深刻的理解。
他们可以轻松实现基本数据结构,并且能快速判断用哪种实现方式相对更好。
这在大部分工作场景中是能降低人力和后期维护、开发成本的。
很多人对于自我能力和职场地位的认知都存在不同的误解。以为工作年限够长,就能成为资深;以为在一家公司待得够久,就能一路晋升;以为善于维护人际关系,机会自然而来;以为对领导跪得够久,好事都少不了自己。
他们更重视战术上的勤奋,用以掩盖战略上的懒惰。
要记住,一旦你忽略了自我学习的重要性,那么时间越长,付出的时间成本和机会成本越高。
加缪有一句话我很喜欢:“对未来真正的慷慨,是把一切献给现在。”
一旦你觉得自己哪方面有待提高,现在就开始。下篇文章接着讲另外3点技能,感兴趣的可以关注~
所有文章首发于我的公众号【程序员云课堂】,喜欢文章的可以微信关注,也可以扫码加我的个人微信交流~
大家好,我是程序员老王。
年薪百万老码农,待过一线大厂创过业,带过团队,目前专注于一线技术。
分享程序员进阶路上的点滴,帮助大家提升认知,升职加薪。