程序员怎么提高自己的编程能力?大厂技术总监的建议

凭什么CTO、技术总监、架构师都不写代码,还一天天牛逼哄哄的? 前言 常常会被问到这样的问题:CTO、技术总监、架构师很少写具体代码,为什么还很牛逼的样子,拿这么高工资? 其实,这个问题本身就错了。就好比问:导演、制片人为什么不懂演戏,还能指导演员,好像比演员厉害似的?其实不难理解,导演、制片人的核心能力并不是演戏,又怎么能跟演员作比较呢? 回答前面的问题,逻辑也是一样的,拿CTO、技术总监、架构师,跟程序员比写代码的能力,本身就是个错误。因为,他们的核心能力是不一样的。 CTO、技术总监、架构师的核心能力是技术判断力。简单来讲,就是判断一个项目、一个系统架构、某个技术 阅读详情

在我看来,成为编程高手其实是一场体力、脑力、心力的修仙之路。

我基于个人以及身边同事的案例展开说一下我的建议,希望让你有所启发。

 

1、首先何谓 “编程高手” ?

我觉得能分成这样 3 类:

第 1 类:天赋和成就都很高的人中龙凤,比如能一个人写出 WPS 的求伯君、一个人开发出电子邮件 Foxmail 的张小龙,对开源领域影响很大的章亦春等人。
第 2 类:有不错的口碑同时广为人知的技术大牛,他们一般在知名公司的重要岗位任职过,对技术纯真热爱,同时热衷分享,比如耗子哥、阮一峰、尤雨溪等人。
第 3 类:工作中被我们视为崇拜对象、未来我们也有希望达到这一水平的高 P 或者架构师。

 

前面两类不在我的圈层射程内( 除了跟耗子哥在亚马逊有过一面之缘以外 ),因此本文主要聊下第 3 类人。这个也是绝大部分读者最关心的、同时可以设定为超越对象的群体。

这样就有了一个新问题: 既然想成为第 3 类人,那如何给第 3 类人下一个相对准确且具象的定义呢? (如果目标都是模糊的,就难言超越了)

这其实是一个很有意思的问题,每个人的答案可能都不一样,因为「编程水平的高与低」本身就是一个相对的概念。

我先说一下我的看法。

刚毕业那会,我眼中的编程高手是我的同事 - 超哥,他是亚马逊的架构师,团队里面技术级别最高的人(后来他做到了亚马逊中国首架的位置,现在也算圈内比较知名的大牛了)。

超哥是那种能搞定一个复杂项目(跨多个系统),从架构设计、到编码、到自动化测试、再到运维工具、甚至写文档都非常全面的人。显然是我这个刚毕业的菜鸟极其崇拜的大佬。

再后来,我工作了四五年,走向了技术管理路线,因为带团队的原因,我又多了一个新视角来审视编程厉害的人。

对比所谓的 PPT 架构师、以及讲到技术原理就满嘴跑火车而编码能力却稀松平常的人,我倾向给「编程高手」下一个更务实的定义:那就是实际工作中,能做到高效率、高质量、且稳定输出的人。

 

看似容易,实则很难。我对这个定义的详细解读如下:

1、高效率:编程效率能做到团队中的 Top,对于复杂需求或者复杂问题能够快速理解,具备将复杂工作拆解成一系列简单子问题并搞定这些问题的人。他们能从实际场景出发,有造轮子的能力,也有不造轮子的觉悟。

2、高质量:编程质量能做到团队中的 Top,设计方案的合理性、编码的严谨性、测试方法、监控运维方案等,都能思考全面的人。

3、稳定输出:给高效率和高质量增加的限定。我觉得只有量变引起质变,真正形成了自己的方法论,能持续搞定一类问题,而不是单个问题的人才算是高手。

也许你会说要同时做到这 3 点太难了,但是实际工作中,一定有人能做到某个点或者某几点,那么以他们作为这一点的标杆即可。

因为所谓的 「 编程高手」 不过是 我们设定 的一个目标而已,你清楚这个目标是什么就足够了,不一定非得安在同一个人身上。

 

2、如何训练成为一个“编程高手”?

要成为一个编程高手,底层知识是必不可少的。这是一句正确的废话,就不展开解释了。

我觉得最重要的一点是,能够摸索清楚:如何将底层知识和实际工作衔接起来,做到相辅相成?

先看一个具体的例子。对于简历中写自己做过性能优化的候选人,我面试时比较喜欢问:你是如何定位性能瓶颈并完成调优的?如果再次碰到此类问题,你的详细思路是什么?

很显然,这是一个系统性的工程问题,能同时对技术深度和宽度进行考察。

