优秀Web开发者提升开发能力必知的10件事

  “开发工作不仅仅只是写代码”这句话来自3EV网站的Dan Frost,他在一篇文章中阐述了开发过程中应该注意的一些事项。原文内容如下:

  开发者是创造数字世界的主力军,他们不应该只扮演编程工具的角色,而应该对开发工作有更高的要求。那么,开发者可以从哪些方面提高开发能力呢?下面我就谈一下我的想法。我的建议可能不全面,但希望能够给你带来一些帮助。

  1. 不要只盯着代码

  如今人人都会写代码。很多业余爱好者也可以搭建网站、编写应用程序,编程已经不再稀奇。

  随着网络的普及,许多人只需通过自学就会编程,但无论是自学者还是科班出身的开发者们都有一些同样的问题。我面试过一些有很高学历的应聘者,这些人大多获得了计算机学位、修过AI课程,拥有各色计算机等级证书,但他们仍然缺乏一些很重要的认识。

  开发者们不应该只盯着代码,还需要注意开发工作中的两个方面——横向面和纵向面,比如,开发者应该懂得如何在团队里与别人协作,也应该清楚开发项目中系统层面的设计。

  我认为与开发者合作的人也应该阅读这篇文章。因为如果你对开发了解越多,你可以在合作的时候对开发者提出更高的要求,比如让他们概括出讨论的问题,让他们提炼出系统的核心功能,用图片和实例展现应用实现的功能等。


  2. 重要提醒

  我想我有资格给开发者们挑毛病,因为我也是一名开发者,并且我了解开发者一些共有的问题,尽管他们对代码了如指掌,并且能按时完成工作。但他们仍然要注意两方面:更专业和更具人性化。

  3. 网络影响

  你只要搜索一下专业网站上面的开发技术就可以得到许多答案。比如框架知识、浏览器、CSS 和JS。搜索引擎会为你找出需要的框架、平台和应该关注的发展趋势。

  而这些东西只是我们的工具,它们帮助我们构造项目,但是它们不是项目成功的关键。即使一个开发者了解系统中每个细节、掌握了所有API功能和新的CSS技术,他也可能会开发出毫无意义的产品。

  开发者需要知道如何运用工具,同样也需要了解观众,也就是用户、团队和其他开发者。他们需要了解他们的工具对环境的适应程度(换句话说,产品的环境)以及工具的用处。

  有一种开发者被描述为“wide and deep”,这种开发者懂得如何做好团队合作,同时掌握着开发的核心技术。如果他们加入项目,会大幅度提升项目进程,改变项目的步调,如果没有他们,非技术人员就会陷入一些琐碎细节中停滞不前。

  4. 我们需要的

  我最近正在列一份清单,上面罗列了建立网站、管理主机需要的所有东西,可以作为新人学习技术的基础指南。我们通过不断的探讨来修改清单的内容,希望这份清单能为新人建立一个好的开始。

  我们给出的清单包含了大部分学习开发需要的知识。其中有经典常用的工具,也有一些新式工具。

  在开发实践中,这些工具对推进项目的进展很有帮助,优秀开发者的工具积累应该比编程语言、CMS、框架这些知识更丰富。因为你需要调度、测试、CI、强化版本控制(团队合作,不是单靠你自己),同时你不能只了解几条指南,还需要了解项目的核心理念。

  5. DevOps

  这些辅助工具和技巧适用于DevOps模式(DevOps是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障部门之间的沟通、协作与整合)。一直以来,DevOps模式中“运营”和“开发”的对决都难分高下。运营主要用来保持事物的运作。而开发用来研制新事物(往往使事物停止运作)。这种矛盾导致了两个阵营争执不休。

  假如开发者不能充分了解产品,他开发的功能往往与产品不匹配,这样写出来的代码也不适合产品。因为他们没有考虑过产品的使用环境,所以他们的编码忽视了与产品的调配,而将重心放在了功能的完善中。

  要注意,这些细节都会导致可怕的延迟,而远程服务器管理的形式则会加剧这种延迟。

  如果想成为优秀的开发者,就应该深入学习开发过程中所使用的所有工具。一旦开发者全部学会了这些工具的用法,将会有很大的进展。

  持续部署和DevOps的相关实践已成为了一种标准,还没有对这些理念进行研究的开发者或公司已经落伍了。如果你跟不上发展的步伐,那么其他人总有一天会超过你。

  网上有许多对“DevOps”概念的介绍,这种理念与PHP、MySQL或是Rails不一样。它是降低软件和工程协作风险的一系列方法。DevOps理念关注的问题主要在于调度、自动化和保持生产流水线更快更好的运行。

  如果你使用了这种开发模式,你会发现无论是在其他部门还是其他公司之间,开发者们都能有良好的团队协作。如果他们通过API与第三方合作,他们会研究对方可能出现的问题。但如果他们与服务器管理员合作,他们只会关心他们需要如何配置以及他们的软件如何安装在服务器上,这样做遗留的问题是很麻烦的。

  6. 代码调错

  Onion’s 首席技术官Michael Greer在关于Web开发者必会技能的问题上给出了一个很好的答案:

  “懒惰”:拒绝两次做同一件事情——写一个脚本或算法来实现

  “懦弱”:经常测试,担心过载和代码影响

  “鲁莽”:经常尝试新鲜事物

  “懦弱”是注意细节的另一种说法。要知道,开发者的生活中百分之九十九是由调错和测试组成的。

  开发者要了解的是,修复应用程序不仅要懂得挑错误代码,还需要出色的解决问题能力。比如,解决用户的发票不能下载的问题,不需要花费一天的时间来开发生成PDF文件的功能,只要简单的将页面设置成可打印即可。有时一条链接比一个星期的编程更能解决问题,而一个只知道写代码的程序员很难想到这样的捷径。

  尽管目前有各种各样的测试工具,但测试对开发者来说依旧是一个奇妙的盲点。开发者应该学会使用单元测试、Selenium、负载测试和像 Xhprof这样的分析工具。还应该学会使用一些性能检测工具,比如NewRelic,这些工具可以帮助你保持应用程序尽量少的占用内存。

  调错也是开发中一个重点环节。因此,开发者们不仅要学会运用调错工具,还要知道如何为一个问题调错——我对Michael Greer的清单做一点关于调错的补充:

  “急躁”:忽略那些无关紧要的问题,将时间用在解决真正的问题上

  以上就是一些基础原则,开发者要学会抓住主要,忽略次要。真正的开发高手不看代码就能找出问题。不幸的是,许多人容易盲目的对一个无关紧要的问题推敲数十小时甚至好几天,解决一个问题也要用同样的方法试验十多次。


  7. 用户需求

  作为开发者,要懂得其他人的真正需求。你可以尽情享受编码带给自己的乐趣,但与此同时要清楚所有的代码都是有用的。

  开发者们需要了解业务、操作和业务流程,这些会有对开发工作很有帮助。只有懂得这些,开发者才可以开发出符合用户要求的产品。一些开发者能显示出不同寻常的生产力,不仅由于他们快速的编码能力和渊博的堆栈知识,更大的原因是他们懂得用户真正的需求。

  回到我最初的观点,现在的开发变得越来越容易,对于开发人员来说市场也变得更有竞争力了。想要更加出色,就要懂得业务需求、开发出让客户满意的产品。因此,开发者应该关注市场。

  懂得数据如何随时间变化。以开发者的角度考虑,这些数据应随着目前流行的或即将流行的技术一起改变。这样看来,当你的客户提出一个新点子时,应该考虑到用户的实际需求,并且提前做好预算。(相反,最坏的情况是,开发者宣称他们的新技术可以解决所有问题。)

  开发者们需要掌握很多方面——比如了解终端数据库的每个领域,如果数据发生改变,客户端会如何显示?有没有更好的方法解决问题?数据库管理员们往往认为,外界对数据库的反映很糟糕,但其实是他们展现给了外界一个很糟糕的数据库。这个世界充满了混乱和不可思议的情况,数据库管理员们一定要学会如何应对。

  8. 绘图和书写

  绘图是最直接的描述事物的途径。开发者们必须有能力将他们的构想在白板、纸上展现出来。

  优秀的开发者要能通过纸上绘制原型图来表述清楚意图。如果开发者只会点头、空口谈论或是只会使用编辑器演示,那么很难取得别人的信任。

  最好的代码从速成的绘画原型开始,多次失败可以让你成功的更快。

  9. 享受乐趣

  如果要你花费数十小时去解决一个问题,你会怎么对待?

  学会享受这种过程——即使这只是一般的工作。作为开发者,最失败的态度就是对团队的工作毫无兴趣。遗憾的是这样的情况很普遍,发生这种情况往往是由于开发者们没有把自己视为团队的一员。(热忱的程序员会使自己“在工作中得到更多的乐趣”,你也可以试试)

  Web和应用程序的开发仍然属于新兴领域,计算机技术的发展需要更多的高级开发者。开发者们不能满足于现状,需要尽快投入到高级开发行列中,提升开发工作的效率。

  10. 保持锐气

  这是我要说的最后一件重要的事情:

  保持锐气,寻求竞争,无论到哪个团队都成为最挑剔的那个。

  团队中最挑剔的、也最惹人讨厌的开发者往往是开发能力最强的角色,而其他人往往满足于现状。如果团队中缺乏这些高要求就很容易造成团队进度缓慢、竞争力下降。提高自身要求是一种很好的习惯。

  开发者们还可以通过工作以外的项目获得更多的经验,并且学会总结在这些项目中得到的反馈和批评。现在得到的批评越多,将来的批评就越少。当有一天你开始对别人提出的要求进行更全面的考虑,那时你就成为了炙手可热的高级开发者了。

  原文地址:10 things web developers must know to become truly amazing

  编译地址:ITEYE

