转:开发者应该反问自己的10个问题

开发者应该反问自己的10个问题

你想成为一名web开发者吗?

那么,现在是时候放下《24小时学会超级骗子语言v8.3》书,相反,你应当养成每天反问自己以下10个问题的习惯。

是否有一种模式存在?

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

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

理解就是理解模式 -- 以赛亚·伯林

怎么让它变得更简单?

开发者经常想得到复杂的和可扩展的解决方案。做一些极为复杂的东西,觉得自己就是自己宇宙的主宰。问题是将来你永远无法预知产品和业务会如何改变

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

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

东西为什么像那样运作?

知道东西像那样运作和知道为什么会像那样运作是两个完全不同的事。如果你知道事情为什么会那样,那么你就能够做出更好的决策。

一个伟大的程序员和知道有某种编程语言的人来说,差别在于理解为什么的深度。

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

理解为什么出现这样的错误,将修正根本原因,避免出现治标不治本。最起码,你以后不要再犯同样的错误。

之前有没有人做过?

无论何时,你发现自己发明了一个复杂的算法,你很可能走在了错误的轨道上。除非你搜索到一份别人正好解决了这个问题博士论文。

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

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

如果我看得更远,那是因为我站在巨人的肩上 -- 艾萨克·牛顿

谁最先提到它?

你认为你知道REST吗?

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

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

我喜欢现在所做的吗?

请面对编程其实是很难的。

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

如果你不喜欢你所做的,那么你就没有跟上其他家伙(喜欢自己所做的)的可能。所以找到让你激情燃烧的编程类型!不要因为市场缺口或者收入不菲而决定成为一名安全专家,不要因为一篇文章说UX是最热门的职业而决定成为一名UX专家。

再说一次,做你喜欢的。

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

其他地方还可以使用吗?

我看到web开发者最大的一个限制就是,自己失败的想象力。

如果我们学习到一个适应于特定环境的东西,或者看到解决某个特定问题的技术时,我们认为这就它唯一适用的地方。这是完全错误的。每当学到新东西时,反问自己:“其他地方还可以使用吗?”

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

这给我们带来了下一个问题......

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

今天有什么做错的吗?

增加创收的最简单方法是降低错误的损失

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

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

不要害怕错误,认识失败,然后重新来过。--- 本杰明·富兰克林

怎么使它变成可能?

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

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

直到完成前,似乎都还是不可能的 --- 纳尔逊曼德拉

我可以向谁学习?

永远不要在你是最聪明的地方工作。

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

不管怎么样,比称职更好!

时间: 2024-12-19 10:44:46

转:开发者应该反问自己的10个问题的相关文章

PHP面试和PHP开发者都应掌握的10个问题 【兄弟连经验技巧】

