摘要:當我嘗試為招一個程序員時,我發現這項任務相當艱巨。我承諾給其中一位侯選人一輛凱迪拉克,但最終沒有打動他。你會得到一輛年的凱迪拉克作為簽約的報酬。大神是一名還不存在的產品的前端工程師。
周五,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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77974.html
摘要:我認為提出正確的問題和定義問題陳述是許多數據科學初學者包括我面臨的一項挑戰。在本文中,我將與你分享作為數據科學家,該如何提出正確問題并定義問題陳述。我們的任務是幫助他們將問題構建成數據科學問題,從他們的角度看問題。 showImg(https://segmentfault.com/img/bVbnjxm?w=900&h=600);作者 | Admond Lee翻譯 | MikaCDA ...
摘要:個高級多線程面試題及回答后端掘金在任何面試當中多線程和并發方面的問題都是必不可少的一部分。目前在生產環基于的技術問答網站系統實現后端掘金這一篇博客將詳細介紹一個基于的問答網站的實現,有詳細的代碼。 15 個高級 Java 多線程面試題及回答 - 后端 - 掘金在任何Java面試當中多線程和并發方面的問題都是必不可少的一部分。如果你想獲得任何股票投資銀行的前臺資訊職位,那么你應該準備很多...
摘要:個高級多線程面試題及回答后端掘金在任何面試當中多線程和并發方面的問題都是必不可少的一部分。目前在生產環基于的技術問答網站系統實現后端掘金這一篇博客將詳細介紹一個基于的問答網站的實現,有詳細的代碼。 15 個高級 Java 多線程面試題及回答 - 后端 - 掘金在任何Java面試當中多線程和并發方面的問題都是必不可少的一部分。如果你想獲得任何股票投資銀行的前臺資訊職位,那么你應該準備很多...
閱讀 2436·2019-08-30 15:52
閱讀 2237·2019-08-30 12:51
閱讀 2832·2019-08-29 18:41
閱讀 2812·2019-08-29 17:04
閱讀 810·2019-08-29 15:11
閱讀 1719·2019-08-28 18:02
閱讀 3602·2019-08-26 10:22
閱讀 2510·2019-08-26 10:12