在21年的编程中学到的21课



朋友们,美好的一天!

2020年4月7日。今天对我来说是非常重要的一天。从我开始编写代码的那一刻起,今天已经整整21年了(专业地做代码,以它为生)。

似乎只是昨天……今天,我是一位具有21年编程经验的中年人,经历了软件开发这个危险的世界的许多风风雨雨。

犯错误是学习过程中不可或缺的一部分。通常,这是成功的标准。避免重复错误的愿望应该放在开发人员优先级列表的第一位。

当然,个人经验是学习某些东西的最好方法,但是他人的经验是避免严重麻烦的一种更容易,更快和更聪明的方法。毕竟,生命是短暂的:不可能犯所有可能的错误。

开发人员的职业是掌握令人惊叹的艺术的激动人心的旅程。在这条道路上,有许多挑战等待着您,在某些情况下您是对的,在其他情况下您将是错的。本文重点介绍我在相当长的时间内学到的课程。我希望她能使你受益。

1.不要在下雨天推迟


旅程开始时的职业道路在很大程度上取决于您如何花钱。您将很想购买新车,更新衣橱或去昂贵的餐厅。

禁止时不时地打喷嚏,但是,首先,要花钱进行自我发展(培训)。这不仅是一笔可带来丰厚利润的巨额投资,而且将永远留在您身边。

2.认为自己不可或缺


在意识到自己是该领域不可替代的专家后,精力激增会上瘾,并对职业发展和个人发展产生负面影响。

请记住,如果您想获得更好的结果,那么您就不能止步于此(您不能对自己拥有的,知道的,知道的方式感到满意)。最后,找到并教育自己成为一个继任者,他将在一个负责任的职位上取代您。

3.烧桥


即使您是一位出色,不倦,精力充沛的程序员,也不应燃烧桥梁和打破束缚。软件开发是一个小世界。在您想燃烧的桥梁上,迟早要穿过。所以最好不要这样做。

谦虚,正确,并保持良好的举止,即使您不喜欢那些人。

4.不分享知识


以我的经验,对工作中使用的技术有充分的了解是赢得同事尊重的最可靠方法。但是,对技术有很好的了解并且不与他人共享您的知识是无路可走的肯定方法。

知识是成功的一半,分享是后一半。优秀的程序员与新手开发人员进行交流,并展示如何解决问题。他不仅告诉他们如何处理问题,而且还解释了为什么以这种方式解决。

5.忽略软技能


程序员有时会忘记软件开发是一项团队运动,其中项目是一群并肩工作,相互支持并为同一目标而奋斗的共同任务。

因此,如果程序员傲慢自大(狂妄自大),不热衷于工作或无法进行富有成效的交流,这不仅会对他的工作产生负面影响,而且还会对整个项目产生负面影响。因此拥有所谓的“软”技能是前提。

6.循环技术堆栈


软件开发将永远不会停止发展。因此,自认为是该领域专业人士的人也必须不断发展,以保持需求。

请记住,成功的关键不是掌握新材料的速度,而是获得概念性知识以使您能够使用新方法解决旧问题。一个好的程序员不仅会编写代码,而且会一直学习一些东西,以最有效的方式解决任务。

7.偷工减料


没有“快速而肮脏的代码”。脏代码是坏代码。点。永远不要偷工减料,不要满足于其他(二流的东西)。

在危机时期将确定您是否是一名优秀的程序员。如果您的行为在这期间发生变化,则说明您不是一名优秀的程序员。注意 佩尔:我相信这是一种认真工作的态度,对您编写的代码有很高的要求。如果在困难的情况下减少了这些要求,并且对工作的态度变得疏忽,则说明您不是一个好的程序员。

8.不要记录代码


软件的好坏并不重要。如果文档不好,人们将不会使用它。

截止日期,工作量,没有什么能消除对代码的需求。没有文档的软件就是无效软件。记住这一点!

9.避免政治


我们都听到了这句话:“我对政治不感兴趣。我只想介绍技术。” 但这不会发生。

技术涉及变革,变革需要将人们分为赢家和输家。这就是政治开始的地方。您必须控制她,使用她,并以胜利者的身份摆脱困境。没有别的办法了。

10.花太多时间设计