时间: 2024-09-23 04:14:12

优秀Web开发者提升开发能力必知的10件事的相关文章

关于智能对象必知的10件事

  智能对象是Photoshop中的重要功能之一,它是可以保护栅格或者矢量图像原始数据的图层,防止破坏性编辑的重要工具.在最新发布的Photoshop CC中,智能对象工具中新增了"链接智能对象"的功能,当你实用了这一功能的时候,相互链接的多个智能对象中,一个被编辑了,其他的对象也会跟着同步更新,非常实用.接下来,我将为你介绍关于智能对象这一工具的10个特性,也许其中还有一些是你所未曾注意到的. 1.创建智能对象 创建智能对象有许多方法,一般而言,你所采用的创建方式多取决于你创建它的时

网站开发人员应该知道的61件事

有人在Stack Overflow上发问,动手开发网站之前,需要知道哪些事情? 不出意料地,他得到了一大堆回答. 通常情况下,你需要把所有人的发言从头到尾读一遍.但是,Stack Overflow有一个很贴心的设计,它允许在问题下方开设一个wiki区,让所有人共同编辑一个最佳答案.于是,就有了下面这篇文章,一共总结出六个方面共计61条"网站开发须知". 我发现,这种概述性的问题,最适合这种集合群智.头脑风暴式的回答方式了.这也是我第一次觉得,Stack Overflow做到了Wikip