问题 :1     MySQL里的存储引擎有什么不同,哪一个是默认的? 答案: 1    我们可以一下存储引擎: 1. MyISAM(MySQL的默认引擎. 每个MyISAM表是分为三个文件存储在硬盘上的.文件名称是以表明开始并且有一个扩展文件名来指示文件的类型. .frm 文件用来存储表的格式. The data file has an数据文件被存储在 .MYD (MYData) 文件中. 索引文件的后缀是.MYI.) 2. InnoDB(InnoDB是一种事务安全(兼容ACID)类型的存储引

C++开发者都应该使用的10个C++11特性

本文由 伯乐在线 - 治不好你我就不是兽医 翻译自 Marius Bancila.欢迎加入技术翻译小组.转载请参见文章末尾处的要求. [感谢冯上(@治不好你我就不是兽医 )的热心翻译.如果其他朋友也有不错的原创或译文,可以尝试推荐给伯乐在线.] 在C++11新标准中,语言本身和标准库都增加了很多新内容,本文只涉及了一些皮毛.不过我相信这些新特性当中有一些,应该成为所有C++开发者的常规装备.你也许看到过许多类似介绍各种C++11特性的文章.下面是我总结的,C++开发者都需要学习和使用的C++11

Python开发者最常犯的10个错误

摘要:Python是一门简单易学的编程语言,语法简洁而清晰,并且拥有丰富和强大的类库.在日常开发中,开发者很容犯一些低级的错误,本文总结了开发者最容易犯的10个错误. Python是一门简单易学的编程语言,语法简洁而清晰,并且拥有丰富和强大的类库.与其它大多数程序设计语言使用大括号不一样 ,它使用缩进来定义语句块. 在平时的工作中,Python开发者很容易犯一些小错误,这些错误都很容易避免,本文总结了Python开发者最常犯的10个错误,一起来看下,不知你中枪了没有. 1.滥用表达式作为函数参数

PHP面试和PHP开发者都应掌握的10个问题

问题 :1     MySQL里的存储引擎有什么不同,哪一个是默认的?答案: 1    我们可以一下存储引擎: 1. MyISAM(MySQL的默认引擎. 每个MyISAM表是分为三个文件存储在硬盘上的.文件名称是以表明开始并且有一个扩展文件名来指示文件的类型. .frm 文件用来存储表的格式. The data file has an数据文件被存储在 .MYD (MYData) 文件中. 索引文件的后缀是.MYI.) 2. InnoDB(InnoDB是一种事务安全(兼容ACID)类型的存储引擎

C++开发者都应该使用的10个C++11特性 转

http://blog.jobbole.com/44015/2013/07/26 | 分类: C/C++, 开发 | 5 条评论 | 标签: C++11, C语言 分享到: 127 本文由 伯乐在线 - 治不好你我就不是兽医 翻译自 Marius Bancila.未经许可,禁止转载! 欢迎加入:技术翻译小组,或分享原创到伯乐头条. [感谢冯上(@治不好你我就不是兽医 )的热心翻译.如果其他朋友也有不错的原创或译文,可以尝试推荐给伯乐在线.] 在C++11新标准中,语言本身和标准库都增加了很多新内

Node.js开发者最常范的10个错误

目录 前言 1 不使用开发工具 1.1 自动重启工具 1.2 浏览器自动刷新工具 2 阻塞event loop 3 频繁调用回调函数 4 圣诞树结构的回调(回调的地狱) 5 创建一个大而完整的应用程序 6 缺少日志 7 没有测试 8 不使用静态分析工具 9 没有监视与性能分析 10 使用console.log来debug 前言 随着一些大公司如Walmart,PayPal等开始采用Node.js,在过去的几年里,Node.js有了快速的增长.越来越多的人开始选择Node并发布modules到NP

Android开发者必须深入学习的10个应用开源项目

Android开发又将带来新一轮热潮,很多开发者都投入到这个浪潮中去了,创造了许许多 多相当优秀的应用.其中也有许许多多的开发者提供了应用开源项 目,贡献出他们的智 慧和创造力. android开发, 开源项目Android开发又将带来新一轮热潮,很多开发者都投入到这个浪潮中去了,创造了许许多 多相当优秀的应用.其中也有许许多多的开发者提供了应用开源项 目,贡献出他们的智 慧和创造力.学习开源代码是掌握技术的一个最佳方式.下面推荐几个应用开源项目, 这些项目不仅提供了优秀的创意,也可以直接掌握

Android开发者应该深入学习的10个开源应用项目

Android开发带来新一轮热潮让很多移动开发者都投入到这个浪潮中去了,创造了许许多多相当优秀的应用.其中也有许许多多的开发者提供了应用开源项目,贡献出他们的智慧和创造力.学习开源代码是掌握技术的一个最佳方式.下面推荐几个应用开源项目,这些项目不仅提供了优秀的创意,也可以直接掌握 Android内核的接口使用: 1.Android团队提供的示例项目 如果不是从学习Android SDK中提供的那些样例代码开始,可能没有更好的方法来掌握在Android这个框架上开发.由Android的核心开发团队

开发者的必须知道的10个代码游乐场

如果你是开发者,在寻找最佳的代码游乐场,享受代码的乐趣,那么你来到了正确的地方.在这篇文章中DevStore已经收集了用于测试.调试和分享代码的10个最好的免费代码游乐场和沙盒工具.如果你知道其他好的代码游乐场,可以通过评论告诉我. 1. Codepen CodePen是一个web前后端游乐场.它基于激发.传授和分享.能高亮热门示例("Pen"),且提供高级功能,如共享和嵌入.需要建立一个减少测试案例来演示并找出一个bug?CodePen绝对适合这个场景.想炫耀你的最新创作和获得同行的