程序员应该扪心自问的10个问题

程序员应该扪心自问的10个问题

想成为一名web开发人员?那么,扔掉《24小时突击掌握xx语言》这类骗子书籍。你应该养成一个习惯,每天问问自己下面这10个问题。

1.此处有没有模式? 研究在哪些情况下行得通,哪些情况下行不通的设计模式,能够让我们发现潜在的规则,了解看似不相关的概念和行为。为了更深层次地了解工作,你需要时不时地问问自己,“此处有没有设计模式?”。 这句话适用的不只是你的代码。在根据业务要求而变的类型变化中有没有模式?技术发展有没有模式?你是否经常看到同样类型的bug连连弹出? 理解其实就是一种感知模式。——以赛亚·伯林 2.如何让它变得简单起来? 通常作为web开发人员,我们会想着拿出复杂又可扩展的解决方案。搞点复杂的会让你觉得自己非常的高大上。问题是,你永远无法预知你的产品和业务在未来将会发生怎样的改变。 架构和编码与其说像建造,还不如说更像园艺艺术。你必须得能够适应不断变化的环境。解决方案越复杂,它的适应力就越弱。 简单才是终极的复杂。——达芬奇 3.它为什么这么工作? 知道事物能工作,与知道它为什么这么工作是两个完全不同的事情。知道一些事物的行为原因,有助于你做出显然更好的决策。 伟大的程序员,和那些只是知道一门编程语言的人之间的区别是,两者处于的知识层深度不同,前者深刻地理解其工作原理。 这也适用于修复问题的时候。“只要重新启动服务即可。”“你重启了吗?”当弹出问题的时候,我们往往会说类似于这样的话。然而,如果你这样说了,那你就失去了一次学习的黄金机会。 知道为什么会出现问题,才能从根本上修复问题,才能避免再出现这样的问题。 4.之前有人做过吗? 当你自我感觉发明了一种复杂算法的时候,可能就意味着你正在错误的道路上了。最好的方法是搜索其他人是否已经解决了这个问题。 需要写算法,以便于添加标签到最接近用户鼠标的菜单项中?别急,已经有解救方法了。想为送货车找一条最短路径?也已经有解决方法了。想找类似于用户刚刚enter的标签,那么也不用自己绞尽脑汁写了。 上面这些只是几个例子,但是相信我,你碰到的问题,别人早就碰到过了。 我能看得更远,那是因为站在巨人的肩膀上。——牛顿 5.谁第一个提出来的? 你觉得自己知道REST? 那么,你读过Roy Fielding说明REST的原始文件吗,你了解它的期望目的吗?暂且不说那个在IDE V7中使用REST API生成向导比你更有经验的博主了。 所以,告诉自己试着去阅读概念和理论的原始来源。然后通过各种方法去了解行业思想领袖给出的最新开发成果。如果你不知道是从哪里开始的,那么你怎么理解目前的发展进程呢? 6.我真的热爱我目前的工作吗? 首先让我们面对一个事实:编程很难。 即使很难,编程也在不断发展。如果用现在的标准来看,2年前的框架简直笨拙地就像一头恐龙。要想留在这一行,那么你需要终生致力于学习和研究。 如果你确实不喜欢编程,那么要想跟上那些热爱的人的步伐,希望并不大。找找你为什么对她没有兴致的原因。不要因为与市场存在差距或因为待遇还不错,就决定成为一名安全专家,不要只是因为最近的文章上面评论说,UX是高科技领域中最热门的职位,就立志成为一个UX专家。 重要的事情说三遍:做自己热爱的事情。做自己热爱的事情。做自己热爱的事情。 做自己热爱的事情,你所需要的资源也会随之而来。——彼得·麦克威廉斯 7.还可以用在哪里? 我发现web开发人员最大的局限之一就是失败的想象力。 我们在特定的情况下学习的东西,或看到某种用于解决特定问题的技术,我们往往会认为这就是它们的唯一用途。但是,这个想法基本上都是错的。每次你学到新的东西的时候,都应该问自己:“还可以用在哪里?”。 学到了一种超棒的新的定位方法来定位图形节点,那么它是不是也可以运用到在有2个维度的数据集中查找某一个数据点?发现一个越过WebSockets从客户端发送数据到服务器的很棒方法?那么它该如何应用于制定一个可扩展系列的后端服务?有时候此路不通,有时候却是可行的。 逻辑能力能让你从A到Z,但是想象力却能让你去往任何地方。—— 爱因斯坦 8.我败在哪里? 最简单的革新方法就是降低失败的成本。 游戏开发公司Valve和它的一些同行就将此当作金科玉律。这同样适用于web开发人员,如果你害怕失败,那么你将永远不会有大的突破。 勇敢地去尝试,从失败中学习,然后再试一次。 不要害怕犯错。认识失败。然后从头来过。——本杰明·富兰克林 9.如何实现这个目标? 我们生活的世界中只有很少一部分事情是真的完全不可能的。 要抱着自己想做的任何事情都是可能的这样一种想法去做事。可能你会发现你想做的事不符合当前实际,但随着世界的不断进步,它也许比你想象地更快成为了现实。 事情未成功之前,它永远是看似不可能的。——曼德拉(前南非总统) 10.我可以向谁学习? 不要在你是最聪明的地方工作。 选择那些拥有能够激励你,挑战你,让你做得更好的同事的工作和企业。不必与代码相关,在文本编辑器和命令行之外还有一个世界。学习其他领域的事情,然后应用于你的工作中。 不管如何,仅仅胜任工作是不够的。

