從成長角度看,前端工程師應該去大公司還是小公司?

6 月 20 日,極客大學與 GMTC 全球大前端技術大會共同組織了一次晚場活動——前端夜話。活動邀請到了前端大咖 winter、百姓網技術顧問賀師俊(Hax)、Swift 大神王巍(喵神)、《CSS 世界》作者張鑫旭、阿里前端技術專家狼叔等 5 位前端大牛,聊聊前端工程師的成長和發展,分享一些前端人關心的話題。以下內容整理自五位講師的分享。

winter:談談框架選型

桑世龍(狼叔):當你對框架了解夠多時,技術選型會更加容易

Node 裏面有很多 Web 框架,研究裏面的東西樂趣非常多。當你瞭解足夠多的時候,你技術選型的點更加容易。

王巍(喵神):選型要看周圍工程師的水平,以及整個公司的技術棧積累

Line 相當於日本的微信,主體的 APP 項目是比較大也比較老了,他們的選型可能會有更復雜的流程。周邊的很小的項目,技術選型這方面基本就是幾個工程師湊在一起,大傢俬底下商量商量,稍微資深一點、見多識廣的來拍板。小公司給你試錯的風險比較大,機會比較少,可能走錯一步就涼了;而大公司好一些,走錯一步我們換個方向再走一步。雖然是這樣說,但是技術的選型並不是越激進越好,還是要看周圍工程師的水平,以及整個公司現在積累的一些技術棧。

賀師俊(HAX):框架選型時可能有一些是商業上的決策反過來約束你的技術範圍決策

框架選型時可能有一些是商業上的決策反過來約束你的技術範圍決策。那麼高級架構師怎麼做呢?除了技術,還要考慮業務的需求。架構師很多時候考慮的是約束在哪裏,這需要對技術、對業務都有很強理解,同時還要考慮團隊的問題,要衡量現有人員架構下,大家的學習能力和團隊,是不是能夠做這樣一個方案。所以選型這個事情比較複雜的,很難用一兩句話講清楚,很多時候是要拿 Case 來看。

大公司和小公司也有不一樣。比如 Web 前端選型,可能不同框架完成你的需求都是可以的,但區別是,它的學習曲線或者說整個生態的情況會有不一樣,這就需要根據情況選擇了。在大公司裏面,學習曲線、配套的生態就都不是問題,大公司會對這些事情做足夠的投資,這也是大公司好處,相對比小公司來講,大公司可以選一個再嘗試一個。我甚至可以有幾個團隊分別有幾個棧都沒問題。

我個人還是比較傾向於 Vue,Vue 也是國際化的,並不存在中國人做的東西就一定不好,整體的工程水平完全是可以的,你有任何問題在中國可以得到更多支持,也可以得到比較好的資源。還有一個非常重要的特點,像 React 後面有大公司支持,主導權一定在公司,Vue 背後不是大公司支持主導,它是社區的東西。我作爲高級架構師要去考慮的技術之外的因素就是,我這上面投入非常大資源的時候,是不是能夠獲得足夠的參與的權利。從這方面來看我覺得 Vue 是更好的選擇。

前端人的成長離不開與優秀的同伴共同交流,你可以加入我們的“前端技術交流羣”,社羣內會經常討論前端相關的技術、分享免費學習資料,我們也會邀請前端專家進行社羣分享、直播、公開課等活動,winter 就在羣裏哦!如果你感興趣,歡迎添加社羣管理員微信 GeekUni004,回覆“前端羣”申請入羣。

winter:怎麼看全棧?

桑世龍(狼叔):全棧是一種追求,一種解決問題的能力

我的經歷比較雜。我創建了一個公衆號—— Node 全棧,以 JavaScript 爲核心統一前端和後端。當時覺得,如果我能用 JavaScript 做後端、前端,就可以稱之爲全棧。但是隨着時間推移,我慢慢覺得,全棧更多是一種追求,一種解決問題的能力。

舉個例子:以前在某廠,產品提了需求,後端說不能實現。產品非常想做,就跟我們聊,我們把 SQL 怎麼寫交給後端的同學,他就不說話了,後來再有什麼需求都接。

