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

你想成为一名优秀的程序员吗?

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

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

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

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

引用

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

怎么让代码变得更简单?

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

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

引用

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

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

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

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

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

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

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

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

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

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

引用

我能够看得更远,那是因为我站在巨人的肩上 — 艾萨克·牛顿

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

你认为你知道REST吗?

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

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

我喜欢现在所做的吗?

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

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

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

再说一次,做你喜欢的。

引用

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

这些代码还可以用在其它地方吗?

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

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

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

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

引用

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

今天有什么做错的吗?

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

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

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

引用

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

难道真的没有办法吗?

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

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

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

我可以向谁学习?

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

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

永远不要满足于能胜任现有的工作!

 

时间: 2024-10-08 11:13:22

程序员写代码时应该反复问自己的 10 个问题的相关文章

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

你想成为一名优秀的程序员吗? 那么,现在是时候放下<24小时学会xxx语言v8.3>超级骗子书,相反,你应当养成每天反问自己以下10个问题的习惯. 你的代码中是否有一种模式存在? 找寻模式中的可行与不可行将发现其中看似无关的想法或基本原则.要对工作达到深入的理解,你必须养成反问自己“是否有一种模式存在?”的习惯. 它不仅仅适用于你的代码.是否有适应各类型商业变化的模式吗?是否有一种适用于技术发展的模式?你有没有看到同类型的错误如雨后春笋般冒出来? 所谓理解就是要理解模式 — 以赛亚·伯林 怎么

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

http://955.cc/aKZCg http://955.cc/aKZCh http://955.cc/aKZCj http://955.cc/aKZCk http://955.cc/aKZCm http://955.cc/aKZCn http://955.cc/aKZCp http://955.cc/aKZCq http://955.cc/aKZCr http://955.cc/aKZCs http://955.cc/aKZCt http://955.cc/aKZCu http://955

写代码时应该反复问自己的10个问题

英文原文:10 Questions web developers must ask themselves every day 你想成为一名web开发者吗? 那么,现在是时候放下<24小时学会超级骗子语言v8.3>书,相反,你应当养成每天反问自己以下10个问题的习惯. 1.是否有一种模式存在? 找寻模式中的可行与不可行将发现其中看似无关的想法或基本原则.要对工作达到深入的理解,你必须养成反问自己“是否有一种模式存在?”的习惯. 它不仅仅适用于你的代码.是否有适应各类型商业变化的模式吗?是否有一种

优秀 Java 程序员写代码的风格

往 期 精 彩 推 荐    [1]Java Web技术经验总结 [2]15个顶级Java多线程面试题及答案,快来看看吧 [3]面试官最喜欢问的十道java面试题 [4]从零讲JAVA ,给你一条清晰地学习道路!该学什么就学什么!! [5]福利:100G Java全套学习视频免费送了 今天突发奇想,对编码习惯和 编程风格 很感兴趣,于是乎,找了一下关于编程风格(Java篇)的资料,希望对爱好编码或者开始学习编码的同学有帮助! 来自<The Elements of Java Style>-<

优秀 Java 程序员写代码的风格,不再留坑给别人

往 期 精 彩 推 荐    [1]Java Web技术经验总结 [2]15个顶级Java多线程面试题及答案,快来看看吧 [3]面试官最喜欢问的十道java面试题 [4]从零讲JAVA ,给你一条清晰地学习道路!该学什么就学什么!! [5]福利:100G Java全套学习视频免费送了 今天突发奇想,对编码习惯和 编程风格 很感兴趣,于是乎,找了一下关于编程风格(Java篇)的资料,希望对爱好编码或者开始学习编码的同学有帮助! 来自<The Elements of Java Style>-<

幸福村站——成都传智播客程序员写出你的烧烤代码

又是一个阳光明媚,风和日丽之天,如果作为程序员的你还在键盘上苦苦的想着下一串代码该怎么写的话,那你就弱爆了.俗语说得好,学习要劳逸结合,写代码更是需要清晰的思维,在传智播客Java基础班开班一个月后,班主任决定带着这群"猿猴们"去传说中的"幸福村"放松放松,我们也跟着一起去感受程序员们的烧烤代码的幸福吧! 带着好奇的心理走进了"幸福梅林站",一个又一个的农家乐园开始浮现在我们眼前,那里朴素的民风和美丽的风景让我们暂时忘却了学习上的烦恼和城市里的喧

汇道科技:如果以后程序员写不动代码了怎么办?

最近汇道科技办公室关于"程序员写不动代码了怎么办?"引发了很多人的讨论,一开始讨论的对象只是"当事人"程序员们,后面到各行各业,同时大家讨论的几个点也引人深思: 1.35岁写不动代码了怎么办?  你不得不承认,对于新事物的兴趣在下降,就如同不再有见漂亮姑娘时的小兔乱撞,就如同不再有见到梦想时的热血跌宕.就是如此尴尬的一个年龄,偏偏又生在互联网,这个到处都是常青藤生产线的艺术品,不比资历只比朝气的行业. 首先小编认为35岁并不是一个很可怕的年纪,三十而立,三十五岁正当

程序员遇到问题时怎么办

今日要闻: 新浪创业上线 毫无疑问,2015是属于创业者的时代,O2O将颠覆每一个服务细分行业: 出行相关的应用层出不穷,大大降低了出行成本: 在线教育正在革新我们获取知识的方式: 全新的移动社交生态体系将我们拉的更近. 每一个颠覆的机会都是从创业者小小的梦想开始的,在梦的起点最需要支持和帮助. 我们希望新浪的平台能够全力帮助创业者和创新产品加速成长.同时, 也让我们的用户尽快用上这些足以改变我们生活的新创想,这就是新浪创业频道的使命. 今日英文: http://docs.oracle.com/

测定程序员的代码基因

上个月,在负责技术晋升评审的过程中,有人认为在评审过程中以述职讲述为主,可能对某些比较擅长写代码而不擅于演讲的同学不公平.而对于中级别的程序员技术晋升我们更倾向于筛选出擅长编程,而非仅仅是说得好的同学. 这个过程里面,存在四种情形: 代码写得好,也说得好 代码写得好,但说不出 代码写得不太行,但说得很好 两者都不行 晋升筛选的目标是选出 1 和 2 两种,筛掉 3 和 4.这里面的挑战在于,在采用述职答辩这种形式下,1 和 3 这两种很难分辨,同时 2 和 4 也很难分辨.关键就在于如何识别并判