开始工作之前,一个好的项目很棒。但是过分重视可能会导致挫败感。

不要寻找完美的设计。在编程世界中,它不存在。寻找令人满意的设计,一开始就可以使用。好的设计是项目或计划。在变成石头之前,他必须能够成长和成长。

11.低估了代码意义的重要性


根据罗伯特·马丁(Robert Martin)的说法,“编写干净的代码需要熟练地使用通过痛苦地理解“代码干净”概念而获得的许多技术。这些技术的组合称为代码有意义性。”

一种有意义的代码编写方法不会帮助区分好代码和坏代码,但有助于开发出将坏代码变成好代码的策略。

12.使用第一个可用的解决方案


使用想到的第一个解决方案是解决问题的一种非常诱人且简单的方法。但是,好的解决方案通常是在所有可能的或至少几种方式之间进行选择的结果。

请记住,作为程序员的工作不仅是找到任何东西,而且是找到解决问题的更好方法。

13.无知该做什么


最好的程序员确切地知道不应该做什么。

他们知道,仅仅从头开始重写库只是为了使其更具可读性,或者仅仅因为它是新框架而切换到新框架并不总是正确的决定。该代码应该非常好,可以在几分钟甚至几秒钟内被理解。

成功的关键不是冒险意愿,而是参与正确的战斗。

14.拒绝承认无知


即使您是技术天才,您可能也不了解所有技术。根本不可能。

另一方面,最环保的开发商可以提供比您更稳定和有效的解决方案。好的程序员不会将他们的决定强加于团队。他们建立了民主,最好的解决方案就在那里赢得了胜利。

15.压力下垂


代码就像食物。它可以是快速,良好或廉价的。选择任意两个。一个糟糕的程序员试图让一个团队一次完成所有这些事情。他遵循其他人承担的条款和义务,“完全理解它们是不可行的”。

一个好的程序员不会失去他的现实感,并尽快将相关信息带给感兴趣的各方。

16.不要建立信任


程序员可以像孤独的狼一样存在,但是最好的程序员是沟通的大师。

建立信任和建立关系的最简单方法是在困难情况下帮助其他团队。此方法使您可以随时寻求帮助,而无需等待正确的时间。帮助启动或完成项目不仅使您成为专家,而且还增强了您在组织中的信誉。

17.看不到全貌


作为程序员,大多数时候您将使用部分代码或解决现有代码中的某些问题。您执行任务,这没有错。但是,如果您想发挥自己的作用,则需要花费时间确定正在开发的项目。

做到这一点的最佳方法是找到一名导师,以帮助您提高技能,从而更快地成长到新的水平。

18.重新发明轮子


优秀的程序员不会重蹈覆辙。他们不断重复使用代码,寻找现成的功能。这不仅节省时间,而且在与他人共享代码的开发人员之间产生了一种友情。

对于您要解决的大多数问题,都有现成的解决方案。因此,当您尝试完成一项任务时,请检查是否有其他人执行了该任务。在这种情况下,您不是在偷工减料,而是在努力。

19.对业务规则的了解不足


我们程序员有时会低估业务规则的复杂性。如果不了解这些规则,就不可能开发出有效的解决方案。

请记住,在专注于技术组件之前,您需要了解业务思维并创建以客户可以理解的术语描述的产品,并且该产品旨在有效解决客户面临的挑战。

20.不要与团队沟通


尽管没有沟通规则,但是像沟通的义务一样,工作中的一些个人方面也不会受到伤害。

了解其他程序员的优缺点,他们的能力和局限性,他们的兴趣和爱好,使我们能够以最佳方式计划联合开发。

21.不要监视健康


健康是您生活中一切(包括职业)的基础。您承受跌宕起伏的创造力,能量和力量取决于健康。

健康监测不是一次推广。这意味着一定的工作和休息方式,适当的营养,规律的运动(体育活动)和不良习惯的排斥。

而不是结论


任何职业都有起伏。重要的是您对此的感觉。如果失败了,您可能会感到沮丧,或者您可以对此感到乐观并从错误中学习。

正如卡尔顿·菲斯克(Carlton Fisk)正确指出的那样:“重要的不是您取得的成就。重要的是您要克服的问题。这就是定义您的职业的原因。”

感谢您的关注。

All Articles