所以說,你瞭解越多,能做的事情越多。今天我們都是大前端,把所有端都涵蓋了,在大前端選擇什麼方向,這是全棧能夠給我們提供的一個很好的選擇視角,只有瞭解足夠多,才能做出更正確的選擇,所以我非常支持全棧。

王巍(喵神):公司規模不同,對全棧的需求不同

在 BAT、美團這樣的公司裏,可能並不需要你是全棧程序員。團隊中每個人必須紮根在自己的技術棧,做到細緻、完美,才能做出比較好的產品,相對來說這樣的公司對於全棧的要求並沒有那麼高,但對某個領域專深的要求比較高。小公司會有截然相反的需求,開發者資源有限,如果一個開發者能夠統籌全局,對各個方面都有一些瞭解,可能會對公司發展比較好,這個需要看各位所處在公司的環境需求。

對個人來說,我想法跟狼叔差不多,全棧是代表你學習能力,不一定是不全棧沒辦法過下去了,或者不全棧你就沒有價值了。但全棧給你一種能力,你可以一個人獨自做完整的設計、實現、運維上線,對你自己的技術提升會是非常好的一個飛躍。

賀師俊(HAX):是否全棧,是跟我們自己最後內心想要做的事情相關的

一類工程師的內心驅動力是“要做一個世界級的產品”,那很可能你比較適合全棧的方向。因爲你的目標是做產品,能夠從前到後掌控的越多越好,不但是技術,包括設計、運維、運營、市場。另一類工程師內心驅動力是“解決一個世界級的難題”,這個可能是最高的一個目標了,這可能就不一定適合走全棧的方向,因爲你可能更希望做一個專家型,在一個特定領域技術鑽研下去,成爲專家的發展的道路。當然也有一些人是兩者兼具的,但是這樣的人是非常少的。

補充一點,我們前端有很大優勢做全棧。偏向後端的工程師,如果往全棧發展,很可能需要學習一個新技術,因爲你選擇的後端是其他語言,前端要學的東西可能不太一樣。但如果你從前端入手,不管你是用 JS 或是 Swift,現在都可以。所以,你往前端方向多發展一點,將來不管做不做全棧都一定有比較大的優勢。

winter:從成長角度看,前端工程師是應該去大公司還是小公司?

張鑫旭:大公司小公司都有各自的好處

我剛開始工作是在一家小公司,沒有很多會議、彙報、KPI 績效考覈,不用展示工作成果,我可以全心全意學習技術,只需要安心把工作幹好,所以前期對我技術成長非常有幫助。去大公司則學到不一樣的東西,你可以看到一個產品如何協作、迭代,慢慢壯大發展,如果以後創業,這種對你非常有幫助。另外小公司可能很多作風和習慣比較野生。我第二份工作是在騰訊,剛去騰訊的時候,沒意識到我之前很多做法非常野生,經過大團隊的協作,意識到原來自己以前那樣是不足的。

王巍(喵神):如果去小公司,要看小公司的管理層是否優秀

小公司相對來說一個好處是沒有很多繁瑣的流程,而且你可能很容易每天跟 CEO 打一個招呼見面,跟 CTO 一起吃飯聊天。如果小公司團隊管理層非常棒、非常強,這對你的成長有很大的好處。相對大一點的公司,流程方面會非常正規,這樣對你的工程師的素養塑造很有好處。大公司鍛鍊一段時間以後,如果你想創業或是回到小公司,這些素養可以幫助你做得很棒。

桑世龍(狼叔):掌握學習能力,大公司、小公司都去做一些,誰知道哪一天會不會去創業呢?

我可能是換公司換的最勤的,十年差不多十個。對我來說,想到一個地方工作,最主要的動力是要把那裏的東西學到。所以大公司、小公司我都去,包括自己創業,從 0 開始組建團隊,都有經歷過。對我來說,閒時要有吃緊的心思,忙裏要有偷閒的樂趣。更多的時候是把時間利用好,不斷自己成長。