原文发布于微信公众号 - Java学习网(javalearns)

原文发表时间:2015-09-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

陈皓谈对待技术的态度

最近在酷壳上,陈皓撰文阐述了对待技术的态度,如何面对技术的快速更新?是否做软件开发比以前更加困难了?他都给出了自己的见解。 陈皓首先针对“如何看待日新月异的新技...

2125
来自专栏BestSDK

VRTK将各种VR SDK/API整合:不会编程也可以开发VR

这个免费的开源Unity工具包旨在将各种VR API的单一工作流程结合在一起。它包含了你可能会在任何单个专有SDK中找到的相同库存预制和脚本机制,无论是被部署到...

4356
来自专栏java一日一条

自由程序员的3个开发技巧

我们有三个系列的小技巧要分享:与你的客户沟通,保护你的声誉以及解决常见的自由职业问题。下面让我们开始吧!

751
来自专栏腾讯技术工程官方号的专栏

腾讯Blade Team胡珀:IoT时代,“白帽子”以网为剑捍卫安全

? 10月10日至10月11日,第三届腾讯安全国际技术峰会(TenSec2018)在深圳顺利举办。由腾讯安全发起、腾讯安全科恩实验室与腾讯安全平台部联合主办,...

2891
来自专栏大数据文摘

数据可视化入门——我该从何开始?

23510
来自专栏CSDN技术头条

专访天数科技创始人兼CEO李云鹏:充分尊重工程师的个性差异

李云鹏,天数科技创始人兼CEO;曾任美国甲骨文公司全球研发总监,从事甲骨文数据库10g至12c的研发工作。日前,笔者采访了李云鹏,请他分享国内外数据库发展的差异...

2357
来自专栏BestSDK

一周简报|华为Pay手机支付服务上线,支持25家银行可绑公交卡

精彩内容 青云QingCloud HBase 服务上线,支持 SQL 等高级功能; 七牛云推出技术共享计划,首波直播技术公开课上线; 网易云信亮相WOT, “I...

27010
来自专栏芋道源码1024

Java程序员月薪达到三万,需要技术水平达到什么程度?(文末送书)

最近跟朋友在一起聚会的时候,提了一个问题,说Java程序员如何能月薪达到三万,技术水平需要达到什么程度?人回答说这只能是大企业或者互联网企业工程师才能拿到。也许...

1412
来自专栏CSDN技术头条

免费拿走我的代码可以,但请对使用我的时间付费

编者按:秉持“开放、共享、解惑”的开源项目意味着任何人都能随便使用项目或产品中的代码,但开源并不意味着“拿来主义”,更不应发生“ 00 后 CEO 抄袭了程序员...

2078
来自专栏LiveEdu在线科技教育平台

成为 LiveEdu 项目创建者的 10 大好处

LiveEdu 正在为我们的八大门类有偿招聘项目创建者:人工智能、加密货币与区块链、网络安全、数据科学、设计、游戏开发、编程和 VR / AR。下图是每个门类所...

18911

扫码关注云+社区

领取腾讯云代金券