程序员写代码时应该反复问本身的10个问题

程序员写代码时应该反复问本身的10个问题

你想成为一名优秀的程序员吗?那么,如今是时候放下《24小时学会xxx语言v8.3》超级骗子书,相反,你应当养成天天反问本身如下10个问题的习惯~html

edithfang edithfang 2014/10/18程序员



你的代码中是否有一种模式存在?

找寻模式中的可行与不可行将发现其中看似无关的想法或基本原则。要对工做达到深刻的理解,你必须养成反问本身“是否有一种模式存在?”的习惯。

它不只仅适用于你的代码。是否有适应各种型商业变化的模式吗?是否有一种适用于技术发展的模式?你有没有看到同类型的错误如雨后春笋般冒出来?web

所谓理解就是要理解模式 — 以赛亚·伯林

怎么让代码变得更简单?

开发者常常想获得复杂的和可扩展的解决方案。作一些极为复杂的东西,以为本身就是本身宇宙的主宰。问题是未来你永远没法预知产品和业务会如何改变。

“架构”和代码更像是园艺而不是建筑。你必需要有能力去适应不断变化的环境越复杂的解决方案越难作。算法

简洁是终极的复杂 —  列昂纳多·达·芬奇

你知道程序为何要这样运行吗?

知道东西像那样运做和知道为何会像那样运做是两个彻底不一样的事。若是你知道事情为何会那样,那么你就可以作出更好的决策。

一个伟大的程序员和知道有某种编程语言的人来讲,差异在于理解为何的深度

一样的原理也适用于问题修正。“重启一下服务。” “你试太重启吗?” 当有问题发生时,咱们常常会想到这些话。每次你这样说时,你就失去了一个学习的黄金机会。

理解为何出现这样的错误,将修正根本缘由,避免出现治标不治本。最起码,你之后不要再犯一样的错误。

以前有没有人写过这样的代码?

不管什么时候,你发现本身发明了一个复杂的算法,你极可能走在了错误的轨道上。除非你搜索到一份别人正好解决了这个问题博士论文。

须要编写一个向用户鼠标旁的item添加标签的算法?看看VoronoiTesselations. 想要找到卡车送货的最短路径?看看Dijkstra. 想要找到用户输入内容的最接近的标记?应该是找到它的Levenschtein distance.

这只是几个简单示例,相信我,它们无处不在。编程

我可以看得更远,那是由于我站在巨人的肩上 — 艾萨克·牛顿

你知道这种技术的出处吗?

你认为你知道REST吗?

你有读过Roy Fielding描述REST的论文原文吗?你真的明白它的最初用意吗?那种在IDE v7工具中比你多用REST API生成向导5分钟的家伙写出来的博客可不算数的。

帮本身一个忙,试图去读概念或原理的原始文档,而后经过各类手段去了解行业领袖的最新发展动态。若是你不知道他们是从哪些开始的,那就紧跟他们的步伐吧?(不知道他们从哪来,就跟着他们到哪去吧!)

我喜欢如今所作的吗?

请面对编程实际上是很难的。

除了很难之外,编程仍是发展很快的。Art框架从2年前的“笨重恐龙”已经发展到今天的标准。为了站到你“游戏”的顶端,你必须树立一个终生学习和研究的信念。

若是你不喜欢你所作的,那么你就没有跟上其余家伙(喜欢本身所作的)的可能。因此找到让你激情燃烧的编程类型!不要由于市场缺口或者收入不菲而决定成为一名安全专家,不要由于一篇文章说UX是最热门的职业而决定成为一名UX专家。
再说一次,作你喜欢的。安全

作你喜欢的,所需的资源将随之而来的 — 彼得·麦克威廉斯

这些代码还能够用在其它地方吗?

我看到程序员最大的一个限制就是,本身失败的想象力。

若是咱们学习到一个适应于特定环境的东西,或者看到解决某个特定问题的技术时,咱们认为这就它惟一适用的地方。这是彻底错误的。每当学到新东西时,反问本身:“其余地方还可使用吗?”

当发现了在图表上定位节点的新的伟大的方法时,是否是能够将它应用于二维数据集中感兴趣数据的定位呢?当发现经过websockets从客户端发送数据到服务器端的新方法时,它怎么才能应用到可扩展的后台服务上呢?有时是错误的,但有时也是正确的。

这给咱们带来了下一个问题……服务器

逻辑只能带你从A到Z,想像力去能够带你到任何地方 — 阿尔伯特·爱因斯坦

今天有什么作错的吗?

增长创收的最简单方法是下降错误的损失。

游戏开发公司Valve和其余几个公司很认为这个观点。这一样适用你成为web开发者的进步过程。若是你惧怕失败,你就不会有大的突破。

勇敢、尝试、失败、学习而后再来。websocket

不要惧怕错误,它能让你认识失败,而后从新来过。— 本杰明·富兰克林

难道真的没有办法吗?

咱们生活在世界上很小的一个地方是不可能的(除了少数例外)。

假设无论你作的什么事情都是可行的,而后采用向后的方向回推回去。你可能会发现,你想作的暂时是不切实际的,但它足以改变世界,可能变成现实的速度比你想像的还要快。架构

彷佛一切看起来都是不可能,除非你完成它 — 纳尔逊曼德拉

我能够向谁学习?

永远不要在一群你在其中是最聪明的人的地方工做。

挑选拥有能够启发你、激励你作得更多的同事的工做和公司。不要与编程扯上关系,在文本编辑器和命令行外面还有一个完整的世界存在。从其余领域学习,设法应用到你的工做中。

永远不要知足于能胜任现有的工做!框架

相关文章
相关标签/搜索