怎样才算是编程高手?

编程高手的定义因人而异,但普遍认为能在特定领域解决复杂问题的人是高手。高手之路涉及学习、思考和实践,关键在于全局性的知识地图、避免陷阱以及保持热情。文章介绍了成为架构师、CodeGuru和纯管理者的三条路径,强调了选择正确方向、理解领域知识和持续学习的重要性。全局性地图包括通用领域知识、概念和逻辑创建、专业领域知识及间接知识。
摘要由CSDN通过智能技术生成

【文章来源微信公众号:每天学编程】

程序员生存定律这系列的目录在这里:程序员生存定律–目录

喜欢从头瞄的,可以移步。

一旦度过了初始阶段,做过了前面说的那些事情,那么一个人算是基本入行了,接下来的目标就非常简单,要在选定方向上成为高手。高手意味着专业,而在分工无限细化的年代里,专业则是生存、发展好最为重要的一个前提。

1 高手的定义和养成关键

我估计如果问100个人“什么样的程序员是高手?”,那答案会有100多个。因为同一个人还可能给高手下不同的定义。

在这里我们认为,在特定领域里能搞定大部分人搞不定事情的就是高手。从这样一个定义出发,我们会发现在技术人员和销售人员眼里,高手的内涵是有很大差异的。

纯技术人员更多的关注性能能不能提到极致,并发能不能处理的很好,内存溢出Bug能不能很快搞定,类库的机理熟悉不熟悉等等。而在销售人员的眼里,则在技术外还多看了些东西,比如业务流程熟不熟悉、使用性好不好、能否迅速对应变化、能否在限定工期和预算下搞定任务等。

考虑到职场和产品销售有着非常紧密的关系,我们这里使用后一个视角,而非是单纯的技术视角。

有几类本质上很不同的人都会被视为高手,比如说:

  • 能写出很牛的病毒的

这个不举例子,但当年读过CIH的代码,我是被其精巧给震住了。此外也许搞加密解密的也应该放在这个类别里。

  • 能把一堆3D图形放到64K的

以前专门有个比赛是干这个的,64K大小的EXE能给你放10几分钟很酷的3D动画,第一次见绝对会很震惊。

  • 能迅速调试出问题所在的

内存泄露、多线程同步这类问题往往让人纠缠很久也搞不定,但就是有人能很快的解决这类问题。

  • 能仅靠几个人就架起高并发网站的

新兴Web2.0网站如:Flickr,甚至还可以包括Google,在初期往往是几个人搞起来的,这些人名声不显,但绝对是高手。

  • 能主导开发出很牛的产品的

这个上可以想想Unix和Linux的作者等。

  • 能主持大规模软件设计的

这个往往更有商业价值,我们常说的Martin Fowler应该可以算在这个类别。

  • 能把一种语言研究的特别牛的

想想各个编程语言的创建者,想想C++的大牛们。当然创建某一门语言的也可以归到这个类别里。

  • 能开辟自己方法论的

比如搞CMMI的Watts S. Humphrey

  • 能写出很牛的书的

比如:Windows平台下写了Windows核心编程的Jeffry Richard

  • 能写出很牛的算法的

比如:Donald Knuth

这个表应该还可以加长很多,单以大家认可这个角度来看确实高手可以从各个方面冒出来。

不管在那一方面,要想成为上面所描述的高手总是需要学习、思考、实践这些环节,这没什么可说的。但和软件相关的知识其实多如牛毛,完全不像小说里武功秘籍那么稀缺,几乎可以讲满地都是。这就使选择和集中成为难题。

软件的三个基本特征(技术更迭快、低介入门槛、多内部分野)就像铡刀一样,一旦选择出错,就会把个人的努力切的粉碎,一点价值也留不下来。而与此相对的,则是人的黄金学习时间其实并不多—不过是毕业后的10年左右的时间。

曾经有人希望自己能够从事嵌入式软件的开发,因此给自己买了ARM板,自己在家里花了很多时间来学习并实践相关知识,最终却因为其他的原因进入了一家做网络的公司。这个人等价于被软件的内部分

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值