不仅仅是应用层的代码,还包括所使用的框架、中间件、虚拟机、网络甚至操作系统等等。 有性能指标等基础性的知识,有 监控和压测工具的运用,还 有成体系的排查思路和优化方法等等。

如果是编程低手,他们的答案通常有这几类:

1、性能指标都不清楚,遇到问题也不知道该用什么工具,这一类人应用层都不达标。
2、初步定位到一个疑似瓶颈点后,就着手优化,最终解决的只是一个浅层次的性能瓶颈问题,根本原因并未触达到。
3、能定位到根本原因,但是对于解决方案的合理性缺少深入思考,不追求极致,最终只是用了曲线的方案再次隐藏了性能问题。

通过这个例子,我其实想说明两点:

1、不具备底层知识,你的视野根本就触达不到底层的东西,思维以及能力永远只能停留在应用层面,能解决的问题有限。
2、读源码、学习各种原理,所有这些都只是学习和巩固知识的过程,真正体现编程水平的是实际解决问题的能力,因此如何将知识变成有效的经验?这个才是关键,做不到要么是实践不够,要么是压根没研究明白。

然后,我们再回到问题身上:究竟如何才能做到底层知识和实际工作的衔接呢?如果衔接不好,那问题出在哪个环节?

大家可以先思考下:过往工作中那些对你编程能力帮助很大的经历,你认为你能获得提升最关键的因素是什么?是底层知识的储备吗?

细想一下一定不是,而是发现问题的能力。 (注意:我说的是最关键的因素,并不是否认底层知识的储备不重要)

大家可以去观察一个工作中很常见的现象:同一个问题你能看到哪一层?而编程高手又能看到哪一层?谁能更快地贴近问题的本质?谁又能衍生出一系列的问题? 这其实就是「发现问题」的能力体现。

只有当你意识到它是一个值得深挖的问题时,才会有一层一层的思考,一层一层的分析。

那应该如何提高这方面的能力呢?其实就是思考力的提升过程,除了观察和刻意练习,我想不出更好的建议。多看高手是怎么做的?遇到问题时自己多问几个为什么?多反思自己的思路是否正确?日积月累水平自然会提高。

当你具备了发现问题的能力,就相当于给知识和经验之间架起了一座桥梁,真正做到相辅相成以及互相驱动。

 

3、成为 “编程高手” 的其他建议

编程作为一门实践性的学科,多动手解决问题是最基本的要求了,解决问题越多、越难,能力提升越快。

而在这个过程中,如果有知识输入(底层知识的储备),还有思考的加成(发现问题的能力),编程水平的提升会更加迅速。

我带过的团队里面,还有一类人总说自己技术进步很慢,工作没有挑战。但是当团队遇到一个技术难题时,他根本没有意愿去做深入了解,嘴上说热爱技术、渴望成长,但是却看不到行动,这种人是永远成为不了编程高手的。

真正的热爱来源于行动上的投入,不是找借口,不是追求舒服,这是很重要的一个区别。

编程高手是如何练成的?这样看来,它其实是一个体力、脑力、心力的修仙之路。

总结

今天我所说的,都是自己的学习过程中的体会和总结。如果说学习是一项投资,那金钱绝对不是最大的成本,它需要你的时间,你的耐心和你的决心。

最后小编给正在学习的小伙伴分享一些Java学习资料,免费自行下载,QQ群——927296445

DeepSeek+Coze扣子搭建智能体(保姆级教程) 阅读详情

相关推荐

Qt C++ bridge模式(桥)

Bridge模式使得抽象和实现能够相对独立。 bridge.h #pragma once #include class CImplementor { public: virtual void operateImp() = 0; }; class CRectImplementor : public CImplementor { public: CR

thinkme2010的专栏 1894

回顾我的亚马逊云科技四大认证之旅:从零到认证高手的成长历程

在备考亚马逊云科技(AWS)的四门认证过程中,我收获了丰富的知识和技能。这四门认证涵盖了解决方案架构、开发、运维以及数据工程,全面提升了我在各个领域的理解和实际操作能力。在学习过程中,我遇到了许多挑战,但每一次“原来如此”的时刻都让我感到非常有成就感。AWS对于工程师来说至关重要,特别是在未来更多使用微服务和无服务器技术的背景下,这些知识将变得更加有价值。我强烈建议大家利用AWS的优惠活动和公司支持,共同学习并获取认证,提升自身的竞争力。

因果律的博客 4624

STM32MP157+AD7606BSTZ四通道IEPE传感器采集方案实战(附完整电路图)

本文详细介绍了基于STM32MP157和AD7606BSTZ的四通道IEPE传感器采集方案,涵盖硬件电路设计、软件驱动开发及系统性能优化。通过精确的恒流源设计和同步采样技术,实现高精度振动信号采集,适用于工业振动监测等应用场景。

