專訪|前端佈道師@張克軍

前言

今天專訪的這位前端,在早讀君剛入行的時候就聽過這個名字,而且也是看着他的博客學習成長的。當初約他做專訪的時候還是會有點小期待的,那麼我們就來看看關於他的前端之旅。

正文從這開始~

自我介紹,以及現在所服務的公司

我是張克軍,一般用名字的拼寫“Kejun”出沒在社區裏。工作在豆瓣。

詳細介紹下自己從事前端的經歷,這過程中你是如何學習的?有沒有遇到瓶頸過,有的話,如何去突破。

我專業是學計算機網絡的,架局域網什麼的。大概98年左右,那段時間混圖書館,看電腦報上介紹用Dreamweaver做動畫, 引起我的興趣。做一個個人網站玩玩吧,於是就這樣上道了。

那時候主要精力是在設計上,那個時代叫“網頁製作”是很準確的,是“製作”,不是“編程”。現在回顧,這種背景決定我最終是產品、設計向的前端工程師,不太可能成長爲語言專家或極客。這個階段大量做網站,自己的、學校的、外包的、參加比賽等等,生活一度小富裕(哈)。另一方面也培養了耐心,做一個東西常常沒有捷徑,忍受過程,享受結果。周圍同學很多不懈學這種低技術含量和需要付出枯燥勞作的東西,而我樂在其中。

02年第一份正式工作是在亞商在線(不存在了)做網頁製作,可能表現出很高的性價比,帶動了學校的就業分配(哈)。直到現在工作上,我也是很看重和追求效率。幹了兩年多去了一家用.net的公司。興趣是很奇怪的東西,總是潛移默化拉着你走,最終還是不喜歡幹後端的工作,05年去了1拍(新浪和雅虎合資的)。

1拍的工程師來自雅虎中國,其中有一位工程師Anson(現在是寶貝樹的CTO)對我影響極大,向我輸入了很多很新的來自雅虎美國的技術資訊,其中有一個是革命性的-Ajax。

05年底雅虎中國被阿里併購,我正式轉到雅虎中國,地理上是從王府井轉到土的多的光華路,但技術上使我與雅虎美國的前端技術更靠近了。雅虎的內部技術交流非常活躍,我在後臺可以看到很多很系統的技術資料。那個時候還是Blog時代,國內的開發者要了解新技術,主要靠國內前端第一批Blogger的搬運,像陳賢安、嗷嗷等。雅虎時期,最直接影響我的人是Hedger,他後來也數次來國內分享,是國內前端界的老朋友。他是用代碼說話的人,滿腦子前端黑魔法,極富個人魅力,直到現在也是我的偶像(哈)。由於算是阿里繫了,跟淘寶關係緊密。那時淘寶前端的負責人是承志(後來蘑菇街的創始人),這傢伙才華橫溢,我們經常一起交流。後來證明他其實是更優秀的產品經理(哈)。

回顧一下這個時期,好比從溝壑上到山峯看到更廣闊的風景,有幸遇到很多極富才華又很nice的人直接影響了我。我覺得對於新人的借鑑是,剛畢業先別急於進高大上的公司,先進一個限制小、能更全面實踐技術的公司,然後,再找一個更大更專業的平臺,跟比自己有才華的人共事。

09年去了豆瓣。豆瓣沒有明確的角色邊界和刻板的流程。前、後端在開發上配合非常緊密。前端工程師做爲一種中間角色,即要有能力彌補設計上的不足,又要會寫一些Python,儘可能獨立解決問題。豆瓣發展到三、四百人時,豆瓣的前端團隊最多也沒超過15人,如果說優秀工程師的生產力是平庸工程師的10倍,沒那麼優秀5倍也夠了(哈)。角色之間的協作效率纔是影響開發效率的主因,通過加人可以解決一時的問題,但慢慢會變得臃腫難以逆轉。我在豆瓣寫的代碼是在雅虎的n倍,參與了很多項目,在這個過程中,有機會與不同優秀工程師合作受益匪淺。學學其它語言有助於建立更多維的編程思想。比如要深刻理解函數式編程,最好學學Haskell。

