普通的程序员和大神级的程序员有什么区别?

作者:人民邮电出版社
链接:https://www.zhihu.com/question/59351128/answer/1322476111
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

普通程序员尝试重构一个简单的模块

大神级程序员重构代码

普通程序员做的多线程

大神级程序员做的多线程

当然,在发量上,普通程序员具备一定的比较优势……

(开个玩笑)

咳咳,正经一点,让我们再把程序员细分一下,初级、中级和高级开发人员之间都有哪些区别呢?

知识储备

显然,高级开发人员比初级和中级开发人员具有更多的知识储备。对于初级开发人员来说,学习设计模式、架构、自动化测试、性能、安全性等,是一种减小与中、高级开发人员之间知识鸿沟的好方法。

知识并不是开发人员之间的最大区别,它只是因素之一。知道怎样完成软件开发中的任务很重要,但是,仅了解这些内容并不能使你成为高级开发人员。

编码技能

虽然代码最终会被编译为0和1,但是大多数人都认为,编码并不是与计算机交流,而是与人沟通并指导计算机。

对于将来使用代码的其他开发人员来说,代码必须有意义。一个新团队如果有需要,应该能够立刻打开代码并研究新功能或者debug。 这也是初级开发人员和高级开发人员之间最大的区别。

在编码技能方面,中级开发人员是一个灰色地带。中级开发人员介于初级和高级之间,而可能更倾向于高级,因为中级开发人员应该至少已经经历过整个开发周期,他们已经犯过很多最简单的错误,并从中吸取了教训,积累了经验。

初级开发人员

初级开发人员没有经验,有些甚至刚毕业,正在开始他们的第一份全职工作,所以初级开发人员的心态通常是使代码正常工作

初级开发人员可能并不觉得编写简单的代码很难,而且他们可能会编写一些花里胡哨“炫技”的代码,你可以通过古怪的单行代码过于复杂的抽象来识别初级开发人员。他们想证明自己可以把代码编写得很好,但是这是错误的。初级开发人员专注于代码的计算机端,而牺牲了人力。

高级开发人员

在查看高级开发人员的代码时,你可能会想:这就是全部吗? 其余的代码在哪里? 一个资深的开发人员会编写最简单、直接甚至是傻瓜的代码。资深开发人员遵循KISS原则:Keep it simple, stupid(保持简单、傻瓜)。这是开发人员在编程时需要具备的最重要的素质之一。

高级开发人员与初级开发人员以不同的方式来考虑他们的代码。高级人员考虑以后要使用这个代码的人员,所以高级开发人员编写的代码具有一定的可维护性和可扩展性。而初级人员可能只是考虑怎样使代码能够在计算机上工作。

进一步地,普通程序员如何晋升为大神级程序员呢?

进入新的高度

初级至中级

由于初级开发人员没有经验,因此经历几次整个开发周期是必不可少的。在这个过程中,你可能会掉入很多“陷阱”,然后慢慢地学会如何规避它们。

在编码方面,你应该学习如何编写简单的代码,并且要考虑到下一个要在那段代码上工作的人。 你还应该学习调试方法,这可以使你更好地了解过程中发生的事情。

此外,你应该多实践,并了解架构,性能,安全性等知识,减小与中级水平之间的知识鸿沟。

中级至高级

从中级升到高级很难,可能一些开发人员的整个职业生涯都会保持中级水平。

高级开发人员对代码整体有较强的把握,知道可以去掉哪些部分,保留哪些部分,这都是经验所得。而且,高级开发人员永远知道如何提出正确的问题,以及如何采取措施,处理这些问题。

如果你想升入高级职位,就必须做好承担没人知道如何解决的任务的准备,而不仅仅是知道如何完成工作。当其他开发人员不知道如何做时,你还是他们的后备人员。高级开发人员的工作还在于帮助经验不足的开发人员。

高级开发人员能够掌握他们公司的技术栈。所以除了编码技能,你需要了解你所在的公司内部正在使用的所有工具和应用程序。

马丁·福勒(Martin Fowler)有一句名言:“任何傻瓜都可以编写计算机可以理解的代码。 好的程序员编写人类可以理解的代码。”

基于此,人邮君给大家推荐一本帮助普通程序员迈入专业,向大神看齐的软件开发秘籍——《代码整洁之道》。

代码质量与其整洁度成正比

干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,本书作者“Bob大叔”给出了一系列行之有效的整洁代码操作实践。这些实践在本书中体现为一条条规则,并辅以来自实际项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。

书中的具体内容包括:

  • 好代码和糟糕的代码之间的区别;
  • 如何编写好代码,如何将糟糕的代码转化为好代码;
  • 如何创建好名称、好函数、好对象和好类;
  • 如何格式化代码以实现其可读性;
  • 如何在不妨碍代码逻辑的前提下充分实现错误处理;
  • 如何进行单元测试和测试驱动开发等。

以书中的《注释》一章为例。作者首先表达观点——“注释的恰当用法是弥补我们用代码表达意图时遭遇的失败”,因为我们找不到不用注释就能表达自我的方法,所以出现了注释。如果能用代码来表达,那最好就不要用注释。

原因很简单:程序员不能坚持维护注释。

代码在变动、演化,彼此分离、重造又合到一处,但是注释并不总是随之变动——不能总是跟着代码走。所以注释常常会与所描述的代码分隔开来,越来越不准确。

“程序员应当负责将注释保持在可维护、有关联、精确的高度。我同意这种说法,但我更主张把力气用在写清楚代码上,这样可以直接保证无须编写注释。”

所以,真正好的做法就是尽量想办法不去写注释。

接着作者就具体哪些是“好注释”,哪些是“坏注释”进行举例。有些注释是必需的,也是有利的,像法律信息、解释意图、警示之类的注释就是值得写的“好注释”。

但是大部分注释就像是程序员自言自语的“坏注释”,像对简单函数的多余的注释、误导性注释、日志式注释等。在指出哪些是“坏注释”的时候,作者还对具体的“坏注释”给出正确的做法。

就像《注释》这一章一样,作者从概念、命名、函数、注释、格式、对象与数据结构、错误处理、边界、单元测试这十个角度分别讲解了如何保持代码整洁。还从更高维度教会大家如何从系统层面思考代码整洁性,在本书的后边部分还带领大家从实战的角度对之前所学内容进行了演练。

对于软件开发者来说,这本书更像是一本枕边书,点很细,很实用。Bob大叔就像一位循循善诱的前辈,把几十年的编程经验真诚地传授给读者,语言直接,甚至是犀利,一针见血地指出问题并给出改进建议,希望读者在提高代码质量上具有显著的效果。

这本书值得不断的品读,而且完全是目录就可以作为一个一个的tips来指导高质量的程序开发。

每一位程序员都有成为大神的可能,人邮君祝你早日抵达。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值