分享下网站开发人员应该知道的61件事_其它综合

不出意料地,他得到了一大堆回答. 通常情况下,你需要把所有人的发言从头到尾读一遍.但是,Stack Overflow有一个很贴心的设计,它允许在问题下方开设一个wiki区,让所有人共同编辑一个最佳答案.于是,就有了下面这篇文章,一共总结出六个方面共计61条"网站开发须知". 我发现,这种概述性的问题,最适合这种集合群智.头脑风暴式的回答方式了.这也是我第一次觉得,Stack Overflow做到了Wikipedia做不到的事.(难怪它最近挤进了全美前400大网站.) 在我的印象中,关于

[转载] Flash开发者需要知道的10件事

来源:http://www.infoq.com/cn/news/2010/02/Flash-ten-things 此前,我们发布的新闻谈到了每个Flex开发者需要知道的10件事,本文将继续这个主题,谈谈每个Flash开发者需要知道的10件事. 近日John Lindquist谈到了在为Roundarch公司招聘Flash/Flex开发人员时的一些感受.他认为最难的地方在于问什么问题才能最好地了解到应聘者的Flash /Flex开发技能.因此,他给出了一个列表并说到:"根据我的经验,通过这个列表能

大规模运行MongoDB应该知道的10件事

MongoDB MongoDB的首席解决方案架构师Asya Kamsky 最近发表了一篇文章,概括了大规模运行MongoDB需要知道的10件事. MongoDB也需要DevOps.MongoDB是一个数据库.和任何其他的数据存储一样,它也需要容量计划.调整.监控和维护.不要因为它很容易安装.入门,同时与关系型数据库相比能够更加自然地满足开发人员的范例就认为MongoDB不需要适当的照顾和喂养.开发时它能在小样本数据集上超快地运行并不意味着你就不需要良好的模式.索引策略以及产品环境所需要的正确的硬

