阅读更多

7顶
0踩

非技术

转载新闻 程序员需要自问的 10 个问题

2015-03-25 11:29 by 副主编 mengyidan1988 评论(1) 有5262人浏览
你想成为一个开发者/程序员么?

那是时候放下《24小时学会超级骗子语言》之类的书了。相反地,每天问自己一下10个问题,并养成一个习惯吧。

是否有某种模式?

探寻可行与不可行中的模式,能发现(事物)背后的原理,这些原理则驱动着看似无关的概念和行为。要想对你做的工作有更深的理解,养成问自己“是否有种模式存在?”的习惯吧。

这不仅仅适用于你的代码。在各类商业需求的变化中有某种模式吗?技术进步的方式中有某种模式吗?你看到同样的错误反复地蹦出来吗?

引用
理解就是领悟模式。 —— 以赛亚·伯林


我该如何使它变得更简约?

通常作为web开发者,我们想提出复杂且可扩展的解决方案。做一些极其复杂的东西,会让你觉得自己就是宇宙的主宰。而问题是你永远不能预测到产品和业务今后会怎样变化。

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

引用
简约是复杂的最终形式。 ——列昂纳多·达·芬奇


为什么它是那样工作的?

知道事情运作和知道它运作的原因,这是两件完全不同的事。如果你知道事情为什么是那样(运作),那么你就能够做出更好的决策。

一个优秀的程序员和懂一点编程语言的人,差别在于理解缘由的深度。

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

理解问题的原因,能让你解决根本原因,并且永久消除这类错误。最起码,你将不再犯同样的错误。

之前有人做过吗?

无论何时,如果你发现自己正在发明一个复杂的算法,你很可能就是方法不对。除非你正忙于研究博士论文,一般已经有人解决了这个问题。

需要编写一个给离用户鼠标最近的item添加标签的算法?看看Voronoi Tesselations(泰森多边形法,多边形密度)。想要找到卡车送货的最短路径?看看Dijkstra算法吧。想要找到用户输入内容的近似标记?试试计算它的 Levenschtein 距离吧。

这些只是几个简单示例,但相信我,还有很多很多。

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


谁最先提到它?

你以为你知道REST吗?

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

帮自己一个忙,尽可能试着去读某种概念或理论的原始文档吧,然后通过各种手段去了解行业领袖的最新发展动态。如果你不知道他们是从哪开始的,你怎么跟得上他们的步伐呢?

我热爱现在所做的吗?

编程不简单,咱们承认吧。

除了难以外,编程还总在不断发展。最先进的框架从2年前的“笨重恐龙”已经发展到今天的标准。想要一直站在你的“游戏”顶端,你需要树立终生学习和研究的观念。

如果你不热爱你所做的,那么你就没有跟上其他家伙的希望。所以找到那种让你激情燃烧的编程类型吧!不要因为市场缺口或者收入不菲而决定成为一名安全专家,不要因为一篇文章说用户体验是最热门的科技工作而决定成为一名用户体验专家。

再说一次,做你热爱的。

引用
做你热爱的,所需的资源将随之而来。—— 彼得·麦克威廉斯


我还可以在哪些其他的地方用到这个?

我看到Web开发者给他们自己设定的最大的一个限制就是,想象力的失败。

如果我们学习一个特定环境下的东西,或者看到解决某个特定问题的技术时,我们认为这就它唯一适用的地方。这种观点大多时候都是错的。每次学到新东西时,反问自己:“我还可以在哪些其他的地方用到这个?”

发现了在图表上定位节点的新的好方法?将同样的技术应用于发现二维数据集中有趣的数据点?找到了通过websockets从客户端发送数据到服务器端的新方法?它怎样才能应用到可扩展的后台服务上呢?有时你会是错误的,但有时你将是正确的。

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

逻辑可以带你从A到Z,但想像力可以让你无处不在。 ——阿尔伯特·爱因斯坦

今天我做错了什么吗?

提高创新的最简单方法之一就是降低失误的成本。

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

勇敢点、去尝试、失败了、去学习,然后再来试试。

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

我们怎样使它成为可能?

现实中,一切皆有可能,而凡事均有例外。

先开始假设不管你做什么事情都是可行的,然后回推过去来工作。你可能会发现,你想做的暂时是不切实际的,但以当今世界的变化速度,它变得可行的时间,可能比你想的要早。

在事情未成功之前,一切总看似不可能。?——纳尔逊·曼德拉

我可以向谁学习?

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

挑选拥有可以启发你、激励你做得更好的同事的工作和公司。没必要和编程有关系,在文本编辑器和命令行之外还有一个世界。从其他领域学习,并应用到你的工作中。

