初级和高级程序员的4道鸿沟

沟通中最大的一个问题是它已经发生的错觉。

——乔治·萧伯纳

文章首发公众号:程序员技术专栏

很多人认为年龄是衡量一个人能力的标准,并且直接把年龄和工作经验划等号。

但在我看来,年龄和工作年限都只是一个数字,而你的工作质量远比你的多年经验重要。

虽然技术的积累需要时间,不过初级程序员和高级程序员也并不是完全按年龄来分,我认为其中的差异点主要在以下几部分:

01

“偏执行”vs“给方案“

初级程序员往往更专注于实现某个功能,习惯将编程知识应用于手头的问题。

这是初级程序员缺乏“全局思维”的表现。


在大部分情况下,初级程序员会对特定的解决方案去落地,并且大概率能交付结果。

但实现某些功能,并不等于你针对问题给了解决方案,你只是在执行。

而高级程序员有一种根深蒂固的思维,那就是专注于系统的整体架构

他们不只是看到一个功能,而是看到它对整个系统的影响,包括整体需要的改进和它的复杂性。

面对一个问题,他们会思考很多,包括评估解决当前问题的大概成本,有什么技术价值或业务价值。如果价值大成本小,那么马上就付诸行动。

说到这里有些人或许认为很简单,不就是给方案吗?一个合格的程序员的基本素养就是解决问题。

但现实情况通常是面对一个问题可以有多种解决方案,此时需要衡量引入新功能对产品的影响、对业务的影响、交付的时间、需求优先级等问题。

这就需要对业务、对产品有较深的理解,以及专业的技术素养

02

“假设不存在”vs“弄清本质”

初级程序员在面对模棱两可的问题时,往往假设问题不存在会如何如何,而忽略事情的本质。

造成这种情况的原因有很多种,比如对自己的专业度缺乏信、没有可求助的人,或者是技术没学到家。

很多时候,他们会假设问题在现实工作中不会发生,或者问题是一种非常边缘的情况。然而从长远来看,当代码库变得庞大并且调试变得非常困难时,这么做将会引发更大的问题。

然而,高级程序员在这种事上就显得更有信心,看起来更靠谱。

他们有一个经验法则:只要有疑问,就提出问题,直面问题。这也意味着他们会去深度了解问题的本质。

弄清问题的本质对高级程序员来说是一件大事。无法定义问题,很多时候就没法正确地开始

在这种情况下,只有一个错误,那就是假设问题不会发生。

乔治·萧伯纳曾说过:“沟通中最大的一个问题是它已经发生的错觉。” 

下篇接着讲剩下的几点,觉得文章不错的记得关注~

文章首发公众号:程序员技术专栏

-The end-

你好,我是中年码农飞哥,

我会从CTO视角讲述程序员职场/技术/学习/创业等,

分享从码农到CTO的职场和技术经验

扫 码 | 围 观 飞 哥 朋 友 圈

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值