前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《程序员修炼之道》- 务实的哲学(1)

《程序员修炼之道》- 务实的哲学(1)

作者头像
石云升
发布2022-08-25 18:26:56
2200
发布2022-08-25 18:26:56
举报
文章被收录于专栏:石云升

最近准备去看看《程序员修炼之道》通向务实的最高境界(第2版)。这是一本畅销十多年书籍的再版,是程序员必读书籍之一。这次的再版有1/3新增内容,其余大部分内容也重写了。这本书的目的很明确,帮助你成为一个更好的程序员。这是一本改变思维的书。

务实的程序员的特征

首先,在面对问题上,务实的程序员会越过问题的表面,基于整体来分析,找到问题背后的原因。如果你不了解需求的目的,你也不会知道为什么当初会这样做。更不知道如何来解决问题。

其次,就是对自己做的事情负责,一件事情出问题,可能有多种原因。以我们开发中最常见的上线延期为例,延期了是谁的问题?肯定有多方面问题,需求时间评估不足、需求理解错误、需求有变更、其他人的计划延期以及一些意外情况等等。但细想一下,哪些问题是能克服的,而你能做却没做好,这就是你的问题。

在你的职业发展、学习教育,以及你的项目、每天的工作等各方面对你自己负责,对你的行为负责,这是务实哲学的基石之一。一个务实的程序员能完全掌握自己的职业生涯,从不害怕承认无知和错误。有些事在编程中会令人不快,但却必然会发生——即使最好的项目也无法幸免。尽管有彻底的测试,有优秀的文档,有完备的自动化,结果还是出了问题——交付被推迟,未曾预料的技术问题出现。一旦这些事情发生,尝试依靠我们的专业性去解决问题。这意味着要诚实和坦率。我们固然会为我们的能力而骄傲,但面对缺点时也必须诚实——承认我们犯了错误,而且是因为我们的无知而犯下的。 不要把问题归咎于别人或其他什么事情上,也不要寻找借口。不要把所有问题都归咎于供应商、编程语言、管理或是同事。这些因素都可能是问题的一部分。它们的确会对解决方案造成影响,但不是给你的借口。 如果你面临供应商帮不上忙这样的风险,就应该制订一个应急方案。如果磁盘挂起——你所有的源码都在里面——而你没有备份,这就是你的错。跟你的老板说“我的源码被猫吃了”解决不了问题。

再则,学会改变。穷则变,变则通。程序员做一个功能时,很容易陷入自己的逻辑误区里出不来,与其在一条道上走到黑,不如先休息下,我记得我当初很多问题的解决方案都是在回家的公交车上。

最后,就是要多学习,你需要大量的基础知识和经验,才可能实现以上这些。很多程序员是有完美情结的,但记住一句话,完成好过完美。我们只能在有限资源里完成某个任务,永远达不到完美。想想看,我们每一次迭代都是在接近完美。

程序员,对工作有得选吗?

程序员不是加班的机器,你有选择的权利。

你的工作环境很糟糕?你的工作很无聊?尝试纠正它。不过,不要一直试下去。正如Martin Fowler 说的,“你可以去改变组织,或是让自己换一个组织。”如果你的技术过时了,安排时间(你自己的时间)学习一些看起来有趣的新东西。这是一种自我投资,只有为此而加班才是合理的。 想远程工作?要求过了吗?如果他们说不行,就去找个说行的人。 这个行业给了你一系列非凡的机遇。积极主动点,掌控这些机遇。

改变组织很困难,你大可先试试。如果改变不了,换个组织也是可以的。对于能力差的人,找工作很难,能力强的永远不存在找工作难的问题。(能力不单指技术能力,还有沟通、性格等综合能力)你能力强不强,跟你相处过的同事知道。在换工作的时候,跟他们聊聊,如果他们不愿意推荐你,那说明你肯定哪方面做得不好。

对于加班,你能不能拒绝?也是可以的。评判是否加班的唯一标准是"加班是否有价值"。不能说老板没走,你就不能走。我事情做完了,当然可以走。如果确实有事,需要你加班,你当然不能走,你们是团队,有问题要一起解决。如果加班时间跟生活冲突了怎么办?那肯定具体情况具体分析,家里人生病了,项目又出问题了。你选择什么?那肯定先送家人去医院。如果你在家没事,公司项目出问题了,你怎么选?立马去公司解决问题。你可能觉得公司不是你的,这样付出太不公平了。这样想就不对了,公司不是你的,产品是你的。你为公司解决的问题都是你的经验,而且你的付出公司看在眼里,会不给你相应回报?你要是做得不开心了,可以换。放心,大把公司需要这样的人。

对于刚刚入职场的人来说,光靠工作八小时提升自己远远不够,还要善于使用另外八小时。加班学习是可以的。很多公司虽然没有加班工资,但加班福利还是有的。学习在哪都一样。当然学习的同时,不要忘记陪伴家人。单身的也要抽时间去交朋友,工作不是全部,但现在不努力,未来工作会更难。

挑战

· 当某人——比如银行职员、汽车修理工、店员——敷衍搪塞你时,你的反应是什么?你会怎么看他们和他们的公司?

什么服务态度,下次不去了。员工这样的服务态度,公司也不会好到哪里去。

管理上有个词,叫接触点管理。就是要管理与客户直接接触的点,什么时间(When)、什么地点(Where)、如何(How,包括采取什么接触点、何种方式)与客户或潜在客户进行接触,并达成预期沟通目标,以及围绕客户接触过程与接触结果处理所展开的管理工作。接触点管理很重要,特别是现在工具性价值相对雷同,更要突出服务性价值。

· 当你意识到自己在说“我不知道”时,一定要接着说“——但是我会去搞清楚”。用这样的方式来表达你不知道是非常好的,因为接着你就可以像一个专家一样承担起责任。

有很多类似的词,我觉得我们都不应该说。什么“我不会”,可以改成”我可以学“。把被动的消极的词,改成主动积极的词。思维改变行动,行动改变结果。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 石云升 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 务实的程序员的特征
  • 程序员,对工作有得选吗?
  • 挑战
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档