weixin_42713608的博客 702

聊聊程序员应该如何提高自身代码能力

总之,业务理解和实现能力是企业人员必须具备的重要素质,需要从行业和市场趋势、思考和创新、沟通能力、分析决策和持续学习等方面入手,不断完善和提升自己,才能不断提升业务水平,实现业务目标和企业发展。总之,提升解决问题能力需要从分析问题、收集信息、制定方案、实施方案和持续跟踪等方面进行,需要全面考虑问题的各个环节,遵循有效的解决问题的方法和流程,并不断学习、总结和提升解决问题的能力。总之,提升编码能力需要不断学习和实践,培养技能的过程需要耐心和毅力,需要不断地挑战和学习。

程序员Linc 3193

ENVI遥感技术

记录2024.03.06所遇到的遥感问题

qq_44453923的博客 4332

生信人的一天~HIFI数据+HIC数据组装基因组

HIFI+HIC数据组装基因组!

qq_43337286的博客 9530

亚马逊架构师:私有云计算有没有前途

James Hamilton 是亚马逊的架构师,非常聪明的一个人。他在最近的一篇博客中说,他认为私有云计算没什么前途。原因是,私有云计算没办法达到公共云计算带来的规模效应。       基于web的公共云计算在以下这几个方面确实有它独特的优势: ·服务质量。提供大规模公共云服务的公司可以请到业界的专家来优化服务和基础架构。对于系统安全和体系结构的整体设计这两个领域来说,业界经验最能体现

feihu19851111的专栏 8153

OpenClaw(Clawdbot/Moltbot)如何正确的配置浏览器,实现对浏览器的自动化操作功能(浏览器状态为running:false怎么办)

OpenClaw(Clawdbot/Moltbot)浏览器自动化功能无效?🤖 本文详细介绍如何解决这个问题🔧,让你的OpenClaw(Clawdbot/Moltbot)真正具备"睁眼看世界"的能力,支持网页搜索、点击操作和截图等功能 ✅

XiaoqiangClub的博客 8109

编程高手是如何练成的?

编程高手是如何练成的?

chengbo_eva的博客 309

基于STM32设计的环境监测系统(华为云IOT)_300

随着空气污染问题日益严峻,环境空气质量的监测变得愈加重要。为了解决这一问题,本项目设计并实现了一款基于STM32的空气质量监测设备,能够实时监测空气中的温湿度、二氧化碳浓度和甲醛浓度,并通过OLED显示屏展示数据。此外,设备支持通过WIFI模块将数据上传至云端,用户可以通过手机APP或Windows上位机查看实时数据。设备采用MQTT协议与华为云IOT物联网服务器进行数据通信,确保数据的实时性和可靠性。本项目还结合了低功耗设计和高灵敏度传感器,使得设备能够高效稳定地运行,并实现远程监控功能。

696

第三篇:NVIDIA cuOpt Python API 详解:LP、QP、MILP 建模与求解,附核心术语名词解释

NVIDIA cuOpt是一款GPU加速的优化求解库,支持LP、QP、MILP和路径优化问题。本文详细介绍了其Python API使用方法,包括核心类Problem的变量定义、约束添加、目标设置和求解配置,并提供了术语解释。cuOpt通过GPU并行计算大幅提升大规模优化问题的求解效率,支持多种求解算法和参数配置,适用于需要高性能计算的优化场景。安装方式包含pip和Docker两种,验证安装后即可快速开始建模求解。

算法工程师 236

作为程序员,该如何提升自己的编程水平?

不管是编码类的技术基础学习成长,还是相对抽象的问题解决,还是技术领导力成长。只要是成长,只要能够抓住这两个关键就一定能够成功。第一个就是反思,能够敏锐地反思自己的不足,然后不断去修正自己的心态和行为让自己蜕变。第二个就是总结,总结的过程是不断梳理自己的过程,把自己迷迷糊糊,是是而非的东西分类归类,而且总结越多就能够用好时间的复利,就能够越促进成长。

黑马程序员官方博客 1196

YOLOv11损失函数进阶:融合SmoothL1与FocalLoss,让检测精度再涨10%的实战教程

在YOLOv11的这里的beta参数控制“L1与L2的过渡阈值”,默认设为1.0即可兼容多数场景。同样在# 计算动态alpha(基于类别样本数,需提前统计self.class_counts)# 交叉熵基础# FocalLoss权重else:使用前需统计数据集的(每个类别的样本数),并传入的alpha参数。损失函数是YOLOv11精度的“灵魂”——SmoothL1让边界框回归“稳、准、狠”,改进FocalLoss让类别分类“雨露均沾”。从代码改造到实战落地,本教程已为你搭建了一条精度跃升的路径。

