原帖:http://www.kuqin.com/shuoit/20140925/342303.html
小编: 这篇文章写于2010年作者工作在Cloudera期间,当时node.js还没有流行,很多人还瞧不上javascript这门简陋的脚本,文章提出应该重视JavaScript,并提出成为一名靠谱前端工程应具备哪些能力。虽然年代似乎已经有些遥远,但文中的一些观点但现在仍然适用。
当我尝试为Cloudera招一个JavaScript程序员时,我发现这项任务相当艰巨。找到一名真正理解JavaScript的人非常困难。不过,这也证明了一件非常简单的事情,是时侯去研究JavaScript,并成为这个领域的专家了。过去的几个月,我发现了一些天才JS程序员并尝试去录用他们。显然他们有非常多的选择。他们被各种公司的Offer困扰着。作为一个想招他们进来的人,这让我想起了第一次互联网泡沫时侯的一些事。(我承诺给其中一位侯选人一辆凯迪拉克,但最终没有打动他)。最后他进入了另一家初创型公司。
比较关键的一点是:作为一名JavaScript专家并不能只知道JavaScript. 如果你想专为一名靠谱的前端工程师 ,你需要在更多方面做得更好一点, 可能这些都没有写在JD里面,至少那些要求表现得没有JS那样突出。有些东西你只需要了解一下,但另外一些你需要精通(显然你需要非常精通JS,如果你想成为一名真正的专家)。 其实,我只是一个普通人,我有博客,其他方面都跟一般人体差不多,但当我把跟HR说出我的要求时,HR告诉我“这个人根本不存在,你描述的是一个超人” 我又告诉他这是我每天都在干的。 他又坚持说“你真是大神一样的人”
最后能称上JavaScript专家的人,终究需要一些什么技术,每天究竟需要做一些什么事,怎么判断哪些是天才,哪些是菜鸟,哪些是一般人,这是我列的一张清单:
1. 你需要知道HTML, 你需要非常精通它。你需要知道 document types的作用和效果。 你需要知道即使你没有写TBODY,浏览器也会自动将他补上。你需要关注浏览器每一次升级所做的变动。学习这些东西,至少在我这儿你得这样。在你工作的时侯花点时间去研究下。
2. 你需要了解CSS, 这样你才不至于后悔。我工作期间碰到的最多的问题就是跨浏览器的CSS兼容问题。一段同样的样式在不同浏览器中显示是不一样的。你添加了一个负的margin-top值去实现排版,猜猜怎么了? 用户永远也点不到这个东西了,尽管你加了一个z-index,尽管你可以看见这个该死的东西。 或者你加了一组可以自动适应的CSS代码,但你要祈祷你的老板没有在IE里去看你的网页。最重要的一点,你要了解CSS,这是最有价值的一项技术。你不需要非常精通,但至少能和草图做得一模一样,否则其他的事就不用提了。
3. 你需要了解浏览器,你需要明白在IE浏览器中,如果你把 “” 放到DIV中,IE不会把它转换为DOM元素。但放到header里就可以,因为这东西是只读的。你需要明白在Array数组和Object最后加个逗号会让IE出错。你需要明白IE里iframes里的元素会有偏移问题。而且并不是只有IE会出问题,Firefox在清除浮动时也会出问题,Chrome里没事。你需要了解最新的webkit那些惊人的特性在手机和safari上面不一定有。
4. 我提过JavaScript吗?我们需要了解JavaScript是怎样工作的,你需要知道传入方法(function)的参数(arguments)对象是有长度的,而且是可以枚举的, 但它绝不是数组对象,更进一步,你需要知道如何将他转换为数组。你需要知道prototype的工作机制,并且知道在不借助框架的情况下如何使用它,并且知道它的作用和优势是什么。你需要知道垃圾回收(garbage collect)什么时侯起作用,这点很重要,还有它什么时侯不工作。你需要非常善长抽象(abstraction)。你需要非常善于为你自己和别人设计API。你需要了解怎样测试和管理你的代码。
5. 你需要有像样的设计能力(design): 信息流, 图像设计, 用户体验设计, 代码设计。 你需要能向用户, 客户, 陌生人, 专家(随便什么人)提出正确的问题并有能力去解决他们的问题。不仅是讲出你的想法,你还要想办法去呈现给他们。你需要能操作Illustrator快速地把各种框架草图(wireframes)拼出一个方案来,然后你可以到PhotShop中(这个你需要熟练掌握)把设计图画出来(visual style)。你不需要成为世界上最好的设计师,我当然也不是。但你要有能力告诉他们什么是好的,什么是坏,什么是杰出的设计。如果你能管理好你自己好的设计,你就牛了。
6. 你需要对服务器端非常自信。其实你并不是每天都只是写写JavaScript。大多数前端工作都只需要你花一半的时间来写JavaScript,另外一些时间你需要处理一些其它相关语言的代码. Python, Ruby, Java, PHP.. 如果你只会一种语言,那根本不值一提。如果你只会JavaScript和PHP, 你马上会有一些需要用到其他语言的任务(其实这是一个很好学习新事物的机会)。应该会用一种框架,但是只知道一种的话也不算真正的了解JavaScript.
7. 然后还有许多其他的东西你需要掌握。你需要了解Git。Git很牛,我知道你经常听别人这样说,如果你发现一个保守的人拒绝去学新的知识扩展自己,你需要让他明白他的错误。你需要知道一些shell脚本。在没有记事本,TextMate或其他编辑器的情况下,你需要能够打开VI或者Emacs去修改一个配置文件(conf)。你需要知道怎么去编绎一些东西,怎么样去截取一个日志文件,解压一个压缩包(tarball),加密一些东西,开启并配置服务。你需要有能力去关掉(kill)进程并跟踪调试一个堆栈。
我甚至算不上一个熟悉敏捷开发流程,参与过开源软件项目或发布新版本的程序员,不过如果你认为你能够匹配我所列出的7条中的5条,或者全部匹配。那么,恭喜你,你就是传说中的大神。
那么你成为大神后你会得到什么?你怎么知道多年处理那些乏味的IE6的BUG是值得的?好吧,你得到的是,你会每周都收到HR的邮件和电话。(这其实并不稀奇,他们就像懂你的销售)。如果你想换工作的时侯,你甚至什么都不用做,告诉一小搓朋友或者发到你的twitter上,然后很多扇门就在你面前打开了。你会有些新朋友,他们希望你加入他们的事业。当你加入时你会成为传说中的元老。你会得到股票,并设计一款产品的最初版本。你会得到一辆1967年的凯迪拉克作为签约的报酬。在公司刚起步时我曾经诱惑过这样的家伙。大神是一名还不存在的产品的前端工程师。他指出一两年后这东西值很多美元,然后多年以后,他可以告诉别人,“这是我做的”。现在已经有这样的一些人了,像已经有无数人使用的Twitter, Facebook, Gamil和Google Maps,像Iphone的界面,Github, YouTube,肯定有人说,“这是我做的”。
相关推荐
【坚持做一个傻瓜!】 《程序员的呐喊》的作者是业界知名的程序员——来自Google的Steve Yegge,他写过很多颇富争议的文章,其中有不少就收录在本书中。《程序员的呐喊》是他的精彩文章的合集。 《程序员的呐喊》...
《程序员接单宝典(第三版)》是针对程序员自由职业者或想要拓宽收入来源的开发者量身定制的一本指南。这本书旨在帮助程序员更高效、更专业地进行接单工作,提升自己的市场竞争力。标签“程序员接单”和“接单宝典”...
### 靠谱软件测试工程师必备抓包神器Fiddler教程 #### 一、Fiddler简介 **Fiddler**是一款强大且易用的Web调试工具,它可以帮助软件测试工程师记录并监视客户端与服务器之间的HTTP及HTTPS请求,提供了一个灵活的...
用户仅需下载一个名为"KaoPuWechatSetup-v1.0.0176-Website.exe"的安装文件,这个文件是靠谱助手的最新版本,版本号为1.0.0176,包含了对微信的支持。安装程序会一步一步地引导用户完成整个安装过程,直至软件在用户...
通过谦逊、感恩、忠诚和责任的表现,以及在面试过程中提出有见地的问题,你将能够有效地向面试官证明自己是一个既热忱又靠谱的程序员候选人。记住,面试官寻找的不仅是聪明的头脑,更是那些能够在团队中发挥稳定作用...
面试总结js 靠谱靠谱靠谱.md
【靠谱助手1.4】是一款深受用户喜爱的电脑模拟器软件,它专为喜欢在电脑上体验手机游戏的用户设计。这款工具的核心功能是将移动游戏无缝移植到个人计算机上,让用户无需消耗手机流量,就能在大屏幕上畅享游戏乐趣。...
面对困难,我们不应退缩,而应视其为成长的机会,因为只有在克服困难的过程中,我们才能真正磨炼自己,成为一个更靠谱的人。 再者,拥有使命感和远大的理想也是成为靠谱人的关键。一个有使命感的人,他的工作不仅仅...
因此,掌握如何撰写一份能让程序员感到愉悦并易于理解的需求文档,对于提升整个开发流程的效率至关重要。 首先,产品简介是需求文档的起点,它应该清晰地描述产品的使用价值、目标用户群体以及产品将被使用的具体...
安卓模拟器社区(靠谱社区)是中国最大的安卓模拟器交流论坛,下载靠谱助手安卓模拟器可在PC电脑上极速运行安卓手游和应用。最全手机游戏电脑版攻略心得!
### 建设一个靠谱的火车票网上订购系统——关键技术解析 #### 一、背景介绍 随着信息技术的发展,网络已成为人们生活中不可或缺的一部分。特别是在中国这样一个庞大的国家,每年春节期间都会有数以亿计的人口流动,...
23. 当使用setValue:forKey:方法时,需要使用正确的键名,无论是foo还是_foo,都必须和对象中定义的键名匹配。 24. KVC的keyPath中的集合运算符可以进行数组和集合的操作,例如 @"@unionOfObjects"。 25. KVC和KVO...
【构建靠谱团队】是IT行业中一个至关重要的主题,无论是在软件开发、项目管理还是技术支持等领域,拥有一支高效且可靠的团队都是成功的关键。本篇主要探讨如何构建并维护这样的团队,尤其是在技术领域。 首先,我们...
读《马克思靠谱》心得.pdf
靠谱助手安卓PC模拟器
靠谱手机安卓应用助手,海量应用随便下载,实用、好用。
读《马克思靠谱》心得参考.doc
标题"2019商场“不靠谱”菜馆主题活动策划方案【餐饮】【活动策划】.rar"表明这是一个关于2019年在商场内针对一家名为“不靠谱”菜馆的特殊主题活动的策划方案。该方案可能包含了一系列创新的营销策略和活动设计,...
同时,工具应提供安全的文件处理方式,避免在操作过程中造成数据丢失。 5. 使用注意事项: - 在切割前,确保目标存储设备有足够的空间容纳分割后的文件。 - 分割过程中不要关闭电源或强制退出程序,以免损坏文件。 ...
靠谱助手是一款专业的第三方智安卓模拟器管理软件,软件由靠谱社区推出,目前支持bluestacks安卓模拟器,是国内最完美的PC端管理软件以及最大用户群体的安卓模拟器管理软件。软件支持安卓的APP资源搜索、下载、APP...