读芯术|小白经验贴:思考问题的方式比“经验”之说更重要

全文共2879字 , 预计学习时长8分钟
读芯术|小白经验贴:思考问题的方式比“经验”之说更重要
文章图片
图源:unsplash不要仅以经验去评判一名开发人员 , 这远远不够 。 正如谷歌CEO所说:“我雇佣了比你们更有经验的开发人员 , 但你们在这里的工作效率比我雇佣的任何人都要高 , 取得的成就也更多 。 ”不管你是有20年的实际工作经验 , 还是刚刚进入科技行业 , 没有实习经验只有一个大学学位 。 无论是过去还是现在 , 当涉及到效率、生产力和原始编程天赋时 , 多年来积累的知识并不绝对重要 。 以资历去判断一名开发人员的聪慧程度或他是否值得尊重 , 这并不科学 。 笔者刚进入Salesforce开发顾问行业时 , 完全不知道如何为这个平台实现解决和集成方案 。 现在 , 笔者正在创造公司的记录 , 我被认为是行业中最有前途的开发人员之一 , 经常被招聘人员和其他企业主联系 , 几乎完全依靠自己的力量来设计解决方案 , 并且没有失败过 。 在进入这个行业后 , 笔者只用了三个月的时间就超越了同行 。 在最初的三个月里 , 我们几乎都在坚持不懈地训练和学习 。 ·我没有天分 , 不算是有天赋的开发人员 。 ·我不是很懂编程 。 ·我无法凭直觉在一瞬间找到解决方案 。 ·我还有很多要学 。 以上这些大多数人拥有的特质 , 我都具备 。 在本文中 , 笔者将确切地告诉你 , 是什么让我脱颖而出成为一名开发人员 , 并最终以惊人的速度完成编程任务和项目——其他更有经验的开发人员无法跟上的速度 。 尽早建立最佳编码实践回顾为获得计算机科学学位所花的全部时间 , 笔者认为自己是一个不合格的程序员 , 我几乎不知道如何解决实际的编程问题 。 笔者非常想解决编程项目分配的任务 , 现在我可以轻松用一个晚上的时间完成 。 对笔者来说 , 理解实现一个解决方案所需要的逻辑 , 甚至理解完成一项任务所需要的面向对象原则 , 都是非常困难的 。 如果没有谷歌 , 笔者肯定不会继续钻研计算机 , 而是会去攻读哲学或商业学位 。 但某一个时刻 , 笔者开始发现自己的技能出现转变 。 通过开始观察编程语言实际工作的方式、具体设计原则的使用和实现方式、设计代码时要避免的事情以及所采用的最佳实践 , 笔者注意到了自己处理问题方式发生的转变 。 笔者开始用所学到的原则来设计和思考解决方案 , 这让我以一种更有目的性和方向性的方式来组织我的想法 。
读芯术|小白经验贴:思考问题的方式比“经验”之说更重要
文章图片
图源:unsplash从编程的角度来说 , 对笔者最重要的书籍是RobertC.Martin的《干净代码:敏捷软件工艺手册》 , 强化了这些原则并将它们深记于心 。 其中函数命名、简化代码以及构造类的方式 , 在开发方式中发挥了很大的作用 。 让我真正地退后一步 , 思考所写的内容 , 思考该如何组织代码的——注意内容是否合乎逻辑 , 是否具有可读性 。 关于可读性、设计简单性 , 更重要的是解决一个需求往往引发快速生产不会过时、可重用、可扩展的代码 。 也就是说 , 作为一名程序员 , 我们应该了解最佳编码实践、所使用的语言或框架的限制、可靠的原则、设计模式和快速应用 。 仅仅编写有效的代码是不够的 , 还需要编写容易理解的、模块化的、能够经受时间考验的代码 。 这需要更多的思考 , 但它将会使你不断地构建并为你创建的应用程序产生更多的价值 。 将编程视为创作艺术的工具编程常常被视为一种神话般的技术——几乎就像一种外语 , 很难翻译 , 只有受过良好训练的人才能优美地书写它 。 但事实并非如此 , 你需要重建对编程的看法 , 不仅仅把它看作是一门技术工艺 。 我看待代码的角度 , 与画家看待画笔、机械师看待它的扳手、木匠看待它的锤子一般 。 代码是一种工具 , 可以通过它推动实现最终目标和架构解决方案 。 伟大的艺术家区别于常人的是他们运用工具的能力 , 这些工具与他们的思想和想象力相结合 。 那个艺术家和一个艺术家在同一个位置开始 , 使用同样的工具——空白画布、颜料和画笔 。 请记住 , 当你茫然地盯着空白的IDE时 , 试着编写第一行代码 。 重要的是如何使用这个工具 , 对笔者而言 , 有效的不是简单地理解代码的语法和理论术语 , 而是做一些事情 , 不断提高使用这个工具的技能 。 思考能做什么、能完成什么、应该走什么路以及想要达到的目标 , 这些恰恰会激发笔者将代码视为使用工具 , 专注地设计出最终解决方案 。 在这一点上 , 唯一能限制我的是使用代码解决所面对的特殊解决方案的思维和个人能力 。 这就是为什么笔者不会浪费时间去学习一种语言的所有语法 , 也不会无休止地阅读文档 , 只是试图记住一种语言或框架必须提供的所有内容 。 笔者发现最大的价值在于理解基于经过测试的原则、设计规则和理论来构建和设计代码的不同方法 。


推荐阅读