周五,2010年8月13号, 作者:anutron
编者注: 这篇文章写于2010年作者事变在Cloudera时期,当时node.js还没有盛行,许多人还瞧不上javascript这门大略的剧本,文章提出应当注重JavaScript,并提出成为一名靠谱前端工程应具有哪些才能。虽然年代好像已有些悠远,但文中的一些看法但如今依然实用。
当我尝试为Cloudera招一个JavaScript程序员时,我发明这项使命相称难题。找到一名真正邃晓JavaScript的人异常难题。不过,这也证明了一件异常简朴的事变,是时侯去研讨JavaScript,并成为这个范畴的专家了。过去的几个月,我发明了一些天赋JS程序员并尝试去任命他们。明显他们有异常多的挑选。他们被种种公司的Offer搅扰着。作为一个想招他们进来的人,这让我想起了第一次互联网泡沫时侯的一些事。(我许诺给个中一名侯选人一辆凯迪拉克,但终究没有感动他)。末了他进入了另一家始创型公司。
比较症结的一点是:作为一名JavaScript专家并不能只晓得JavaScript. 假如你想专为一名靠谱的前端工程师 ,你须要在更多方面做得更好一点, 可以这些都没有写在JD内里,最少那些请求表现得没有JS那样凸起。有些东西你只须要相识一下,但别的一些你须要通晓(明显你须要异常通晓JS,假如你想成为一名真正的专家)。 实在,我只是一个普通人,我有博客,其他方面都跟常人体差不多,但当我把跟HR说出我的请求时,HR通知我“这个人基础不存在,你形貌的是一个超人” 我又通知他这是我天天都在干的。 他又对峙说“你真是大神一样的人”
末了能称上JavaScript专家的人,终究须要一些什么手艺,天天终究须要做一些什么事,怎样推断哪些是天赋,哪些是菜鸟,哪些是常人,这是我列的一张清单:
你须要晓得HTML, 你须要异常通晓它。你须要晓得 document types的作用和结果。 你须要晓得纵然你没有写TBODY,浏览器也会自动将他补上。你须要关注浏览器每一次晋级所做的更改。进修这些东西,最少在我这儿你得如许。在你事变的时侯花点时候去研讨下。
你须要相识CSS, 如许你才不至于忏悔。我事变时期遇到的最多的题目就是跨浏览器的CSS兼容题目。一段一样的款式在差别浏览器中显现是不一样的。你添加了一个负的margin-top值去完成排版,猜猜怎样了? 用户永久也点不到这个东西了,只管你加了一个z-index,只管你可以瞥见这个活该的东西。 或许你加了一组可以自动顺应的CSS代码,但你要祷告你的老板没有在IE里去看你的网页。最主要的一点,你要相识CSS,这是最有代价的一项手艺。你不须要异常通晓,但最少能和草图做得如出一辙,不然其他的事就不必提了。
你须要相识浏览器,你须要邃晓在IE浏览器中,假如你把 “” 放到DIV中,IE不会把它转换为DOM元素。但放到header里就可以,由于这东西是只读的。你须要邃晓在Array数组和Object末了加个逗号会让IE失足。你须要邃晓IE里iframes里的元素会有偏移题目。而且并非只要IE会出题目,Firefox在消灭浮动时也会出题目,Chrome里没事。你须要相识最新的webkit那些惊人的特征在手机和safari上面不一定有。
我提过JavaScript吗?我们须要相识JavaScript是怎样事变的,你须要晓得传入要领(function)的参数(arguments)对象是有长度的,而且是可以罗列的, 但它绝不是数组对象,更进一步,你须要晓得怎样将他转换为数组。你须要晓得prototype的事变机制,而且晓得在不借助框架的情况下怎样运用它,而且晓得它的作用和上风是什么。你须要晓得渣滓接纳(garbage collect)什么时侯起作用,这点很主要,另有它什么时侯不事变。你须要异常擅长笼统(abstraction)。你须要异常擅长为你本身和他人设想API。你须要相识怎样测试和治理你的代码。
你须要有像样的设想才能(design): 信息流, 图象设想, 用户体验设想, 代码设想。 你须要能向用户, 客户, 陌生人, 专家(随意什么人)提出准确的题目并有才能去处置惩罚他们的题目。不仅是讲出你的主意,你还要想办法去显现给他们。你须要能操纵Illustrator疾速地把种种框架草图(wireframes)拼出一个计划来,然后你可以到PhotShop中(这个你须要熟练控制)把设想图画出来(visual style)。你不须要成为世界上最好的设想师,我固然也不是。但你要有才能通知他们什么是好的,什么是坏,什么是卓越的设想。假如你能治理好你本身好的设想,你就牛了。
你须要对效劳器端异常自信。实在你并非天天都只是写写JavaScript。大多数前端事变都只须要你花一半的时候来写JavaScript,别的一些时候你须要处置惩罚一些别的相干言语的代码. Python, Ruby, Java, PHP.. 假如你只会一种言语,那基础何足道哉。假如你只会JavaScript和PHP, 你立时会有一些须要用到其他言语的使命(实在这是一个很好进修新事物的时机)。应当会用一种框架,然则只晓得一种的话也不算真正的相识JavaScript.
然后另有许多其他的东西你须要控制。你须要相识Git。Git很牛,我晓得你常常听他人如许说,假如你发明一个保守的人谢绝去学新的学问扩大本身,你须要让他邃晓他的毛病。你须要晓得一些shell剧本。在没有记事本,TextMate或其他编辑器的情况下,你须要可以翻开VI或许Emacs去修正一个设置文件(conf)。你须要晓得怎样去编绎一些东西,怎样去截取一个日记文件,解压一个压缩包(tarball),加密一些东西,开启并设置效劳。你须要有才能去关掉(kill)历程并跟踪调试一个客栈。
我以至算不上一个熟习迅速开辟流程,介入过开源软件项目或宣布新版本的程序员,不过假如你以为你可以婚配我所列出的7条中的5条,或许悉数婚配。那末,祝贺你,你就是传说中的大神。
那末你成为大神后你会获得什么?你怎样晓得多年处置惩罚那些乏味的IE6的BUG是值得的?好吧,你获得的是,你会每周都收到HR的邮件和电话。(这实在并不希奇,他们就像懂你的贩卖)。假如你想换事变的时侯,你以至什么都不必做,通知一小撮朋侪或许发到你的twitter上,然后许多扇门就在你眼前翻开了。你会有些新朋侪,他们愿望你到场他们的奇迹。当你到场时你会成为传说中的元老。你会获得股票,并设想一款产物的最初版本。你会获得一辆1967年的凯迪拉克作为签约的酬劳。在公司刚起步时我曾引诱过如许的家伙。大神是一名还不存在的产物的前端工程师。他指出一两年后这东西值许多美圆,然后多年今后,他可以通知他人,“这是我做的”。如今已有如许的一些人了,像已有没有数人运用的Twitter, Facebook, Gamil和Google Maps,像Iphone的界面,Github, YouTube,一定有人说,“这是我做的”。
这个人可以就是你。
原文:Why It’s a Good Idea to Be a JavaScript Developer, and What it Takes to Be One
翻译转载自:OurJS