啥是全棧程式設計師?更厲害?更有錢途?

用我的親身經歷,徹底打消你對全棧程式設計師的疑問和誤解

大家好,我是魚皮,我相信學編程的朋友都經常聽到 「全棧」 這樣一個詞,但是你了解什麼是全棧么?

我之前在網上看到太多有關全棧程式設計師的疑問了,甚至還有不少的誤解。那作為一名興趣驅動的全棧程式設計師,我不能忍,趕緊整理了最常見的 十個問題 ,逐一回答,完成了這篇拙作,希望能消除大家對全棧的疑問和誤解。

1. 什麼是全棧工程師?

有些同學可能還不知道全棧是什麼,先介紹一下。

現在的程式設計師有很多方向,前端開發、後端開發、測試、演算法等。其中,以前端和後端最為流行。

顧名思義,前端就是在前面的、用戶能看到和使用的介面。前端程式設計師就是寫這些介面,並且研究如何更高效地寫出更美觀、更穩定、體驗更好、性能更高的頁面。

後端就是躲在後面,幫前端保存和處理數據,默默提供服務的工具人。後端程式設計師就是通過設計和編寫邏輯程式碼來實現功能,並且研究如何讓功能更可用、更穩定、更迅速、更低成本、支援更多人同時用等。

而全棧程式設計師就是全乾,前端、後端、甚至是測試等等啥都能幹,一個人就能獨立完成整個產品!

嗯,我們有個想法,就缺一個全棧程式設計師了。

2. 全棧比其他開發更厲害?

每次跟別人提到我的職業時,別人一聽,卧槽全棧?這麼牛逼!好像全棧程式設計師就比前端、後端程式設計師要厲害的樣子。

其實並沒有 ,每個人的學習時間都是有限的,全棧程式設計師只不過是把時間分成幾份,又學前端又學後端,可能還學點兒產品啥的。這樣做難免精力會分散,在知識的學習深度上通常比不過一門心思做前端或後端的同學。

那為什麼會給大家一種全棧更厲害的錯覺呢?

我覺得主要是以下兩點原因:

  1. 全棧程式設計師相對稀有,物以稀為貴。
  2. 當你朝著一個方向學習時,學的越深,進步就會越難,帶來的提升通常越不明顯。就比如說前端吧,剛開始學習寫頁面、美化樣式時,每學習一個新語法都能讓網頁更豐富。但等你學到後期,比如性能優化,把頁面載入時間從 3 秒變成 2 秒,稍微一點點優化可能就需要很大的研究,但在普通用戶看來,基本和原來沒啥兩樣。當你深入研究完這些,別人可能已經把後台框架都學完了。

3. 全棧程式設計師的工資更高?

當然不是!

和上一點一樣,每個人的時間精力都是有限的,不是說你前後端都會寫點兒,就能 1 個人頂替 2 個人的工作,老闆就給你開更高的工資。工資是由很多因素共同決定的,比如公司、部門、崗位、地域、級別等,當然更重要的是你的個人能力。

就拿我自己來說,雖然我是全棧,但和其他鵝廠同級的小夥伴比起來,工資不會有太大區別,而且前端和後端的薪資也都是有統一標準的,這一點在校招薪水小程式上就能看到。

4. 全棧的工作量更大?加班更多?

當然不是!

還是那句話,你就一個人,學到的知識有限,每天的時間也有限,老闆就算是再省成本也不可能讓你干兩份活,除非他無良並且不考慮項目的上線時間。

但是呢,全棧程式設計師乾的活可能會相對 「雜」 一些,就是因為你啥都能寫點,所以老闆在人員調度時會優先考慮你。

以我自己為例,隔壁組哪個項目前端缺人手啦!好,我來干。哪個項目缺後端啦!好,我來干。這個項目前端忙不過來了,你乾脆一起把前後端都做了吧!好,我特么。

雖然看起來好像啥都做,工作量肯定不小。但是全棧程式設計師負責工作通常更偏向業務,而不是架構,難度和專業性上要比在某一個領域深入鑽研的同學要小一些。

至於是否加班,除了工作分配之外,還是要看自己的工作方法和效率吧。

5. 全棧程式設計師更好找工作?

恰恰相反!

首先,很多有規模的公司是不招全棧程式設計師的,崗位更少。畢竟又不能幹兩份活,為啥不招個更專業的前端和後端打配合呢?

而且,不是說你前端、後端都會點兒就能同時去找前端和後端的工作了。前端和後端在面試中雖然有一些交叉重合的地方,比如電腦基礎知識,但是側重點完全不同!想要兼顧的後果往往就是會越來越迷茫,到最後哪個方向都會翻車。

當然,創業公司是比較喜歡全棧的,畢竟省成本啊!

此外,我們騰訊也有全棧開發方向,對前端和後端都有一定要求,不同的部門也會有不同的側重點。

騰訊校招官網

6. 全棧程式設計師每天都做什麼?

全棧也是開發崗的一種,還能做啥特別的呢,每天也就是跟產品姐姐友好交流、然後設計方案、敲敲程式碼、改改 bug,順便掉幾根頭髮什麼的。

7. 做全棧程式設計師有什麼好處?

從我自己的工作經歷來說,如果你是全棧程式設計師,可能一個需求來了,前端後端都讓你一個人來做,這樣你就不用去跟其他程式設計師 「友好」 交流,能夠減少溝通成本。還有更多自己設計和發揮的空間,一個邏輯放在前端還是後端來寫、怎麼做更方便合理,都由你自己決定。這樣能夠加深你對整個業務和對系統架構的理解,在跟產品或其他同學討論時,有更多的話語權。