何時出現瓶頸取決於視野,當看不到發展方向和趨勢時,便會苦於沒有突破。結合我的經歷,有三個明顯結點:

  1. 2005年的Ajax流行。之前更多精力是在CSS重構上,學習標準,積累解決兼容性問題的經驗。Ajax的出現,讓我意識到下一個學習方向是JavaScript。學習OOP、學習如何架構代碼、學習YUI等優秀的框架、追求網站性能等等。當這些方面都涉足後,又會感到碰到天花板了。08年去雅虎美國參加全球前端工程師大會,首次聽Zakas講基於Ant的自動化構建,豁然,回來後很快實踐和分享。

  2. 2010年Node加速發展。Node使前端生態迅速繁榮,通過不斷翻新的工具,彌補標準的滯後和語言設計上的不足,前端開發逐步進入“工程化”開發的時代。各種工具、理念,一下子有點目不暇接。這時候的瓶徑慢慢變成學習方向,應該學什麼?這部分展開可以看這裏。

  3. 2013年PC時代到移動時代。原來的“前端”其實就是瀏覽器。移動時代的“前端”變成多元客戶端。Web方式由必選方案,變成可選方案。工程師必然希望參與一家公司主產品的開發,主產品從PC端轉換到移動端,我應該怎麼辦?曾經想過學Android或iOS開發,解決跨平臺問題,首先要先了解平臺。但如果追隨傳統的native開發,從頭學起,我個人不太能接受。純屬個人偏好,不喜歡傳統native開發方式,一點興趣也沒有。混合開發有侷限性,只能坐等完善。我很驚喜React Native的出現,它不會替代原來的native開發,而是傳統native開發聚焦在相對底層可複用的組件上,應用層用JavaScript寫,看起來這是比較完美的方案。

在所服務的公司中,哪一個公司對你影響最大。爲什麼?

影響最大的是雅虎,提升最大的是豆瓣。現在雅虎沒落了,十年前還是未代王者。技術和設計,特別講究從理念到方法論的體系性。目的是隻要招一個不傻、好學的人,通過這些東西就可以快速培育成符合企業特點的人才。國內的壕公司,這方面做的還不夠。豆瓣是一家追求產品創新的公司,如果個人意願強可以參與各類項目的開發,應用各種新技術也沒什麼限制。這種環境非常有利於工程師成長。從2014年初開始孵化一拍一這個項目,在產品設計、商業方面有了不同程度的經驗的積累,是我想超越工程師侷限獲得的成長。

對剛入門的前端,你有什麼好的建議呢?在技術的深廣度上如何考慮呢?

從前面我的個人經歷出發,建議是:要先耐的住兩三年的菜鳥期(T1),這個階段“廣”最重要,“廣”有兩方面,一是全面掌握CSS/HTML/JavaScript的基礎知識,二是廣泛接收各種技術、思想,儘可能多的實踐,多寫代碼,多有體會。書只是陳述技術是什麼,無法告訴你什麼場景下應該用什麼、怎麼用。然後是成熟期(T2),可以從容的駕馭足夠複雜的項目,這個階段多看代碼比較重要,多做思考和總結。最後是創造期(T3),能造“新輪子”,能攻堅難題。我個人更看重技術在產品上的創新應用。

對你的瞭解,你現在在豆瓣參與了一拍一的項目,按你的理解,前端工程師的職業規劃可以有哪些可能呢?

前端工程師如何發展其實非常不明確。只能說目前有幾種可能性,一是成爲專家,我感覺Hax還沒老過四十吧,有機會跟他聊聊四十歲後有何打算。專家估計會轉型爲團隊Leader,發揮經驗和判斷力。二是成爲極客,超越前面提到的T3,追求T3+或T4。同樣到四十歲後,可以創業、可以帶團隊。三是成爲自由開發者,寫出個爆款App就真正自由了。四是轉行,轉產品經理、轉設計、轉後端皆有可能,取決個人能力。不過沒準哪天公司上市、彩票中獎就不用煩惱職業規劃的問題了。

作爲國內前端的老司機,有哪些圖書值得推薦閱讀的呢?

Zakas的“紅皮書”不錯,不過現要學ES2015/ES.next了。書看的不多,大家可以去搜一搜。

最後你可能還需要看看這篇:【第229期】寫給初學前端工程師的一封信

後語

看完這篇,你有分享或提問的衝動嗎?那麼我們就來聊聊:

情侶是同行?你們覺得利弊在哪裏?爲什麼~~

早讀君期待你們哦~~

點贊數第一名的評論,將獲得@人民郵電出版社異步社區贊助的《編寫可維護的javascript》一本。時間截止到當日22點。

專訪|前端佈道師@張克軍

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章