但是小公司跟大公司還是區別的。小公司是什麼都幹,比如在天津當 CTO 的時候,前端要寫、後端要寫、數據庫要自己管、服務器要自己維護,產品不行、設計不行要自己上,運營沒有人做我也要上,這很鍛鍊人。那個時候非常窮,創業連底薪都沒有,真的是情懷。

到大公司發現不一樣,格局、眼界的收穫非常難得。在阿里,去年扛了大文娛的雙十一,那個緊張勁兒是不一樣的,對於業務各種部門之間的協調、產研,甚至鬥爭經驗都能夠提升非常多。以俯視的視角看一些事情,業務角度的大局觀不是小公司能夠鍛鍊得到的。所以還是掌握學習能力更重要,大公司、小公司都去做一些,誰知道哪一天會不會去創業呢?也可能當一個沒有薪水的 CTO 呢?

賀師俊(HAX):要有規劃,你去這家公司想要得到什麼?

第一點,大公司和小公司是有區別,但是不同的大公司之間、不同的小公司之間也有很大的不同。比如,可能有的小公司,沒有大公司的命,得了大公司的病,200 人的規模已經跟 2000 人的公司一樣有複雜的官僚。不同的公司規模一樣,但內部卻會有不一樣的地方,所以還是要看具體的公司,有可能這個公司比那個規模小,但他有很多大公司的毛病。

第二點,最好大公司、小公司都去感受一下。我運氣比較好,大公司小公司都經歷過,而且都是比較好的。但現在這個年紀我回頭看,覺得大家還是要有一個規劃會比較好,你去這家公司想要得到什麼?這個是你去的時候要想一想的,如果你到那裏發現跟你想得不一樣,也許你要快點調轉方向了。

舉個例子:我之前在百姓網,去的時候有 50 人,現在是 200 人,最多算小型公司到中型公司轉變。他一直保持前面各位講的優點,CEO 可以直接見到,可以跟他聊很多東西。我去百姓網時也可以選擇去 BAT 級別的公司,我爲什麼選了百姓網?因爲當時有一個想法,有一些技術架構上的東西想要驗證,抱着這樣目的我選擇了相對小的公司。在大公司,他可能已經完全成熟了,你能夠改變他的東西非常少。

我現在去了 360,相對來講是一個大公司,有很多事情是只有在大公司才能做的。有些東西在小公司可能是一個沒有用的屠龍之計,只有在很大平臺上才能發揮價值,所以成長到這個階段,你就要選擇適合你的平臺。

winter:目前所謂的經濟寒冬和裁員潮,你們覺得會不會對大家的工作、求職、就業有一些影響?我們應該做什麼?

張鑫旭:對於熱愛學習的人來說是沒有任何壓力的

我覺得經濟寒冬對於在座的這麼多熱愛學習的人講肯定沒有任何壓力的。那些寒冬只會影響那些不來參會的人,不愛學習的,平時不注意內功修煉,學點皮毛的。

桑世龍(狼叔):最重要的是能看清行業後面的發展方向

其實對於我們來說,最重要你能看清楚行業後面的發展方向。從 2013 年之後,大前端屬於爆炸性增長,到 2017 年基本開始趨於穩定了,現在新的框架特性沒有那麼多了。前端後面會越來越廣闊,再往後走,前端能做更多後端的活兒。前端行業在變,整個世界在變,只有不斷增加端上的各種應用,對我們來說這是非常好的事,只要我們堅持不斷學,不至於說被落下、被時代拋棄就好了。

王巍(喵神):成爲多面手,選擇順應時代潮流的車道

國內從去年年底開始經濟寒冬,我在國外感觸不是特別深,所以沒有太多的發言權。日本這個地方相對來說更穩定一些,公司也不能隨便就把你開排掉,僱傭是終身制的。但是如果你的公司有困難,可能會把你排擠到邊緣部門,沒有什麼活兒幹。雖然大家可能覺得沒什麼活兒幹挺好的,看報紙、喝茶什麼的,但應該是沒有人想過那樣的生活。爲了避免這種情況發生,要不停的學習,不管是你在某一個方面能夠精深下去成爲專家,或者能夠當一個多面手,只要做得出色,我相信最後找到一條出路是沒有問題的。

