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

程序员在写代码时应该反复问自己的10个问题

时间:2023-03-18 16:31:30 科技观察

你想成为一名优秀的程序员吗?所以,现在是时候放下《24小时学会xxx语言v8.3》超级大骗子这本书了,养成每天问自己以下10个问题的习惯。1.你的代码中有模式吗?找出模式中哪些有效,哪些无效将揭示看似无关的想法或基本原则。要深入了解你的工作,你必须养成问自己“有规律吗?”的习惯。它不仅适用于您的代码。是否有一种模型可以适应各种类型的业务变化?有技术发展的模式吗?您是否见过弹出相同类型的错误?所谓理解就是理解模式——IsaiahBerlin2.如何让代码更简单?开发人员通常需要复杂且可扩展的解决方案。制作极其复杂的东西,感觉自己是自己宇宙的主人。问题是你永远不知道你的产品和业务将来会发生怎样的变化。“架构”和代码更像是园艺而不是建筑。你必须有能力适应不断变化的环境。解决方案越复杂,就越难做到。简单是最大的复杂——?LeonardodaVinci3.你知道为什么程序会这样工作吗?知道某事以它的方式运作和知道为什么它以它的方式运作是两件完全不同的事情。如果你知道事情为什么会这样,那么你就可以做出更好的决定。伟大的程序员和了解编程语言的人之间的区别在于理解原因的深度。同样的原则也适用于错误修复。“重启服务。”“你试过重启吗?”这些是出现问题时经常想到的词。每次你这么说,你就错过了学习的黄金机会。了解为什么会出现此类错误将解决根本原因并避免姑息治疗。至少,以后不会再犯同样的错误。4.以前有人写过这样的代码吗?每当您发现自己发明了一种复杂的算法时,您很可能走错了路。除非你去搜别人刚解决这个问题的博士论文。需要编写一种算法来为用户鼠标悬停的项目添加标签吗?查看VoronoiTesselations。想找到卡车送货的最短路线吗?看看Dijkstra。想要找到与用户输入的内容最接近的标记?应该是Levenschtein距离才能找到它。这些只是几个简单的例子,相信我,它们无处不在。我能看得更远,因为我站在巨人的肩膀上——艾萨克·牛顿5.你知道这个技术是从哪里来的吗?你认为你了解REST吗?您是否阅读过RoyFielding描述REST的原始论文?你真的了解它的初衷吗?在RESTAPI生成向导上花费的时间比您在IDEv7工具上花费的时间多5分钟的人所写的博客不算数。帮自己一个忙,尝试阅读概念或原理的原始文档,然后通过各种方式了解行业的最新动态。如果你不知道他们从哪里开始,就跟着他们?(我不知道他们从哪里来,就跟着他们走吧!)6.我喜欢我现在做的事吗?请面对编程实际上很难。除了困难之外,编程发展得很快。艺术相框已经从2年前的“笨重的恐龙”成长为今天的标准。为了达到“游戏”的顶峰,您必须树立终身学习和研究的信念。如果你不喜欢你所做的,那么你就没有机会跟上其他人(喜欢你所做的)。因此,找到能激发您热情的编程类型!不要因为市场缺口或薪水高就决定成为一名安全专家。不要因为一篇文章说UX是最热门的工作就决定成为一名UX专家。再一次,做你喜欢的事。做你喜欢做的事,需要的资源会随之而来——PeterMcWilliams7.这段代码可以用在其他地方吗?我看到程序员最大的局限之一是他们自己失败的想象力。如果我们学到适合特定环境的东西,或者看到解决特定问题的技术,我们认为这是它唯一适用的地方。这是完全错误的。每当你学到新东西时,问问自己:“它能用在别处吗?”当你发现一种新的很棒的方法来定位图上的节点时,你可以将它应用于二维数据集中感兴趣的数据定位吗?当发现一种通过websockets从客户端向服务器发送数据的新方法时,如何将其应用于可扩展的后台服务?有时是错的,但有时也是对的。这就引出了我们的下一个问题……逻辑只能带你从A到Z,想象力可以带你去任何地方——阿尔伯特·爱因斯坦8.今天有什么问题吗?增加创收的最简单方法是减少错误成本。游戏开发公司Valve和其他几家公司非常重视这一观点。这同样适用于您作为Web开发人员的进步。如果你害怕失败,你就不会有大的突破。勇敢,尝试,失败,学习并再次尝试。不要害怕犯错误,它能让你认清失败并重新开始。——本杰明·富兰克林9.真的没有办法吗?我们不可能(除了少数例外)生活在世界上这么小的地方。假设无论你做什么都会奏效,然后向后推。你可能会发现自己想做的事暂时不切实际,但足以改变世界,而且可能比你想象的更快成为现实。在您完成之前,一切似乎都是不可能的-纳尔逊·曼德拉10.我可以向谁学习?永远不要在你最聪明的团队中工作。选择那些有能激励你并激励你做更多事情的同事的工作和公司。不要参与编程,文本编辑器和命令行之外还有整个世界。从其他领域学习并找到将其应用到您的工作中的方法。永远不要满足于你能做的工作!