优秀程序员的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多个年轻人。总结了优秀的年轻人所具备的特质,首先有好奇心,能够主动学习新事物、新知识和新技能。第二,对不确定性保持乐观。第三,不甘于平庸。第四,不傲娇,要能延迟满足感。第五,对重要的事情有判断力
我特别赞同第五点,最近几年,很多意识到选择大于努力,实际上就是你是否具备判断力,选什么专业、选什么公司、选什么职业、选什么发展路径,自己有判断能力,不被他人而左右。
作为程序员,技术实力固然重要,这是你产生影响力,可以做选择的前提,没有这个作为基础,你根本连选择的权利都有没有。但想要成为一个顶级的程序员,瓶颈在于你的天赋和判断力,不管怎样,当你开始意识到这是一件重要的事情的时候,就是一个好的开始。
相关文章:
![](https://img-blog.csdnimg.cn/img_convert/dee99cdfc5c2cfa3df82b90f978a4ef1.webp?x-oss-process=image/format,png)
优秀程序员的5个特征,你在第几层?
每个人程序员都对未来的职业发展有着憧憬和规划,要做架构师、要做技术总监、要做CTO。但现实总是复杂的,日复一日的工作与生活总能让人一次又一次地陷入迷茫。大部分原因就是对职业发展轨迹和自我能力提升的一般规律缺乏认识,做事找不到方向或…...
![](https://img-blog.csdnimg.cn/420c67c057174a8784d94c25e549704f.png)
JAVA Session会话 Thymeleaf - 视图模板技术配置步骤
JAVAWebSession会话会话跟踪技术session保存作用域Thymeleaf - 视图模板技术配置过程Session会话 HTTP是无状态的:服务器无法区分这两个请求是同一个客户端发过来的,还是不同的客户端发过来的 现实问题:第一次请求是添加商品到购物车&#x…...
![](https://www.ngui.cc/images/no-images.jpg)
Linux编译cpprestsdk库
本文用的Linux系统为Ubuntu22.04,自带GCC11.3.0。 依赖 ①编译需要boost库,本文用的库版本为boost-1.82.0.beta1.tar.gz。 ②编译需要openssl库,这里使用的版本为openssl-1.1.1s.tar.gz。 ③编译需要cmake库,本文使用的是cmake-3…...
![](https://img-blog.csdnimg.cn/c4e569fe36c349399afe29322bfc5c83.png)
算法的时间复杂度和空间复杂度
目录 1 如何衡量一个算法的好坏 2.时间复杂度 2.1 时间复杂度的概念 2.2 大O的渐进表示法 2.3常见代码举例 2.3.1 Func2 O(N) 2.3.2 Func3 O(MN) 2.3.3 Func4 O(1) 2.3.4 Func5 strchr O(N) 2.3.5 Func6 冒泡排序 O(N^2) 2.3.6 Func7 二分…...
![](https://img-blog.csdnimg.cn/7f5b4bc9ddc5498483f4f0263c16d119.png)
基本认识vue3
一、基本搭建 项目搭建 使用 最新的 Vue3 TS Vite项目 执行命令 (本项目采用如下方式) npm create vitelatest my-vite-app --template vue-ts或者 运行项目 npm install npm run dev项目搭建初始化目录 新搭建的项目可能会遇到个问题…...
![](https://img-blog.csdnimg.cn/img_convert/ec7613eb1a115448276e30dc0bff3bd1.png)
HTTP/HTTPS协议认识
写在前面 这个博客我们要要讨论的是协议,主要是应用层.今天我们将正式认识HTTP和HTTPS,也要认识序列化和反序列化,内容比较多,但是不难 再谈协议 我们程序员写的一个个解决我们实际问题, 满足我们日常需求的网络程序, 都是在应用层,我们要完成下面三个步骤. sock的使用 定制…...
![](https://img-blog.csdnimg.cn/1391aa8239204a4580db049f4475498f.png)
【VScode】远程连接Linux
目录标题1. 安装扩展插件2. 在Linux上操作3. 确定Linux的IP地址4. 远程连接到Linux5. 实现免密码登录使用 VScode 远程编程与调试的时有会用到插件 Remote Development,使用这个插件可以在很多情况下代替 vim 直接远程修改与调试服务器上的代码,同时具备…...
![](https://img-blog.csdnimg.cn/1974fe2662da40059d545acbb5975343.png)
QT/C++调试技巧:内存泄漏检测
文章目录内存泄漏方案一方案二:CRT调试定位代码位置方法1方法2其它问题方案三:使用vs诊断工具方案四:使用工具VLD(Visio Leak Detector)方案五Cppcheck内存泄漏 内存泄漏:指的是在程序里动态申请的内存在使…...
![](https://img-blog.csdnimg.cn/5bc78713193645f78b39580d90381dd8.jpeg#pic_center)
【贪心算法】一文让你学会“贪心”(贪心算法详解及经典案例)
文章目录前言如何理解“贪心算法”?贪心算法实战分析1.分糖果2.钱币找零3.区间覆盖内容小结最后说一句🐱🐉作者简介:大家好,我是黑洞晓威,一名大二学生,希望和大家一起进步。 👿本…...
![](https://img-blog.csdnimg.cn/4388369dffe648eb857d99d391e9eaeb.png#pic_center)
【字体图标iconfont】字体图标部署流程+项目源码分析
今日,心情甚是烦闷,原由… 公司项目需要将字体图标做一些细微的调整,我一人分析了许久,看不大懂源码的逻辑,产生了自我怀疑。深吸一口气,重新鼓起勇气,调整心境,一下子豁然开朗&…...
![](https://img-blog.csdnimg.cn/0f4184b8dd76462198fe995e491f423f.gif)
2023最全的Web自动化测试介绍(建议收藏)
做测试的同学们都了解,做Web自动化,我们主要用Selenium或者是QTP。 有的人可能就会说,我没这个Java基础,没有Selenium基础,能行吗?测试虽然属于计算机行业,但其实并不需要太深入的编程知识&…...
![](https://img-blog.csdnimg.cn/7fc0b9a951f7402c8bb657effc8a1a9e.png)
jvm_根节点枚举安全点安全区域
1、可达性分析可以分成两个阶段 根节点枚举 从根节点开始遍历对象图 前文我们在介绍垃圾收集算法的时候,简单提到过:标记-整理算法(Mark-Compact)中的移动存活对象操作是一种极为负重的操作,必须全程暂停用户应用程序才能进行,像这…...
![](https://img-blog.csdnimg.cn/img_convert/3ec84d5d3aa8ad1cd621ca05553e64db.png)
fabric(token-erc-20链码部署)
确保自己已经安装了fabric。没有安装的可以参考我之前的教程fabric中bootstrap.sh到底帮助我们干了什么?(手动执行相关操作安装fabric2.4)_./bootstrap.sh_小小小小关同学的博客-CSDN博客小伙伴们在跟着官方示例来安装fabric的时候都是相当烦…...
![](https://img-blog.csdnimg.cn/02689322e950416db1816be432f7b284.png)
C语言基础——流程控制语句
文章目录一、流程控制语句 -- 控制程序的运行过程 9条(一)、条件选择流程控制语句:if语句if……else……语句if……else if……语句switch语句(二)、循环流程控制语句:for语句while语句do while……语句co…...
![](https://img-blog.csdnimg.cn/6df947fa2672441fbeffad7ab236209f.gif)
WinForm | C# 界面弹出消息通知栏 (仿Win10系统通知栏)
ApeForms 弹出消息通知栏功能 文章目录ApeForms 弹出消息通知栏功能前言全局API通知栏起始方向通知排列方向通知栏之间的间隔距离无鼠标悬停时的不透明度消息通知窗体的默认大小示例代码文本消息提示栏文本消息提示栏(带选项)图文消息提示栏图文消息提示…...
![](https://img-blog.csdnimg.cn/f74590063ca84b7a89f85ec2e275e732.png)
刷题之最长公共/上升子序列问题
目录 一、最长公共子序列问题(LCS) 1、题目 2、题目解读 编辑 3、代码 四、多写一题 五、应用 二、最长上升子序列问题(LIS) 1、题目 2、题目解读 3、代码 四、多写一道 Ⅰ、题目解读 Ⅱ、代码 一、最长公共子序列问题&…...
![](https://img-blog.csdnimg.cn/img_convert/964d5c594e4c6ccea737be3c6b6bed4e.gif#pic_center)
【数据结构】千字深入浅出讲解栈(附原码 | 超详解)
🚀write in front🚀 📝个人主页:认真写博客的夏目浅石. 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 📣系列专栏:C语言实现数据结构 💬总结:希望你看完…...
![](https://www.ngui.cc/images/no-images.jpg)
自动驾驶V2X
1 SoC MDM9250 2 设备网络节点 mhi_swip0 rmnet_mhi0 3 网络协议栈log打印控制 include/linux/netdevice.h ethtool -s eth0 msglvl [level] ethtool -s eth0 msglvl 0x6001 4 URLs MHI initial design review https://lore.kernel.org/lkml/001601d52148$bd852840$388f78c0$c…...
![](https://img-blog.csdnimg.cn/cc9765dc19e34393bfec40e2103d80b9.png)
零基础自学网络安全/渗透测试有哪些常见误区?
一、网络安全学习的误区 1.不要试图以编程为基础去学习网络安全 不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,且过渡到网络安全用到编程的用到的编程的关键点不多。一般人如果想要把编程学好再开始学习网络安全往…...
![](https://img-blog.csdnimg.cn/b65225faa2174bf9ba5c6eede6aebe83.png)
ConvMixer:Patches Are All You Need
Patches Are All You Need 发表时间:[Submitted on 24 Jan 2022]; 发表期刊/会议:Computer Vision and Pattern Recognition; 论文地址:https://arxiv.org/abs/2201.09792; 代码地址:https:…...
![](https://www.ngui.cc/images/no-images.jpg)
day10—编程题
文章目录1.第一题1.1题目1.2思路1.3解题2.第二题2.1题目2.2涉及的相关知识2.3思路2.4解题1.第一题 1.1题目 描述: 给定一个二维数组board,代表棋盘,其中元素为1的代表是当前玩家的棋子,0表示没有棋子,-1代表是对方玩…...
![](https://img-blog.csdnimg.cn/img_convert/b90dd3f653a84ea9abc3a3dabb17472b.png)
如何测量锂电池的电量
锂电池在放电时我们有时需要知道电池的实时电量,如电池电量低了我们就需要及时给锂电池充电,避免电池过度放电。我手里的这个就是个单节锂电池电量显示模块,只需要将这个模块接到锂电池的正负极即可显示电量。这个模块的电量分为四档…...
![](https://img-blog.csdnimg.cn/d197a9056faf464bb35a2053d486dac2.jpeg)
菜鸟刷题Day6
⭐作者:别动我的饭 ⭐专栏:菜鸟刷题 ⭐标语:悟已往之不谏,知来者之可追 一.链表内指定区间反转:链表内指定区间反转_牛客题霸_牛客网 (nowcoder.com) 描述 将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转…...
![](https://img-blog.csdnimg.cn/img_convert/a4b8b0c8431edd1ca6bf6d2a43322cdd.png)
DecimalFormat格式化显示数字
DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字,可以实现以最快的速度将数字格式化为你需要的样子。 DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充, # 表示只要有可能就…...
![](https://img-blog.csdnimg.cn/4444158668fe4692995c9e9d1e018737.jpg)
cpu中缓存简介
一级缓存是什么: 一级缓存都内置在CPU内部并与CPU同速运行,可以有效的提高CPU的运行效率。一级缓存越大,CPU的运行效率越高,但受到CPU内部结构的限制,一级缓存的容量都很小。 CPU缓存(Cache Memory…...
![](https://img-blog.csdnimg.cn/cdfcb24ec75f4129bd8fd2f001e35671.jpeg)
【数据结构】二叉树的遍历以及基本操作
目录 1.树形结构 1.概念 2.二叉树 2.1概念 2.2 两种特殊的二叉树 2.3二叉树的存储 2.4二叉树的基本操作 1.手动快速创建一棵简单的二叉树 2.二叉树的遍历 (递归) 3.二叉树的层序遍历 4.获取树中节点的个数 5.获取叶子节点的个数 6.获取第K层节点的个数 7.获取二叉…...
![](https://img-blog.csdnimg.cn/e8f844b2d9a2421cb92f599cf275d26b.png)
若依框架 --- ruoyi 表格的设置
表格 字典值转换 (1) 方式1:使用字典枚举的方式 var isDownload [[${dict.getType(YES_OR_NO)}]];{field : isDownload,title : 是否允许下载,formatter: function(value, row, index) {return $.table.selectDictLabel(isDownload, value);} }, (2) 方式2&…...
![](https://img-blog.csdnimg.cn/img_convert/553c75535df5c4a333e0319079a1c103.jpeg)
“两会”网络安全相关建议提案回顾
作为新一年的政治、经济、社会等发展的“风向标”,今年“两会”在3月13日顺利闭幕。在今年“两会”期间,多位人大代表也纷纷围绕网络安全、数据安全的未来发展做了提案和建议。 01 “两会”网络安全相关建议和提案回顾 建议统筹智能网联汽车数据收集与共…...
![](https://img-blog.csdnimg.cn/a091abb93a584912801511b923925156.jpeg)
一篇文章带你真正了解接口测试(附视频教程+面试真题)
目录 一、什么是接口测试? 二、为什么要做接口测试? 三、如何开展接口测试? 四、接口测试常见面试题 一、什么是接口测试? 所谓接口,是指同一个系统中模块与模块间的数据传递接口、前后端交互、跨系统跨平台跨数据…...
![](https://img-blog.csdnimg.cn/485e23fe171340ac8aa6484295c452bf.png)
C/C++每日一练(20230325)
目录 1. 搜索插入位置 🌟 2. 结合两个字符串 🌟 3. 同构字符串 🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 搜索插入位置 给定一个排序数…...
![](/images/no-images.jpg)
网站建设需要什么流程/google ads 推广
转自:http://www.cnblogs.com/yangyh/archive/2011/06/04/2072393.html 首先这位作者, 因为看了这篇简短的一个博文, 我相同了关于虚函数方面的知识。 #include "stdafx.h" #include "stdio.h" #include "strin…...
![](/images/no-images.jpg)
电商网站报价/北京seo公司华网白帽
首先需要明确,a() {}和 b: () > {}是不同的{}}1 VUE.js 源码解析注意此处只设计核心代码这段代码也是UMD实现原理,本文这里不是重点,有兴趣的可以自行探究。解析一:对于javascript来说,非严格模式下函数都会有一个t…...
![](https://s4.51cto.com/wyfs02/M02/3F/02/wKiom1PIf_iASNNVAAF4MCt1EWY284.jpg)
微信公众平台维护/重庆seo顾问
一、任务与目的1. 实验任务:(1) 掌握和完成设置不同vlan间通过路由器互通的方法;(2) 完成同vlan间计算机的测试。2. 实验目的:(1) 进一步熟悉交换机vlan间互通的配置方法;(2) 熟悉和掌握不同vlan间互通的测试方法。二、原理(条件)1.相关知识: (1) Vlan的工作原理; (2) 交换机与…...
![](/images/no-images.jpg)
做网站 怎么做留言/百度新闻最新消息
package cn.TCP;import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket;/*** 模拟多个客户端登陆 双向* 1.指定端口 使用ServerSocket创建服务器* 2.阻塞式等待连接accept* 3.…...
![](/images/no-images.jpg)
镇江丹阳疫情最新情况/郑州企业网站seo
实验室有自己的服务器,同时院里也有集群,我用内网或者外网连接自己的服务器的时候都没什么问题,但是连接集群就一直连接不上,报错如下 vscode Acquiring lock on xxxx省略第一个解决办法 第一个方法是进入到服务器中自己的文件目…...
![](https://s1.51cto.com/images/blog/201805/21/458e02be3789b65c9cc415c6a87579c1.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
中和阗盛工程建设有限公司网站/企业网站制作多少钱
Kubernets 中的Node, Pod,Replication Controller, Service 等都可以看作一种资源对象,这些资源几乎都可以通过使用Kubernetes提供的kubectl 工具执行增删改查,并将其保存在etcd中持久化储存。通过跟踪对比etcd库中保存的“资源预设状态”与当…...