工作准则
最近在新公司工作,融入团队过程中改掉了一些旧的(我认为不好的)习惯,我觉得对于程序员来说还是相当重要的。
多看 git blame 链接到标题
新人往往对项目不够熟悉,有时候以为是问题,可能是自己理解有误。除了代码注释以外,git blame 也是个非常重要的工具,提交者的commit message可以帮助我们更好理解代码的意图,尤其是在开源框架基础上开发的话,github issue和PR的讨论也能提供很多背景信息。
能运行的代码绝不改动 链接到标题
我在处理一个pytorch算子的时候遇到这个问题。在Backend不支持算子的情况下一般需要fallback到CPU实现,但我看到有个算子在fallback分支并没有手动fallback,而是直接调用了CPU实现,于是修改为了fallback的形式,结果发现这段代码是参考了pytorch源码,为了和numpy保持一致。
尽管测试用例都通过了,但实际上这种改动代码的行为可能带来预期外的风险。尽管这个准则网上已经有太多人提及,我认为自己之前还是没有足够的重视。
No ego 链接到标题
和代码相比,我认为程序员和人打交道更多。大部分时候和需求方、测试人员沟通明确比埋头苦干更加重要。但是新人或者内向的人往往拒绝和团队沟通,这非常不利于开展工作和融入团队。
职场上最重要的一点就是不可以有ego,明确工作的一切是任务导向的,大家都是为了完成任务而合作。不要把自己当成英雄,也不要把自己当成受害者,凡事以完成任务为立足点考虑问题,这样不仅可以明确目标,也能减少一部分职场内耗。