m0_64661770的博客 213

为什么CTO、技术总监、架构师都不写代码,还这么厉害

本文转载自 技术领导力 作者|Mr.K 整理| Emma 常常会被问到这样的问题:CTO、技术总监、架构师很少写具体代码,为什么还很牛逼的样子,拿这么高工资? 其实,这个问题本身就错了。就好比问:导演、制片人为什么不懂演戏,还能指导演员,好像比演员厉害似的?其实不难理解,导演、制片人的核心能力并不是演戏,又怎么能跟演员作比较呢? 回答前面的问题,逻辑也是一样的,拿CTO、技术总监、架构师,跟程序员比写代码的能力,本身就是个错误。因为,他们的核心能力是不一样的。 CTO、技术总监、架构师的核心...

m0_46163918的博客 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

为什么CTO、技术总监、架构师都不写代码,还这么牛逼?

作者|Mr.K 整理| Emma来源|技术领导力(ID:jishulingdaoli)常常会被问到这样的问题:CTO、技术总监、架构师很少写具体代码,为什么还很牛逼的样子,拿这么高...

技术领导力 3279

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

大厂程序员成长路径

5. 首席科学家阶段(12-15年):在这个阶段,程序员已经成为公司乃至行业的技术权威人士,具备极高的声誉和影响力。此外,他们还需要培养新一代的技术人才,传承经验和知识。5. 技术总监阶段(12-15年):在这个阶段,程序员已经成为公司的技术领袖,具备丰富的经验和深厚的技术功底。3. 高级工程师阶段(5-8年):在这个阶段,程序员已经成为某一领域的专家,具备独立解决复杂问题的能力。需要注意的是,以上成长路径仅供参考,是比较理想的成长路径,具体的成长速度和发展方向还会受到个人兴趣、能力和公司需求的影响。

weixin_43576901的博客 2416

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

40多岁前端技术专家被裁员,聊聊java程序员如何提升写代码的能力

他的老婆还谈到了他的一些观点。当他在大厂做技术总监的时候,就评级了他的技巧,分别是s、a、b、c四个等级,s是最优秀的,c是最差的。总之,Java工程师要提高编写代码的能力,需要不断地学习、实践和拓展自己的技术视野,参与开源项目,积累编程经验和技能,不断地优化自己的代码,在实践中锤炼自己的编程能力。同时,还要保持身心健康,保持良好的生活习惯和心态,才能更好地编写优秀的代码,提高自己的编程水平和职业发展。在编写代码的过程中,要不断地思考代码的逻辑和结构,避免出现不必要的代码冗余和低效的算法。

m0_71628805的博客 760

为什么CTO、技术总监、架构师都不写代码,还这么牛?

常常会被问到这样的问题:CTO、技术总监、架构师很少写具体代码,为什么还很牛逼的样子,拿这么高工资? 其实,这个问题本身就错了。就好比问:导演、制片人为什么不懂演戏,还能指导演员,好像比演员厉害似的?其实不难理解,导演、制片人的核心能力并不是演戏,又怎么能跟演员作比较呢? 回答前面的问题,逻辑也是一样的,拿CTO、技术总监、架构师,跟程序员比写代码的能力,本身就是个错误。因为,他们的核心能力是不一样的。 CTO、技术总监、架构师的核心能力是技术判断力。简单来讲,就是判断一个项目、一个系统架构、某个技术方向,

penggerhe的博客 470

#为何程序员百万年薪,CTO技术总监架构师不写代码还这么牛逼 ?

【此文章转自乐字节】 真的是一点不服气我的领导,每天就在座位上看看头条,到时间开开会,每天写代码的时间可能不到两小时,到底是为什么他的收入有年薪百万?我们都是985研究生毕业,是什么铸就了他的价值? 如果我想找到年薪百万的职位,我又该做些什么?做项目的时候我又该积累和注意什么? 也会这样的问:CTO、技术总监、架构师很少写具体代码,为什么还很牛逼的样子,拿这么高工资? 其实,这个问题本身就错了。就好比问:导演、制片人为什么不懂演戏,还能指导演员,好像比演员厉害似的?其实不难理解,导演、制片人的核心能力并不.

weixin_53173799的博客 520

为什么 CTO、技术总监、架构师都不写代码,还这么牛?

作者|Mr.K 整理| Emma来源|技术领导力(ID:jishulingdaoli)常常会被问到这样的问题:CTO、技术总监、架构师很少写具体代码,为什么还很牛逼的样子,拿这...

程序人生的博客 449
上一篇: 从Java培训班出来后是怎么找到工作的?
下一篇: Java程序员如何写简历,给大家一个小建议?
又是一个特殊的一天
博客等级 码龄7年 287粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值