防止断更 请务必加首发微信:1716143665
关闭
讲堂
客户端下载
兑换中心
企业版
渠道合作
推荐作者

45 | 尾声:如何成为一个编程好手?

2019-04-17 范学雷(加微信:642945106 发送“赠送”领取赠送精品课程 发数字“2”获取众筹列表。)
代码精进之路
进入课程

讲述:刘飞

时长04:50大小8.85M

从刚开始准备这个专栏的时候算起,到这一篇文章和大家见面,已经有十个月的时间了。

这个专栏设立的愿景,是想要传达编写优秀代码的理念,帮助软件工程师快速成长并且保持长久的竞争力。但是,四十多篇文章,显然不是通天的秘籍。一个软件工程师的修炼,主要还是靠日积月累的积累和精进。而且,这个修炼还包括编码之外的功夫。

了解问题的领域

我们编写代码的目的,是要解决具体的问题,而不是为了写出好看的代码。这就需要我们至少了解两样东西:编码的工具和具体的问题。无论是编码工具,还是具体的问题,都需要专业知识。一般来说,一个优秀的程序员,这两样东西都要学,都要会,而且还能把它们结合起来。

世界上的编程语言屈指可数,如果只会几门编程语言,不管你多么精通这门语言,都很难保持长久的竞争力。这主要是因为,编程语言的门槛很低,掌握编程语言的人太多。这也就意味着,在市场竞争中,你要超越的人会有很多。

而具体的问题领域,则是一个多姿多彩的世界。证券交易、银行结算、商品流通、教育培训、安全防护等,各有各的道理,各有各的规则。

作为一个软件工程师,如果你熟悉银行结算的专业知识,你就成为了懂得编码和银行结算的复合型人才。你可以在编码工具的领域出类拔萃,也可以在银行结算领域出类拔萃。但是,市场分工已经不需要你在这两个领域都是顶尖高手了。只要在这个结合部位,是个顶尖高手就可以了。而这个结合部位的竞争者的数量,就没有那么大的基数了。

所以对于软件工程师来说,特别是那些年轻的软件工程师,我们不要把自己局限代码的编写者这个角色上。我们需要把自己的角色拓展成问题的解决者。

定位成代码的编写者,你的目标可能就是写好代码,学好工具。定位成问题的解决者,你的目标可能就变成使用代码,解决好问题。

问题解决者这一定位,会让你更有好奇心去了解问题的来龙去脉,去发掘问题背后更多的东西。这样,你就能自己推动自己,成为该问题领域的专业人士,然后成为这个结合部的复合型人才。

扩大“无用”的见识

编写代码,本身是一个创造性的过程。在这个过程里,很多过去看起来没有多大用处的见识,可能就会派上用场。而这些“无用”的见识,如果过去你没有认识,没有积累,它们一定不会在你需要的时候让你灵光乍现,也不会在你需要坚持的时候给你力量。所谓的灵光乍现,其实都是埋在你脑海深处的见识。

我们前面讨论过不少编码的原则,比如说“简单直观”和“最小授权”。直觉上,这些虚无缥缈的东西和编码本身没有直接的联系。可是,这些小小的原则往往决定着产品的市场成败。你怎么抵御住复杂性、丰富性以及代码权力的诱惑?说实话,如果没有很坚定的理由和开阔的视野,我们很难抵御住这些诱惑。而见识和信念,来源于你对于生活的理解,包括对人的理解。

所以,除了技术之外,我希望你有时间、有精力、有能力去做其他的事情。读书、旅游、做饭、遛娃、种地、修车,各种爱好,都是积累,都是人生百态。

平衡安身的生活

当我准备这篇文章的时候,996.ICU 的讨论真是一浪高过一浪。希望普遍的 996 只是一个特殊时段的特殊产物。

长期超负荷的工作时间能不能换来超额的工作产出,这是一个很大的疑问。不过,我可以确定的是,每个人一天都只有 24 小时,我们有限的精力只能在这 24 小时内腾挪。在一段时间里,我们做了这件事情,就丧失了做另外一件事情的机会。获得了这件事的好处,就丧失了另一件事的好处。这还有一个专业的名词,叫“机会成本”。

996 的安排,让我们付出了多大的代价,丧失了多少机会?对于具体的每个人,答案也许有所不同。但是对于整个群体和大部分人,这代价也许会超出我们的想象。它所造成的长期的社会问题和个人问题,也许要很多年后才会显现。

希望 955 早日正常化,这需要大家的共同努力。

即使正常的工作时间只是一种奢望,我希望你还能够谈恋爱、陪家人。

谢谢你陪我一起走过了这个 45 期的专栏!

© 加微信:642945106 发送“赠送”领取赠送精品课程 发数字“2”获取众筹列表。
上一篇
44 | “代码安全篇”答疑汇总
 写留言

