优秀程序员的5个特征,你在第几层?

每个人程序员都对未来的职业发展有着憧憬和规划,要做架构师、要做技术总监、要做CTO。但现实总是复杂的,日复一日的工作与生活总能让人一次又一次地陷入迷茫。大部分原因就是对职业发展轨迹和自我能力提升的一般规律缺乏认识,做事找不到方向或是操之过急。

程序员的二八定律

19世纪末20世纪被发现的二八定律,如今在各行各业的影响越来越来明显。程序员行业也不例外。

全世界从事软件开发的技术人员大约有几千万,有序稳定的组织方式总是金字塔结构,按照每个人的影响力和技能水平,80%的工程师处在这个金字塔最底层,全世界绝大多数的代码出自这一层的工程师之手,但是他们却没有任何技术决策能力和技术影响力。用什么编程语言、用什么数据库、用什么编程框架、日志规范与代码规范如何制定,统统不由他们决定。大多数情况下,一个10人的团队中,有8个人是这样的。

在这一层之上,剩下的20%的技术人员中的80%,也就是总数的16%的工程师被称为团队影响者。他们是项目架构师、技术经理、技术骨干,撑起了项目的技术核心,在项目范围内决定着各种技术方向,核心代码由他们开发,出了重要的问题也要找他们解决。在一个10人的团队中,大约有1~2位这样的人。

团队影响者之上是公司影响者,大约占总数的3.2%,他们决定整个公司的技术方向,比如,用Java还是用PHP?用MySQL还是SQLServer?微服务用Dubbo还是Spring Cloud?在一个有300名技术人员的公司中,这样的人大约有10人。他们通常是公司的技术元老,是公司的技术团队中拥有较大知名度的技术专家。

团队影响者和公司影响者又如何做出技术判断和决策呢?他们的技术从何而来?通常他们会关注国内最新的技术风向,参加各种技术峰会,阅读各种技术图书,通过这些信息获取知识并做出自己的技术判断和决策。而向他们传播这些最新技术动向的人,就是全国影响者。这些人通常来自知名腾讯、阿里、百度、字节等国内知名互联网公司。

这些全国影响者通常是通过关注国外的技术动向来获取信息的,比如Google、Facebook、微软这些公司的工程师。在这个技术影响力体系里,越往高处背景越重要。你是谁不重要,你代表谁更重要,人们关注的不是你叫什么名字,而是你来自哪个公司,这也是很多人想要加入Google、阿里巴巴的原因。

有趣的是,来自知名大厂的一些工程师常常忘记这一点,觉得自己得到的关注和掌声是来自自己的成就和能力,结果导致对自己的职业发展产生重大误判。

这些人作为技术影响力,通过影响力决定使用何种技术进行软件开发。在这个金字塔的最顶层,正是这些知名软件的开发者,或行业的开创者。

他们有的开发了一些关键性的技术产品,比如广为使用的JSON解析器、单元测试框架、分布式缓存系统。还有一些人则开创了一个领域,如Spring,构建了一个完整的Java web开发技术栈。Hadoop成就了大数据行业,Linux引领了操作系统行业。

事实上,正是领域开创者推动了一次又一次软件编程的革命,领导了一次又一次技术进步,他们带领软件技术行业不断前进。

但越来越多的事实表明,越是顶尖的人,对天赋的要求也越高,而且还要加上一点点运气。

如何成为顶级程序员

如何完成技术层级的跃迁,成为顶级的程序员呢?先来听听ChatGPT的建议:

你需要精通一门或多门编程语言,这是成为顶级程序员的基础。深入学习语言的特性、语法和使用场景,掌握常用的算法和数据结构等。

深入理解计算机科学基础知识,包括计算机体系结构、操作系统、数据结构和算法等。不断学习和实践新技术和工具,掌握最新的编程语言、框架、库和工具等,了解它们的优劣和使用场景。你还需要关注用户体验,扩大自己的知识面。

参与开源项目和社区,在开源社区中,程序员可以发现新的技术和工具,了解其他开发者的经验和实践。培养团队协作和沟通能力,坚持自我学习和提高。

你可以从金字塔的最底层努力做起,一层一层的打怪升级,最终登顶。如果你足够努力并有足够的天分,你也可以直接去做一个全国影响者,甚至超越影响者阶层,直接进入开创者阶层。

你可以通过持续地维护一个技术博客或者技术公众号,不断地发表一些高质量的原创技术文章,在某个技术领域打造自己的技术影响力,并通过在一些有影响力的技术峰会上做主题演讲,以及出版一些高质量并畅销的技术图书,持续扩大自己的影响力。成为影响者。

大到各种编程语言,小到各种编程框架和工具,如果你能直接开发一款在全球范围内被软件开发人员广泛接受的技术产品,并能吸引全球的开发者参与到你的产品开发中,那么你就成为某方面的开创者了。
例如编程语言的大师级人物,Java 编程语言的创始人詹姆斯·高斯林, C# 编程语言的创始人安德斯·海尔斯伯格,Python 编程语言的创始人吉多·范罗苏姆,JavaScript 编程语言的创始人布兰登·艾克。

当然,这条路不仅需要天赋、努力和运气,还要看历史的进程。

重要的是行动起来

每个程序员都想知道自己是不是一个优秀的程序员,世界上很多事情都是有规律的,有些是天赋,有些是在日常的编程工作中学习、进步、积累、总结得来的。你可以用以下特征来作为参考标准。

1.热爱编程
很多程序员干这一行只是为挣钱,如果有更好的职业,他们会毫不犹豫的辞掉程序员的工作。而优秀的程序员热爱编程,喜欢钻研代码,他们感到能指挥电脑来帮助人们和自己解决现实生活中的问题是一种神奇的能力。当遇到问题无法解决时,他们会茶不思、饭不想,无法入睡。

2.强大的学习能力
优秀的程序员会不断的学习,拓宽知识的深度与广度,知道如何能更高效的完成任务,如何更能有效的解决问题。

3.团队合作
每个人都是有局限性的,在厉害的人也无法对抗一个团队。优秀的程序员愿意分享交流,与他人合作,充分借助团队的力量来完成工作。

4.主人心态
很多程序员以打工者的身份看待自己,以打工者的心态工作。优秀的程序员会想象如果自己创办一家企业,需要哪方面的知识,缺少哪方面的技巧。只有将自己放在主人的位置上,你才能真正理解经营一个企业需要的技能。

5.行动起来
做比说更重要,最重要的是行动起来,不要仅仅停留在嘴上。

总结一下

张一鸣曾在一次会议中,分享自己对人才的一些看法,作为面试官,过去10年里,可能面试过2000多个年轻人。总结了优秀的年轻人所具备的特质,首先有好奇心,能够主动学习新事物、新知识和新技能。第二,对不确定性保持乐观。第三,不甘于平庸。第四,不傲娇,要能延迟满足感。第五,对重要的事情有判断力

我特别赞同第五点,最近几年,很多意识到选择大于努力,实际上就是你是否具备判断力,选什么专业、选什么公司、选什么职业、选什么发展路径,自己有判断能力,不被他人而左右。

作为程序员,技术实力固然重要,这是你产生影响力,可以做选择的前提,没有这个作为基础,你根本连选择的权利都有没有。但想要成为一个顶级的程序员,瓶颈在于你的天赋和判断力,不管怎样,当你开始意识到这是一件重要的事情的时候,就是一个好的开始。

猜你喜欢

转载自blog.csdn.net/Mr_HelloWorldx/article/details/129739763