不管怎么样,保持竞争力更好!
7
0
评论 共 1 条 请登录后发表评论
1 楼 sgsy_2013 2015-03-27 12:31
我觉得可以乐在其中就好了。
那些成名的工程师也一定不是总想着怎么找到事物的规律,他们更多的想的应该是怎么才能让自己的工作变得更有意思。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 2023,程序员的出路在哪里?

    处理故障需要的通常不仅仅是写代码的能力,还需要对一个系统的全貌要有一定的掌握。虽然目前不少大型互联网企业都在进行结构性调整,但是从互联网行业发展的基本面来看,未来在产业互联网发展的过程中,IT行业和传统...

  • 入门架构师的必须要懂的几个自问

    程序员怎样能向架构师方向靠近;什么是管理能力;收集信息的能力;分析问题、做出决策的能力;授权与监督的能力;收集反馈、及时调整的能力;走向目的地的能力;架构师应该管些什么?架构师如何管理架构?制定架构...

  • 程序员需要自问的 10 个问题,其实不只使用于程序员

    相反地,每天问自己一下10个问题,并养成一个习惯吧。 是否有某种模式? 探寻可行与不可行中的模式,能发现(事物)背后的原理,这些原理则驱动着看似无关的概念和行为。要想对你做的工作有更深的理解,养成问...

  • 程序员应该自问的10个问题

    为了更深层次地了解工作,你需要时不时地问问自己,“此处有没有设计模式?”。这句话适用的不只是你的代码。在根据业务要求而变的类型变化中有没有模式?技术发展有没有模式?你是否经常看到同样类型的bug连连弹出...

  • 也谈谈程序员职业规划的几个问题——我的一些故事

    原文地址:http://blog.csdn.net/watsonyin/article/details/158138831. 职业发展的三个阶段我将一个人的职业发展分为三个阶段:(1)30岁以前打基础,人生方向基本确定。30岁之后再做出变化,说不想做这个,会付出...

  • 一个程序员的自问

    在外地长期出差,跟着需求的变动无止境的改这改那,忍气吞声,寄人篱下,就为了那么点钱,值得吗?这些东西只会让你更加兴奋,更加努力。。。但是什么时候是个头呢?

  • 他人对程序员职业规划的几个问题

    最近快年底了,身边的许多朋友都换工作了,有的换... 我将一个人的职业发展分为三个阶段:  (1)30岁以前  打基础,人生方向基本确定。30岁之后再做出变化,说不想做这个,会付出很大的代价。要改变自己的职业

  • 独立初创工作室需要自问的50个问题

    我并不是一名程序员,美术师,游戏玩法设计师或者一名非常出色的制作人。有些人可能会问,那么我在一家小型独立工作室到底做着什么样的工作呢?   我扮演着如下角色:   业务开发人员   市场营销/活动/社交媒体...

  • 一个屌丝程序员的青春(一一四)

     自问程序员在什么情况下要考虑换工作:  1.已经成为公司里“最好”的程序员,或者已经找不到可作为老师和导师的人  2.如果使用的技术是非可持续发展的,那么终将会被市场淘汰  3.一无所成  4.薪水少,没有晋升...

  • 优秀程序员的6个共同特质

    如果你恰好是一个程序员,你会发现身边优秀的同事也总是有一些共同点。原文作者ROYVANRIJN总结了他身边优秀程序员同事拥有的6个共同特质:  具有好奇心热爱分享具有社区意识以身为程序员而自豪有点懒代码可视化 ...

  • 招个程序员,难?

    他的团队 3-5 月接二连三的走了十几个程序员,他们一直在招人补人,招了一段时间发现今年招人真费劲。花时间花精力面了不少人,很多人给了 offer 最终也没来,都被大厂给抢了。 给了 offer 人家不来,这种情况我也...

  • 面试经 | 资深 Java 程序员设计的 23 个问题(含答案)

    Photo byEvan DennisonUnsplash自问自答,既是对知识体系的一种扫盲,也是和其他程序员交流的一种方式,通过这种方式来交换见解,也许还能成为彼...

  • 优秀程序员的六个品质

    如果你恰好是一个程序员,你会发现身边优秀的同事也总是有一些共同点。原文作者ROYVANRIJN总结了他身边优秀程序员同事拥有的6个共同特质:  具有好奇心热爱分享具有社区意识以身为程序员而自豪有点懒代码可视化 ...

  • 也谈谈程序员职业规划的几个问题:我的一些故事

    我将一个人的职业发展分为三个阶段: (1)30岁以前 打基础,人生方向基本确定。30岁之后再做出变化,说不想做这个,会付出很大的代价。要改变自己的职业方向,30岁之前做出决定,越早越好。就像软件的需求...

  • 程序员必读书籍有哪些值得推荐?

    有人也许会以为,关于代码的书有点儿落后于时代——代码不再是问题;我们应当关注模型和需求。确实,有人说过我们正在临近代码的终结点。很快,代码就会自动产生出来,不需要再人工编写。程序员完全没用了,因为商务...

  • 女友的一个建议,让 26 岁程序员做了个价值 10 亿美元的 App

    英文:Alan Trapulionis,翻译:InfoQ - 王者...2000 年代末期,在 FourSquare 的引领下,签到 App 风靡一时,而一个小型的团队意味着 Kevin 可以承担更多的责任,并有很大的话语权。 他做到了。经过一年的创业磨练,.

  • 程序员沟通技巧

    不要做过多的铺垫,直接说出自己的需求,不要拐弯抹角,看对方的反应,是否需要给予补充。如果自己负责传递信息,将自己确认过正确的原信息传递给出去。给予对方反馈,主动思考,敢于质疑,不要怕自己不懂丢人。信息...

  • 10x程序员工作法 01 程序员是怎么思考

    需要自问的问题: 1.我现在的水平? 2.我想要达到的水平? 3.我该如何实现? 我发现我在工作中很少从这个角度思考问题,我往往想的是工作中又遇到问题,好烦呐。却很少去想这个过程就是3中要做的事情。修炼功力就...

  • 【java毕业设计】智慧社区教育服务门户.zip

    有java环境就可以运行起来 ,zip里包含源码+论文+PPT, 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上

Global site tag (gtag.js) - Google Analytics