1716143665 拼课微信(21)

  • Linuxer
    2019-04-17
    6
    感谢!从这里大开了眼界
    展开
  • Feng.X
    2019-04-17
    3
    谢谢老师!订阅专栏前都没想到写代码会有这么多的清单列表检查项,受教了。

    作者回复: 你也要慢慢丰富自己的清单,然后再简化成少数的原理和原则。

  • 街角·陌路...
    2019-04-20
    2
    首选感谢老师,分享了这么多。一口气刷完了老师的专栏,就如同看了本精致的小说,老师文字的精进程度不亚于老师代码的精进程度。老师最后的内容让我想起了《黑客与画家》这本书,一个编程高手不是只会编程。再次感谢老师。
    祝顺利
    展开

    作者回复: 没想到还有人夸文字的。希望你学到了东西。

  • Fergus
    2019-04-21
    1
    感谢范老师。

    能编写代码,本就只是一个很低的门槛;
    成为问题的解决者,才能不断的推动自己前进。

    同样希望996只是社会发展到某个阶段的产物,人生除了工作以外,还有很多诸如老师提到的读书、恋爱、溜娃、发呆等等事需要去做,只有独立且健全的人格才能组成社会长久发展的引擎,其带来的影响需要多年以后才能显现。

    因为没用,所以没用;
    所以会在工作中不断翻出老师的清单查阅,以此,不辜负自己和老师的期许。

    祝好。
    展开
  • Y024
    2019-04-20
    1
    乔布斯说:“You can't connect the dots looking forward; you can only connect them looking backwards. So you have to trust that the dots will somehow connect in your future. You have to trust in something—your gut, destiny, life, karma, whatever. Because believing that these dots would connect down the road, would give you the confidence to follow your heart, even when it leads you off the well-worn path, and that will make all the difference.”

    功利的社会让我们不由自主的要求学什么都要立竿见影,但正如乔布斯所言,有些东西可能现在还不知道有什么用,但早已润物细无声,某天回首,你定会恍然大悟。感谢范老师的辛苦付出,给我们开辟了关于编码的新认知。
    展开

    作者回复: 谢谢引用了乔布斯的言论。专栏里的提到的很多原则,比如简约,乔布斯使用的彻底干净,神啊!

  • liu
    2019-04-18
    1
    专栏的可动手性强。如果能够跟下来,必受益匪多
    展开
  • DemonLee
    2019-04-17
    1
    感恩!追完了,道理可能明白,但是实践还得漫漫长路,改了一些写代码的陋习。学习过程中,顺道看了《代码整洁之道》,《effective java》之类的书(没完全看完),发现跟专栏很多东西都是相通的,不明白的地方还得重新再看!最后谢谢老师把自己几十年的经验分享出来,专栏值!

    作者回复: Effective Java找找国内有没有第三版的,作者加了不少东西。

  • 小执着
    2019-05-28
    我水平不够,但是也是受益匪浅,等过段时间再看一次,想必会有不一样收获。
  • 唐名之
    2019-04-29
    地铁口等人看完最后几篇,课程感受看见了代码之外和之内的东西!🐶
    展开
  • 蔡奎
    2019-04-27
    谢谢老师,特别是安全模块,给我打开了新的门!看完了整个专栏,发现硬核知识都是开放性和探索性的。需要不断根据前人总结的经验和现在出现的新情况结合基本原理创造出合适当前的解决方案。没有一次性的方案,只有原理指导。软件设计就是平衡利弊。受益匪浅,谢谢老师!
  • 智超
    2019-04-26
    我要快速的再通读一次,最近脑图很得我亲睐,想整理下写好代码的脑图
    展开

    作者回复: 👍

  • 2019-04-25
    大赞,从老师的文章中学到了很多,提升了自己对代码的理解,特别是关于安全性方面的,让人映像深刻.
  • 笨笨
    2019-04-23
    感谢范老师,To be a hacker,forever.
    展开
  • 木偶人King
    2019-04-19
    感谢老师, 获益匪浅。 值得反复研读。
    展开
  • 失火的夏天
    2019-04-19
    扩大无用的知识,这就是厚积薄发的道理吧
    展开
  • wjzhu🍑
    2019-04-18
    老师辛苦了,基本上每次更新都第一时间阅读。有些东西可能还要反复学习。愿老师事业有成,家庭幸福😁

    作者回复: 谢谢!希望这个专栏可以帮到你。

  • 空知
    2019-04-17
    这是全程跟完的第一个课!
    展开

    作者回复: 谢谢你!

  • 天佑
    2019-04-17
    二刷完毕,收获良多,感谢。老师后续还有什么动作吗?
    展开

    作者回复: 这个专栏由于我想在有限的篇幅了表达我认为最重要的东西,所以实战的东西少了点。无论规范篇、经济篇还是安全篇,都不能痛痛快快展开了说,需要大家自己从练手题和工作中去领悟、摸索。这多多少少是个遗憾。

  • hua168
    2019-04-17
    现在我们学编程和运维的,IT技术不断的更新,为了不被社会淘汰,我们不断的学习,发现都根本没有太多的时间做其它的事,年纪大了突然又有危机,怕要是失业了,整个行业不要了,自己还会什么?
    展开

    作者回复: 如果只学工具(编程语言、运维工具),的确是一个很大的问题。 可是,我认识的大部分程序员,中年过了很多年,也很少担心失业的。因为语言工具只是他们的工具,解决问题的能力是需要年头积攒的。我们必须把技术工具和现实的问题连接起来。 会编程的人很多,能真正看出问题、解决问题并且快速解决问题的人并不多。而解决问题的能力大都是跨行业的。

    年轻的时候,使劲学习,多知道些技术、技巧;这就是积累量的阶段。过上几年,有足够的知识量,要专注于琢磨现实的问题。银行的app怎么改进会更好用,有没有办法让网约车更安全,怎么让快递员的收入每年递增,怎么办才能让买车的人安心?这些东西,都可以让你从一个程序员的角色,转变成一个问题解决者的角色,技术只是你的手段。 而问题,永远存在,而且越来越多!

  • 我来也
    2019-04-17
    感谢老师的辛苦付出!

    老师前后都忙活了十个月了😄

    最后也希望如老师说的,996不是常态,只是阶段性的。
    展开

    作者回复: 期待吧,社会大体是朝前走的。

收藏