高级程序员到底长什么样子?
极客时间编辑部
讲述:初明明大小:4.13M时长:04:31
就像“一千个人眼中有一千个哈姆雷特”,大家对于高级程序员的理解也是不同的。有人认为高级程序员应该有 5 年以上编程经验,还有人认为高级程序员应该出版过技术图书或者随时随地快速写出常见的一些算法。那么,高级程序员到底应该是什么样子的?和初级、中级程序员相比,又有哪些区别?
近日,某垂直电商技术总监张帆在其个人公众号“跨界架构师”(ID:Zachary_ZF)发表文章,他认为应从专业能力、连接能力以及领导能力三个维度来界定什么是高级程序员。以下是重点内容。
不管是什么行业,什么岗位,在这个高度分工协作的现代社会,所需的能力主要分为三个维度:
专业能力:好奇心、敢于挑战困难、刻意养成好习惯、要求严格
连接能力:共同体意识、同理心、实事求是、接地气
领导能力:主人翁意识、沟通 / 谈判技巧、目的导向
根据这三个维度的水平差异,对初级程序员、中级程序员、高级程序员做一个简要的描述。
初级程序员:知道有事要做
处在初级阶段的时候,我们的精力大多只会专注在专业能力的提升上。这个时候“领导能力”和“连接能力”是很弱的。所以,这个时候哪怕你有强烈的好奇心也无法很好地表达出来,大多只能被动的接受工作安排。
在这个时期做事情需要依赖一些教程、文档,只能“依样画葫芦”,几乎不能在不借助外部信息的情况下解决之前从未遇到过的新问题,所以百度、Google 就成了他们唯一的选择。
初级程序员具体会表现出以下几点:
很难提出正确的问题,大多会直接问别人这个功能应该怎么做。
经常犯错误,所以会预留过多“弹性时间”,以便有时间在到期日之前重做,所以总会抱怨“没时间”。
对与自己有工作交集的人员的职能没有认识。比如,对测试人员总是充满敌意的,因为他们发现了错误,“阻碍”了自己完成工作。
还没注意养成一些好习惯,比如习惯性地提炼重复代码、编写风格一致的代码、自测等等。
很遗憾,看似很初级的阶段,并不只是刚踏入工作的程序员所属,在实际工作中,也有不少工作多年的人还处在这个阶段。
中级程序员:知道如何做某事
在这个阶段,有些中级程序员开始具备了一定的“连接能力”。在专业能力上,中级程序员已经明白了一定的“整体与局部”的概念,但仍然看不到整个“森林”,大多局限在某个模块、流程上。比如,他们会想“这是做敏捷的正确方式吗?”,但不会考虑“这对整个团队、整个公司会产生什么实际的影响?”。
他们开始注重代码质量,因为担心低质量的代码会影响他们视野中的“整体”。但是对于质量的理解还是比较单一。比如,这个时候你会经常听到他们把“性能”挂在嘴边,在他们心目中“性能”的地位是至高无上的,总是想着你这个方案和我的方案哪个性能更好。
其实这个阶段是最危险的阶段,因为最可怕的不是无知,而是一知半解。在这种状态下,人最容易高估自己,这也是导致产生很多“假高级程序员”的原因所在。
高级程序员:知道必须做些什么
高级程序员在专业能力、连接能力与领导能力这三个维度都有所建树。因为他们不但可以把从 1 到 100 的事情做得很好,也有能力带领其它人完成 0 到 1 的事情。
高级程序员明白没有什么是完美的,相反,问题、缺点和风险总是存在的。他们的决策总是站在为了整体的“平衡”角度去考虑,而不是技术的酷炫或者外界流传的所谓“正确的”技术。他们会更多地关心那些不显而易见的东西,如可维护性、可扩展性、易阅读、易调试等等。
高级程序员就好比社会中的成年人,他们踩过足够多的坑,也填过足够多的坑,已经认清了现实的残酷,寻求适合而不是完美。周到、务实、简单,是他们做事的时候强烈散发出的“味道”。
以上就是张帆对于初级、中级以及高级程序员的思考,希望对你有所帮助。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论