還有,假如跟別人合作時,一個前端跟你說:哎呀這塊前端實現比較麻煩,交給你後端來做吧。如果你不了解前端,可能就真的以為前端做很麻煩,就把本應該前端寫的程式碼自己扛下來了。但如果你前端後端都會,就能幫他想到更合理或更方便的實現方式,發現根本沒他說的那麼複雜,可能只是自己不想干,在忽悠你、想甩活而已。

這樣一來,不僅沒有增加你的工作量,還能提升你們的協作效率,推進項目向更合理的架構設計發展。

此外,全棧程式設計師在學習過程中,接受的知識更廣泛,再加上編程的很多知識點相互是有關聯的,所以他們學習新知識時,比如技術框架,有些一看就能聯想到自己學過的知識,從而更快接受和理解,甚至說給個文檔上手就能寫。

8. 我應該成為做全棧么?

我想起來之前,網上有人說學前端好,大家就說了:我要學前端!又有人說後端好,大家就又說了:我要學後端!

就導致很多朋友糾結啊,我特么到底學啥呢?

那我是一名全棧工程師,給大家解釋了全棧後,不知道大家會不會有這個想法:既然當全棧程式設計師有這麼多好處,那我也要做全棧!而且前端和後端我兩個都學,不就不用糾結了?

千萬別這麼想!前端學不會,後端學就廢,一個方向你都學不好呢,還想學多個方向?

是否要成為全棧程式設計師取決於你的個人興趣和時間,而不要跟風,不要因為網上都說全棧啥都學、就是牛逼,你就也跟著信了,結果啥都學了一點,分散了有限的時間精力;再加上還不一定有興趣,就導致啥都沒學好。

當然,如果對其他技術有興趣,可以多學一點,但是,必須要 確定一個深入學習的方向 。畢竟大多數人學編程就是為了找個好工作、多賺錢,別人把所有的時間投入到了一門技術上,你拿什麼去和他們競爭同一崗位呢?

就拿我自己來說,我在剛接觸編程時,我第一次聽到了 」全棧開發「 這個詞,當時我啥都不懂,但不知道為啥,聽到 」全棧「 就感覺很厲害的丫子,然後就勵志要做全棧程式設計師兒。於是大學剛開始啥都學:前端、Java 後端、Python、C++、爬蟲等等,我自以為學的很多了,但是大二暑假找實習時才發現,根本沒有公司需要你會這麼多不同方向的技術!並且我每門技術的水平都很菜,雖然能寫出程式碼,但是遠遠不夠面試的要求。

所以在那之後,我就重點學習 Java 後端,之後的實習和校園招聘求職時也是以 Java 後端方向為主,這才幫助我通過面試,拿到了大廠的 offer。這個期間,我也出於興趣學了很多其他的知識,但都是為了提升我的後端開發水平而服務的,比如網路、雲計算等;之前重點學習的前端也稍微放緩了節奏,更多的是把它當成展示我後端開發效果的工具。

至於為啥我現在的崗位是全棧呢?其實純屬巧合,我面試的是後台開發,後來到了公司才發現竟然是全棧方向,而且啥都干。不過這也和我自己之前持續學習各個方向的知識有關,在工作之後,我也依然是興趣驅動,深入學習 Java 的同時了解各方向知識,不斷擴大自己的視野,持續進步。

短期來看,我建議大家確定一個方向,可以追求技術的多樣性和廣度,但那些都要以你的主方向能學好為前提。貪多嚼不爛,也沒必要給自己太大的壓力。

但長期來看,我認為 每個人都應該做全棧程式設計師 !想要成為技術 Leader,你的知識面就要更廣,視野和格局才能更大。像我現在的 Leader 就是,前端、後端、演算法、產品,都能有自己獨特的見解(要不然手下人偷懶忽悠咋辦)。當然,這個需要時間去積累,也不用每個方向都學得很深,但多學一點總是好的。

9. 成為全棧程式設計師會更難么?

我一個方向都還學不好呢,全棧要同時會前端和後端,肯定很難吧!

其實不然,像上面說的,你可以先專註於一個方向。當你在一個方向學的很深入後,其實自己也已經積累了一套學習方法,也對網上的資訊有了辨識度,這時你再去學其他的方向,就會輕鬆不少。

10. 如何成為一名全棧工程師?

當時我閱讀了不少全棧書籍,比如《全棧工程師的自我修養》。

看著了么多,我認為最重要的是:興趣 + 實踐 + 積累 + 延遲滿足 + 持續學習。

沒有興趣,學什麼都會很累,所以要找到自己編程的樂趣所在。

沒有實踐,都是理論知識,像學英語一樣,能看懂也能寫,但是不會說,就缺失了學編程的意義 —— 技術是要為了業務服務的。

沒有積累,學了就忘,學了前端忘了後端,學了後端忘了前端,怎麼成為全棧呢?

沒有延遲滿足感,在你找到工作之後,很容易安於現狀,直接躺平,怎麼還會想到去學新的方向呢?

當然,最重要的是持續學習,哪怕沒有時間去學新的方向,也可以通過一些公眾號、技術部落格、RSS 等了解其他的知識。

比如關注我的公眾號【程式設計師魚皮】,我自己就是一名全棧程式設計師,也會給大家分享各種方向的編程學習經驗和技術,希望在潛移默化間幫助大家都能成為全棧工程師!


相信自己有能力,那麼你就真的會有!

我是魚皮,原創不易,如果覺得文章還不錯的話,希望朋友們 點贊 支援下,給俺點創作動力。

最近還在開發我的 編程導航//www.code-nav.cn ),一個幫大家找編程資源的項目,歡迎使用!

各種編程資源

我是如何在大學期間通過自學,拿到騰訊、位元組等大廠 offer 的,可以看這篇文章,不再迷茫!

我學電腦的四年,共勉!//t.1yb.co/q0mS