還有另外一個比較重要的問題就是,大家在看一個技術的時候需要逐漸培養對一個技術方向的預判的能力,比如說如果你從頭到尾還是做塞班,不管你怎麼樣,它都寒冬了。該轉型、該選車道時,我們一定要果斷選擇符合時代潮流的車道,不要逆行。

winter:關於面試大家有什麼可以分享的?

張鑫旭:展示最真實的自己

一定要展示最真實的自己,千萬不能說這家公司喜歡這種類型,就僞裝或者是表現成這樣。過度包裝自己反而不好,就算自己包裝自己,進入公司後發現做的事情跟你不匹配,對公司和對你都不太好。

桑世龍(狼叔):面試即學習、給自己創造場景

面試的時候也能提高你技能點,有時候在某一方面可能沒有那麼厲害,但是在你不斷的面試過程中能夠提高,也是非常難得的。可能剛開始面試你碰了很多壁,但是慢慢發現自己的技能、能力都上來的時候,想進哪一個公司進哪一個公司。另外,你要能夠給自己創造這種機會,比如我以前是做 iOS,要寫 Node 哪兒來的精力?這個更多要給自己創造機會,比如說做一些開源項目,參與翻譯,寫書,都是非常好的學習方式,這也是非常重要的能力。

王巍(喵神):注重學習能力、交流能力

我個人來說當面試者經驗是比較少的,但是我當面試官的經驗比較多。我主要是看人的學習能力是不是強,是不是能夠適應這個團隊,是不是能夠進很快的掌握新的技術棧。學習能力並不是一兩眼或者幾句話能夠套出來和看出來的,那這個怎麼看呢?是看你的交流能力。平時大家比較忙,但是一定要抽出時間,不管是小組內部做分享,還是跟你的同事每天溝通,都可以思考一下怎麼說話,怎麼把自己的心意和感情表達出來,這樣在面試的時候也會有一些幫助。

賀師俊(HAX):面試和溝通都要真誠

首先自身的基礎、技術要不斷學習,本領過硬一定是沒有特別大的問題。我認爲最重要的事情是什麼?應該是面試或者任何技術方面的溝通,都要真誠。我認爲做技術就要踏實、真誠,是一就是一,沒有那麼多虛的。即使這次面試因爲真實的表述,讓面試官覺得你不符合當時的崗位要求,也沒有關係,因爲我們都在這個行業裏,總會有新的機會。

很多時候作爲面試官也會考慮,這個崗位不適合,但這個人有別的亮點,可能就會推薦其他崗位,甚至推薦其他公司。所以我覺得真誠這一點是比較重要的,它能減少面試官和麪試者之間的隔閡、摩擦、阻力。

程劭非(winter):坦誠、努力、明白面試官的目的

首先,面試坦誠、真誠是溝通的一個基礎,如果你有一些虛假的成分,面試官 95% 都是可以把你的僞裝拆掉的,而且拆掉的過程可能非常的不愉快。比如說,有的人喜歡在簡歷上寫“學習能力強”,這可能是因爲沒有別的可寫了,其實這個事情特別容易被拆穿。

既然你說學習能力強,那一般我會問一下最近學了什麼東西,給我講一講。這個時候有一些應聘者就開始造假,比如說“我最近看了一些函數式的編程的東西”,我說你用函數式編程給我寫一個代碼看看,然後可能這個話題到這裏就結束了。

第二點,在坦誠的基礎上,也要爲自己簡歷上的每一條有意識的做一些努力,比如不一定是公司的項目纔可以寫在簡歷上,你參與的開源項目也可以,開源項目沒有做,那像鑫旭寫個博客也可以。其實你寫一些博客,總結一些知識也是非常好的展示自己的機會。

我們很多人都是通過博客認識張鑫旭的,如果你博客也沒有寫,你甚至可以把自己對技術的理解寫在簡歷上,展示自己。我第一次找工作的時候幹過,當時投微軟的簡歷我用 500 多字寫了我認爲應該怎麼學 C++、我怎麼理解,那個簡歷就命中了,後來跟招聘主管聊這個事,主管說其實那個東西沒有什麼用,沒有太看,但是發現這個人寫了這麼多。

