• 美好生活的价值追求和实现路径-社会关注-理论频道-中工网 2018-05-21
  • 保罗亲手为自己圆梦 火箭勇士双双会师西部决赛 2018-05-21
  • Floating production, storage and offloading vessel delivered in Qingdao 2018-05-20
  • 汽車定位跟蹤官員意圖敲詐 追蹤器該怎麼管 2018-05-20
  • 工作队精准发力助力贫困村“摘帽” 2018-05-20
  • 中消协发布榨汁机比较试验结果 2018-05-20
  • 游花海林芝,赏野生桃花 2018林芝桃花节29日开幕 2018-05-20
  • 19米99轻松卫冕 巩立姣:没突破20米有点可惜 2018-05-18
  • 海南省工商局出实招提高干部素质 强化工作作风 2018-05-18
  • 栾蕾英亮相TOP100时尚盛典 盛装亮相仙气十足 2018-05-18
  • 以合法形式掩盖非法目的的合同效力 2018-05-18
  • 4月解放领跑重卡行业 红岩保持增幅第一 2018-05-17
  • 不查“后来”,中国电影难有未来 2018-05-16
  • 欧盟公司与伊朗合作将遭美国制裁?德媒:欧美或渐行渐远 2018-05-16
  • 《青草的清香》:探索感官和情感的发展史 2018-05-16
  • 程序员写代码时应该反复问自己的10个问题

    栏目: 我的笔记 发布于: 2014-10-17 17:15:33

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

    那么,现在是时候放下《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开发者的进步过程。如果你害怕失败,你就不会有大的突破。

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

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

    难道真的没有办法吗?

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

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

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

    我可以向谁学习?

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

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

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


    作者:Stephen Young,翻译:kinglongmee,原文:http://www.rocksun.cn/view/504606/427771

    本站文章除注明转载外,均为本站原创或编译?;队魏涡问降淖?,但请务必注明出处。
    转载请注明:文章转载自 七星彩票平台
    本文标题:程序员写代码时应该反复问自己的10个问题
    IT技术书籍推荐:
    细说PHP(精要版)
    细说PHP(精要版)
    高洛峰 (作者), LAMP兄弟连 (编者)
    PHP是开发Web应用系统最理想的工具,拥有易于使用、功能强大、成本低廉、安全性高、开发速度快且执行灵活等优点?!断杆礟HP(第2版)》自出版以来,销售一路在同类书籍中领先,已成为PHP学习者首选的工具书。为了可以让读者携带方便及更精准地掌握PHP的重点、要点,同时能使之作为大学计算机系PHP教材普及,特别推出《细说PHP精要版》。本书是以《细说PHP(第2版)》为基础,提取出精华内容,都是PHP开发中必须需要掌握的技术点。全书以实用为目标设计,包含PHP开发中必备的各项技术,对已列出的每一个知识点都进行了深入详细的讲解,并附有大量的经典实例代码,图文并茂,并且侧重介绍了PHP的相关技术在实际Web开发中的应用。