当前位置: 首页 > 科技观察

小白的经验帖:思考问题的方式比“经验”更重要

时间:2023-03-18 12:20:22 科技观察

还不够。正如谷歌CEO所说:“我雇用了比你更有经验的开发人员,但你在这里比我雇用的任何人都更有效率并且取得了更多成就。”无论你有20年的实际工作经验,还是刚进入科技行业,没有实习经验,只有大学学历。当谈到效率、生产力和原始编程人才时,多年积累的知识在过去或现在都不是绝对重要的。以资历来判断一个开发者的智商,是否值得尊重,是不科学的。刚进入Salesforce开发顾问行业的时候,完全不知道这个平台的解决方案和集成解决方案是怎么实现的。现在,作者正在创造公司记录,我被认为是业内最有前途的开发人员之一,招聘人员和其他企业主经常找我,而且我几乎完全靠自己设计解决方案,而且从未失败过。进入这个行业后,笔者仅用了三个月就超越了同行。前三个月,我们几乎不懈地训练和学习。我没有天赋,算不上天才开发者。·我不太懂编程。我无法凭直觉在一瞬间找到解决方案。我还有很多东西要学。我拥有大多数人拥有的所有品质。在本文中,我将确切地告诉您是什么让我作为一名开发人员脱颖而出,并最终以令人难以置信的速度完成了编程任务和项目——这种速度是其他更有经验的开发人员无法跟上的。尽早建立最佳编码实践回顾我为获得计算机科学学位所花费的所有时间,我认为自己是一个糟糕的程序员,几乎不知道如何解决真正的编程问题。作者很想解决编程项目布置的任务,现在一晚上就能轻松完成。对于作者来说,很难理解实现一个解决方案所需要的逻辑,甚至理解完成一个任务所需要的面向对象的原则。如果不是谷歌,我当然不会继续学习计算机,而是会攻读哲学或商业学位。但在某个时候,我开始注意到我的技能发生了变化。我注意到我处理问题的方式发生了转变,开始观察编程语言的实际工作方式、具体设计原则的使用和实施方式、设计代码时要避免的事情以及要采用的最佳实践。我开始使用我学到的原则来设计和思考解决方案,这使我能够以更有目的性和方向性的方式组织我的想法。来源:unsplash从编程的角度来看,对我来说最重要的书是RobertC.Martin的《干净代码:敏捷软件工艺手册》,它强化了这些原则并牢记在心。其中,命名函数、简化代码、构造类的方式在开发方式上起到了很大的作用。让我真的退后一步,想想我写了什么,我是如何组织代码的——注意它是否合乎逻辑,是否可读。关于可读性、设计简单性,更重要的是解决需求通常会导致快速生成面向未来、可重用、可扩展的代码。也就是说,作为一名程序员,我们应该了解最佳编码实践、所用语言或框架的局限性、坚实的原则、设计模式和快速应用。仅仅编写能工作的代码是不够的,您还需要编写易于理解、模块化且经得起时间考验的代码。这需要更多思考,但它会让您继续构建并为您创建的应用程序产生更多价值。将编程视为创造艺术的工具编程通常被视为一种神话般的技术——几乎就像一门难以翻译的外语,只有受过良好训练的人才能写得漂亮。但事实并非如此,您需要重新定义您对编程的看法,使其不仅仅是一种技术工艺。我看代码就像画家看他的画笔,机械师看他的扳手,木匠看他的锤子。代码是一种工具,您可以通过它推动最终目标和架构解决方案。伟大的艺术家与普通人的区别在于他们能够使用与他们的思想和想象力相结合的工具。该艺术家与艺术家从同一个地方开始,使用相同的工具——空白画布、颜料和画笔。请记住,当您茫然地盯着空白的IDE时,尝试编写您的第一行代码。重要的是如何使用这个工具。对于作者来说,有效的不是简单地理解代码的语法和理论术语,而是做一些事情来不断提高使用这个工具的技能。思考可以做什么,可以完成什么,应该走什么路,要达到什么目标,这些恰恰启发了作者将代码作为一种工具来使用,专注于设计最终的解决方案。在这一点上,唯一能限制我的是使用代码来解决我所面临的特定解决方案的精神和个人能力。这就是为什么我不会浪费时间学习一种语言的所有语法或无休止地阅读文档,只是试图记住一种语言或框架必须提供的一切。作者发现理解基于测试原则、设计规则和理论构建和设计代码的不同方式的最大价值。来源:unsplash我不是什么都懂,但我可以学习。这也是我不浪费时间浏览和记忆文档,不阅读学习编程语言的综合教程,不花大量时间学习的另一个原因。如果作者真的有超能力,他可以以最快的速度学习和模仿。但事实是,我也确实彻底失败了。但我常常能在失败中总结经验,丰富自己的知识,直到对一个话题有了完整的理解。我通常不需要从一堆技术和初步信息开始,我可以通过大量研究、处理过去类似问题和失败的经验来推动编程。我按计划学习,脑子里充满了具体的细节和方法。我们处理的每项任务对于我们想要实现的目标都是完全主观的。如果有的话,谷歌搜索引擎问题是我需要立即解决的问题。如果我无法通过Google搜索找到所需的一切,我会向CEO提出一些问题,以尝试解决一些更复杂的问题。然后将对发现的信息进行调整以满足当前需求。我不会因为不知道解决方案就放弃。相反,我会尽他所能去弄清楚什么是可能的。这种思维方式和方法与将代码插入到我自己理解的特定设计原则中密切相关,我也使用代码作为提出解决方案的手段。我不是什么都知道,我也不想什么都知道。使编程令人兴奋的部分原因在于,它是一个不断学习、不断创造和思考的旅程,只是为了看到一种特定的方式或方法。而且我可以看到阻碍您作为程序员的想象力和潜力的事情。来源:unsplash作者坚信,无论技能、天赋还是经验,任何人都有能力被认为是独一无二的伟大程序员。真正需要的是转变思维方式和方法来构建自己的解决方案并在职业生涯中保持谦逊。谦虚使我们能够保持初学者的心态,渴望和好奇地不断学习并适应不断变化的编程环境。作为程序员,我们在生活中体现了不断学习的精神,打破了以前认为不可能的障碍。如果您没有这种理念,那么您可能无法培养自己的技能。请记住,无论您已经在该领域工作20年还是刚刚起步,任何人都有能力成为伟大的人。