還有一個案例,微博 HR 的老大曬了一篇簡歷,那篇簡歷做了一個腦圖,各種顏色,寫微博的業務應該怎麼發展。其實裏面觀點很幼稚,但是能看出他很認真,所以當時他就進了微博,而且據說這個產品經理髮展還不錯。

第三點,你要學習一下面試官的問題到底想問什麼?比如,我運營的同事說他會問:你看過什麼電影?有的應聘者很放鬆的說喜歡看《大聖歸來》,再問他爲什麼喜歡看,他說:追女生。其實你們可以想想面試官爲什麼問你這個問題?明顯是想通過電影,知道你的審美,知道你的品味,而不是跟你閒聊。面試官的問題都是有目的性的,都是設計好的,不會隨口問。

「Tips:我個人的面試風格是高壓式,我態度很好,但問題會讓你壓力很大,而且我有一個特別的習慣:不管什麼人面試,如果我特別滿意,這個人我想要了,我最後一定問一個問題讓你感覺答不出來,所以參加我的面試,通過的一般體驗不好,不通過反而最後閒聊挺開心。」

winter:有什麼學習方法或者書可以給大家推薦一下?

桑世龍(狼叔):學習有三個境界

學習有三個境界:一是的最簡單的跟書學;第二境界是跟人學,比如說跟賀老、跟 winter 學,你怎麼從他身上把東西學走這是本事;第三是自己悟,比如像鑫旭老師,積累那麼多的博客,寫出了《CSS 世界》。

賀師俊(HAX):要有一個自學的能力

今天的學習條件已經比當年好很多很多了,不管書也好,視頻也好,課程也好,都可以,我覺得最後你還是要有一個自學的能力,你要有一個消化的過程。這是個什麼樣的過程呢?比如看書的時候,你可以寫一些讀書筆記,再下一步提煉出來可以寫 Blog。再往下還可以做翻譯,一些國外的文章可以翻譯過來,在翻譯過程當中,也可以吸收知識。當然再下一步也可以寫書或者是課程。

程劭非(winter):前端工程師要學習的是如何提升自己的能力

前端工程師要學習和成長的,我個人的觀點是能力佔 80%,知識只佔 20%,所以你掌握了知識還遠遠不夠,更重要的是快速提升自己的能力。這裏的能力是指編程能力、架構能力和工程能力。

編程能力是用代碼解決問題的能力。你編程能力越強,就能解決越複雜的問題,細分又有調試、算法、數據結構、操作系統原理等基礎的支撐,你才能解決各種麻煩的問題。

架構能力是掌控複雜系統的能力。當一個系統足夠複雜,你會寫每一塊、能解決每一個問題,不等於你能搞定整個系統,這就需要架構能力。架構能力包含了一些意識,比如解耦、接口隔離,也包含認識業務建立抽象模型,也有一些常見的模式,比如經典的 MVC,還有設計層面,比如面向對象、設計模式等。

工程能力,其實核心就是成事的能力。你要知道,當系統規模越來越大時,光靠你一個人是沒辦法完成的。那如何保證幾個高手互相能夠配合好?如何保證項目裏面水平最差的人不拖後腿?工程化建設,往往會跨越多個業務,包括前後端解耦、模塊化、質量保證、代碼風格等。

當然要提升這些能力,肯定需要找到一個合適的方法並持續地練習,最好在練習的過程中還能得到監督和反饋。

極客大學前端訓練營邀請 winter,帶你用 3 個月時間通過從 0 實現 3 個項目,全面提升你的編程、架構和工程能力。通過刻意的練習和手把手的輔導,幫你感受大廠前端工程化實踐過程,提升你的核心能力。如果你想了解詳細的課程內容或者試聽課程,可以掃描下圖的二維碼聯繫學習委員,獲取視頻課及前端學習資料。

前端訓練營的受衆是具備一定基礎前端技能和經驗但困於初級崗位的前端開發工程師,如果你正在這樣的狀態中掙扎,歡迎來戰,突破瓶頸,就在前端訓練營。

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