关于电子钱包需要知道的10件事

1月15日消息,据http://www.aliyun.com/zixun/aggregation/16417.html">BusinessInsider网站报道,移动支付和电子钱包正在进入我们的生活的各个方面,但是对于这一新生的事物,人们知道的并不清楚,以下为您盘点关于它需要知道的10件事: 1.在线支付领域的"三巨头" 少数几个公司已经在电子在线支付领域取得领先地位:谷歌.亚马逊和PayPal.现在他们在尝试进军日常生活业务了.谷歌钱包服务允许人们把钱存在手机中,然后

思科全球黄金认证 你需要知道的10件事

欢迎来到Cisco Global Gold! 多年来,思科正在为其合作伙伴计划(Cisco Global Gold)增加新的认证级别. 思科全球黄金认证 你需要知道的10件事 思科全球合作伙伴组织战略.规划与计划高级总监Marc Surplus表示:"世界正在发生变化,支持全球客户变得越来越重要.随着软件作为思科产品组合的一部分逐渐成为常态化,我们开始推动企业协议(ELA),合作伙伴需要在整个客户生命周期中以一致的方式在全球范围内推动部署." 以下总结了思科渠道合作伙伴需要了解的关于新

网站开发人员应该知道的62件事

近日,有人在 Stack Overflow 上发表提问"动手开发网站之前,需要知道哪些事情?",众多人给出了不同的答案,同时所有人根据Stack Overflow问题下面的wiki区对众多答案进行了编辑,总结出62条网站开发人员应该知道的事.Web技术开发者阮一峰 把这62条答案进行了翻译 ,现转载于此,全文如下: 有人在Stack Overflow 上发问,动手开发网站之前,需要知道哪些事情?不出意料地,他得到了一大堆回答. 通常情况下,你需要把所有人的发言从头到尾读一遍.但是,St

安装Ubuntu13.10后必做的10件事

Ubuntu 13.10发布了,而且你已经升级了,然后你想知道现在要做些什么.不要着急,这里有10件安装完Ubuntu 13.10后必做的事. 我们以前为ubuntu每个版本整理了一个安装后核对表,但是因为新功能的到来以及不断的进步,我们建议的步骤也在不断改变和转换. 因此,升级到ubuntu 13.10后最好做哪些事情呢? 1. 加快速度 尽管Ubuntu 13.10相较于之前的发布版包含了较少的面向用户的特征,但是新的Smart scopes服务还是不可错过的. 2. 使用第三方驱动 Ubu