成為全棧工程師一般的學(xué)習(xí)路徑是怎樣的?
補(bǔ)充一下Full Stack Developer的定義和標(biāo)準(zhǔn):What is a Full Stack developer?,這樣大家討論怎樣成為Full Stack Developer時(shí)不會偏的太遠(yuǎn)糟袁。
Is it reasonable to expect mere morals to have mastery over every facet of the development stack? Probably not, but Facebook can ask for it. I was told at OSCON by a Facebook employee that they only hire ‘Full Stack’ developers. Well, what does that mean? To me,a Full Stack Developer is someone with familiarity in each layer, if not mastery in many and a genuine interest in all software technology...
做這樣一個(gè)簡單的 app:
一個(gè)天氣應(yīng)用辜窑,干凈清爽的界面,天氣信息一目了然吊趾。它不僅可以精確預(yù)測未來 10 天的天氣宛裕,還可以顯示某地的歷史天氣信息瑟啃。它具有自定義提醒功能,支持 web 版本揩尸, iOS 版蛹屿, Android 版。
為什么想要做這樣一個(gè) App 疲酌?因?yàn)槟阆矚g旅行蜡峰,但沒找到一個(gè)天氣 App 可以提供你下個(gè)月或者某個(gè)特定月份的天氣信息;因?yàn)槟銘心銢]有每天看天氣預(yù)報(bào)的習(xí)慣朗恳,你想要在第二天溫度達(dá)到 30 度以上或者溫差有 +/-7 度的時(shí)候湿颅,獲得溫馨提示;因?yàn)槟阋蔀橐粋€(gè) Full Stack Engineer 粥诫,你必須不斷訓(xùn)練每個(gè) stack 的能力油航。
## Web版
你決定用 MySql 來存儲用戶數(shù)據(jù),用 NoSql 存儲歷史天氣數(shù)據(jù)怀浆。你用 Redis 作為 cache 谊囚,緩存一些最常請求的天氣數(shù)據(jù)。你用 Python 寫后臺执赡,功能簡單镰踏,后臺不復(fù)雜,用戶注冊登錄沙合,抓取返回某城市的天氣數(shù)據(jù)奠伪,某地的歷史天氣數(shù)據(jù),很快便搞定首懈。
后臺開發(fā)并測試好了绊率,接下來是 Web 前端。你十分清楚一個(gè)好的 UI 設(shè)計(jì)對一個(gè) App 的重要性究履,你也明白 UI 的設(shè)計(jì)不只是為了美觀滤否,更重要的是提高信息的可讀性和程序的可用性。幸好你平日的積累這次派上用場了最仑。你把之前保存下來的上百個(gè)優(yōu)秀的UI設(shè)計(jì)作品拿來研究藐俺,你從書架上拿出Norman 的那本經(jīng)典 - The Design of Everyday Things 重新細(xì)讀。最終你用白紙黑筆敲定了第一個(gè)版本的 UI泥彤,簡潔直觀紊搪,沒有任何多余的設(shè)計(jì),所有元素的排列間距 大小顏色都恰到好處全景。你相信即使天氣不好,但用戶只要使用這個(gè) App 都會有著愉悅的心情牵囤。
那么開始寫前端吧爸黄。啊滞伟,別急,都忘了還有 Icon 和 Logo 炕贵,可是不會 PS 梆奈,不會 AI ,不會 Sketch 怎么辦呢称开,學(xué)吧亩钟。你平日喜歡結(jié)交不同領(lǐng)域的朋友,正好幾周前在一個(gè)活動上你認(rèn)識一位朋友做設(shè)計(jì)的鳖轰。她花一個(gè)下午的時(shí)間教你基本的 Sketch 的使用清酥,并對你的 UI 設(shè)計(jì)給出了一些意見。你請她吃了頓晚飯表示感謝蕴侣,然后立即回家根據(jù)她的一些建議重新調(diào)整了 UI 焰轻,這次你在 PS 里把 UI 畫了出來,Icons 和 Logo 也順道一起做了昆雀。
接下來的一周辱志,你學(xué)習(xí) HTML,CSS狞膘,以及 Javascript揩懒,并漂亮地把前端搞定。
## 發(fā)布 App
在朋友圈發(fā)了個(gè)狀態(tài)挽封,找人幫你做 Beta 測試已球。他們都首先問你是什么 App,一開始你簡單回答一個(gè)天氣的 App场仲。但你發(fā)現(xiàn)和悦,這不能提起他們的興趣。你覺得你需要用語言渠缕,用故事包裝一下鸽素。不光是作為別人「是什么 App」提問的回答,也是成為 Full stack Engineer 道路上的一個(gè)重要技能亦鳞。
你去看了所有你喜歡的產(chǎn)品的主頁馍忽,從他們的文案上獲得一些靈感啟發(fā);你讀了經(jīng)典的 On Writing Well 燕差,發(fā)現(xiàn)好的文案遭笋,好的設(shè)計(jì),其實(shí)和好的代碼很相似徒探,都是重在交流瓦呼,如何讓他人毫不費(fèi)勁地明白你要表達(dá)的內(nèi)容。你的故事要吸引人测暗,你的產(chǎn)品介紹要在1分鐘內(nèi)解釋清楚央串,并確保你的父母可以毫無壓力聽明白磨澡。
一切就緒,產(chǎn)品上線了质和。反響不錯(cuò)稳摄,用戶持續(xù)增加。很多用戶希望有移動版本饲宿,于是你立即投入到iOS 版本的開發(fā)上厦酬。
## iOS 版 及 后臺優(yōu)化
你花一周不到時(shí)間學(xué)習(xí)了基本的語法和工具使用便投入到 App 的開發(fā)中。你知道 Learn by Doing 是最好也是最快的瘫想。由于之前學(xué)習(xí)了設(shè)計(jì)的基礎(chǔ)仗阅,UI ,Icons 很快搞定殿托,不久 iOS 版本便發(fā)布了霹菊。iOS 的發(fā)布帶來了更多的用戶增長,后臺服務(wù)器的壓力頗大支竹,你知道是時(shí)候優(yōu)化后臺了旋廷。
你在 AWS 上多開了 2 臺服務(wù)器,并寫了一個(gè) Script 來自動化部署過程礼搁。
你改用 uWSGi 協(xié)議饶碘,用 uwsgi 作為 Application Server。
你使用 Nginx 來做并發(fā)馒吴,負(fù)載均衡 ...
......
......
## 成立公司
用戶持續(xù)增長扎运,每天你都會收到十幾二十封用戶的郵件。你很感激這些愿意花時(shí)間給你寫郵件的用戶饮戳,你相信他們是你最重要的用戶豪治,是潛在的付費(fèi)用戶。如果你把他們像上帝一樣對待扯罐,他們同樣也會把你看作是上帝甫何。所以除了睡覺時(shí)間的發(fā)來的郵件太抓,每一封郵件,你都會在2小時(shí)內(nèi)給予回復(fù)。
果然這樣的付出是收獲巨大的灸蟆,他們不僅驚訝且非常感謝你的快速回復(fù)萄喳,他們會在app store里給你★★★★★的評價(jià)灾锯,他們在社交網(wǎng)站上分享你的app吕朵,他們甚至?xí)鲃犹岢鼍杩罱o你。
你從快速的用戶增長中嗅到了商機(jī)键菱,你開始思考如何賺錢谬墙。廣告你是堅(jiān)決不能允許的,你認(rèn)為再精確的廣告也會影響用戶體驗(yàn)。你設(shè)計(jì)了 2 個(gè)不同的付費(fèi)方案芭梯,你打算用 A/B 測試看哪個(gè)方案更好险耀。你分別給 200 個(gè)用戶發(fā)去邀請嘗試付費(fèi)的郵件,郵件內(nèi)容你精心打磨過玖喘,并在最后寫上:CEO & Founder. 通過分析 2 種方案的用戶行為,你決定將使用第一種方案蘑志。
接下來累奈,你相信差不多是時(shí)候成立個(gè)公司了。為了省時(shí)間急但,你花 2000 塊錢找了個(gè)園區(qū)掛靠并幫你注冊公司澎媒。公司的名字讓你頭疼了很久,你不想只是簡單的用這個(gè) App 的名字作為公司名字波桩,你知道公司將來還會做出其他優(yōu)秀的產(chǎn)品戒努。你希望這個(gè)名字簡單易記,同時(shí)其含義也是你公司文化的象征镐躲。
公司注冊下來了储玫,但銀行那邊得自己跑。你聯(lián)系了一些媒體編輯萤皂,邀請他們來試用你的產(chǎn)品撒穷;你重新設(shè)計(jì)了產(chǎn)品主頁,并開始寫產(chǎn)品的 Blog 裆熙;你在各大社交網(wǎng)絡(luò)都給 App 注冊了賬號端礼,即做社區(qū)客服也為宣傳... 這些事大大壓縮你寫代碼的時(shí)間。以往你都是以代碼量作為衡量自己當(dāng)天工作效率的指標(biāo)入录,所以這些天你總感覺沒做啥工作蛤奥。
這樣的發(fā)展早已超過你的預(yù)期,這個(gè) App 從一個(gè) Side Project 幾乎變成了你生活的全部僚稿。你跟你女朋友半個(gè)月才出去約會一次凡桥,她抱怨不斷;你1個(gè)月沒跟朋友出去玩耍喝酒了贫奠;你 2 個(gè)月都沒鍛煉過身體... 你意識到, YOU CAN NOT DO THIS ALONE唬血,你需要幫手,你需要找人一起把這個(gè)做下去唤崭。
但你不是要成為 Full Stack Engineer 么拷恨?你現(xiàn)在是了么?
## Full Stack Engineer
設(shè)計(jì)谢肾,后臺開發(fā)腕侄,前端開發(fā),移動開發(fā),運(yùn)營維護(hù)冕杠,PS微姊,文案... 好像都會了,這算 Full Stack Engineer 了么分预?
不兢交,這只是踏上成為 Full Stack Engineer 的第一步。你知道目前只是每個(gè) stack 都懂一點(diǎn)笼痹,離senior 或者 expert 還差得遠(yuǎn)配喳,而要每個(gè) stack 都做到極致,需要大量的時(shí)間和精力凳干。精力有限晴裹,產(chǎn)品開發(fā)緊迫,力不從心啊救赐,這條道路也太孤獨(dú)涧团,因?yàn)槟悴恍枰c任何人進(jìn)行協(xié)作。難道要把一些stack的任務(wù)交給別人做么经磅?這樣算是放棄成為 Full Stack Engineer 么泌绣?
不!這不是馋贤。
什么是 Engineer赞别?「Engineers are versatile minds who create links between science, technology, and society」。
Engineer 的本質(zhì)工作是設(shè)計(jì)配乓,開發(fā)出應(yīng)用于大眾的產(chǎn)品仿滔。
一個(gè)真正的 Full Stack Engineer ,他從生活中發(fā)現(xiàn)問題犹芹,洞察需求崎页,他設(shè)計(jì)解決方案,并開發(fā)出初始版本的產(chǎn)品腰埂。為了達(dá)到目標(biāo)飒焦,他愿意去學(xué)習(xí)任何領(lǐng)域的技能和知識。同時(shí)他不追求一個(gè)人完成所有工作屿笼,如果有人可以比他在某方面做得更出色牺荠,便會十分熱情的邀請他們加入。
最終他的職位也許不再是 Engineer 驴一,他不再設(shè)計(jì) UI 休雌,不再寫代碼 ... 他的工作不再是 design and building an app or product,因?yàn)樗懈蟾匾娜蝿?wù)要做 - design and building a team or a company which builds great products.
而這時(shí)肝断,社會給了他們另一個(gè)稱呼 - 創(chuàng)業(yè)者杈曲。盡管眾人已忘記他們 Engineer 的身份驰凛,但在他們骨子里,內(nèi)心深處担扑,自己始終都是一個(gè) Engineer 恰响。當(dāng)他們需要從頭再來時(shí),他們毫不猶豫從設(shè)計(jì)開發(fā)產(chǎn)品做起涌献。Nikola Tesla胚宦,F(xiàn)erdinand Porsche,Henry Ford洁奈,Jack Dorsey间唉,Mark zuckerberg,Elon Musk ... 細(xì)數(shù)那些改變了或正改變世界的創(chuàng)業(yè)者利术,他們大多數(shù)是 Engineer 背景,熱衷于設(shè)計(jì)創(chuàng)造低矮。他們學(xué)習(xí)技能和知識印叁,不是為了成為某個(gè)領(lǐng)域的專家;而是因?yàn)槟切?是完成自己目標(biāo)所需要的军掂。
以上轮蜕,為我認(rèn)可的 Full Stack Engineer
---
Peng
既然原文是說,F(xiàn)acebook 工程師說 Facebook 只招 full stack engineer蝗锥,那我就來說說 Facebook engineer 都是怎樣的人啦跃洛。
我覺得任何一方面的具體經(jīng)驗(yàn)都不重要,重要的是思維方式和學(xué)習(xí)能力终议。首先說思維方式汇竭,那就是不為自己設(shè)限,不會想著自己是前端工程師穴张,所以后端的東西我就一點(diǎn)也不碰细燎。Facebook 的工程師,級別越高就需要保持越大的影響力皂甘。如何創(chuàng)造更大的影響力玻驻,就是尋找當(dāng)前杠桿效應(yīng)最明顯的問題來解決。有些問題你解決了的話偿枕,投入進(jìn)去的時(shí)間每小時(shí)能換回來一千美元璧瞬;有些問題你解決了的話,投入進(jìn)去的時(shí)間每小時(shí)能換回來一百萬美元渐夸。然而哪些問題更值得解決嗤锉,這是動態(tài)的,往往還存在衰減效應(yīng)捺萌。如果現(xiàn)在性能瓶頸在后端档冬,你做了一個(gè)季度兩個(gè)季度優(yōu)化后膘茎,瓶頸就已經(jīng)不在后端了,你再優(yōu)化下去衰減效應(yīng)就會越來越明顯酷誓。等瓶頸變成前端了披坏,你是不是就說因?yàn)槟悴欢圆辉敢馀鲅问磕蔷拖喈?dāng)于寄望于公司有個(gè)前端很懂性能優(yōu)化的人來解決棒拂,但如果公司沒有這樣的人那就沒有人來解決了。
Facebook 的眾多海報(bào)當(dāng)中玫氢,有一張寫的是「任何一個(gè) Facebook 的問題帚屉,都不是別人的問題」。有問題漾峡,你就需要去評估是否值得解決攻旦。如果值得解決,你就應(yīng)該著手去解決生逸,而不是假設(shè)公司內(nèi)會有另外一個(gè)人比你更合適解決這個(gè)問題牢屋。這時(shí)候很可能你就需要去做你從來沒有做過的事情,需要學(xué)習(xí)你原本可能完全不懂的技術(shù)槽袄。如果你是個(gè)專門做數(shù)學(xué)模型的博士烙无,加入 Facebook 原本是打算做搜索結(jié)果優(yōu)化的,結(jié)果發(fā)現(xiàn)這不是最急需解決的問題遍尺,JavaScript 性能才是最需要解決的問題截酷,你怎么辦?如果你以為 Facebook 需要的是你做數(shù)學(xué)模型的經(jīng)驗(yàn)乾戏,那你就錯(cuò)了迂苛。Facebook 需要的是你完成博士學(xué)位的學(xué)習(xí)能力。你從來沒做過 JavaScript 并且覺得 JavaScript 很惡心歧蕉?正確的做法是立即在網(wǎng)上買幾本 JavaScript 入門的書連夜看完灾部,然后著手分析性能瓶頸并且解決。在你完成手動優(yōu)化后惯退,你還可以思考一下能否把這做成自動化赌髓,例如說在代碼提交時(shí)分析 JavaScript 語法樹并且指出可能成為性能瓶頸的地方,又或者說從用戶瀏覽器那里收集性能數(shù)據(jù)扔到 Hive 然后再從中分析產(chǎn)生瓶頸的特征催跪。這些都可能涉及到一些你沒有做過也沒有學(xué)過的東西锁蠕,但問題擺在那里你就需要去解決,而無論這要求你去鉆研什么懊蒸。這就是我所說的學(xué)習(xí)能力荣倾。
這是高級工程師和初級工程師的主要差距。盡管在高級到初級這一維度上骑丸,美國工程師和中國工程師是有重疊的舌仍,但美國的教育體系和行業(yè)傳統(tǒng)使得美國應(yīng)屆生比一般中國工程師更偏向于高級那一端妒貌。美國學(xué)生的優(yōu)勢在于,他們的教育體系讓他們習(xí)慣面對開放性問題铸豁。一家公司萬千問題當(dāng)中灌曙,此時(shí)此刻哪一個(gè)最值得解決?這不是中國工程師擅長的問題节芥,因?yàn)閷?shí)在是太開放了在刺。中國教育讓人擅長在給定條件下解決問題,太開放反而不知道從何入手头镊。此外因?yàn)榻^大多數(shù)文獻(xiàn)都是英文的蚣驼,所以要鉆研什么對于能讀懂英文的人來說都可以非常成體系的學(xué)習(xí),這對于很多拒絕閱讀英文的中國工程師來說很不利相艇。拒絕閱讀英文意味著永遠(yuǎn)只能接受別人的二手資料颖杏,對于很多概念的理解只能停留在技師的層面,而無法上升到工程師或者科學(xué)家的層面坛芽。
現(xiàn)有的答案已經(jīng)說明了输玷,以一個(gè)正常人的精力和學(xué)習(xí)速度來說,想在 full stack 的每一個(gè)層面都達(dá)到頂級的精通顯然是很困難的事情靡馁。但是做不到這一點(diǎn)就算不上 full stack developer (FSD) 了嗎?其實(shí)我希望大家留意題主引用的那段英文的最后一句:a genuine interest in all software technology. (對所有的軟件技術(shù)抱有一種真摯的興趣)机久。
我覺得對于 FSD 臭墨,尤其是對于想成為 FSD 的人來說,這個(gè)態(tài)度才是最重要的事情膘盖。即使都是 FSD胧弛,每一個(gè)人各自的技能加點(diǎn)也肯定會不一樣,有人在前端更擅長一些侠畔,有人在服務(wù)器層面更有經(jīng)驗(yàn)... 但其實(shí)沒有什么硬性的門檻结缚,需要的是解決任何問題的能力和意愿。你要做到的就是不固步自封在一個(gè)領(lǐng)域软棺。遇到問題红竭,就去研究,不因?yàn)閱栴}不在你的 comfort zone 就放棄或者推給別人喘落。即使一開始的解決方案很笨拙也無所謂茵宪,just learn whatever it takes to make it work.比如說我要做一個(gè)網(wǎng)站,我有一些東西沒碰過瘦棋,但我有足夠的興趣和動力去搞個(gè)八九不離十稀火。(這里自學(xué)能力很重要,有好的 mentor 也會幫助很大)當(dāng)你經(jīng)歷過一次這個(gè)過程以后赌朋,你就會有信心去弄明白更復(fù)雜的東西凰狞,在之前的基礎(chǔ)上進(jìn)一步去消化篇裁、改進(jìn)、學(xué)更多的東西赡若。
另外达布,我個(gè)人覺得這個(gè)過程應(yīng)該是由實(shí)際問題驅(qū)動的,而不是漫無目的看到什么東西流行了或者覺得很NB就去學(xué)斩熊。@莊生的答案里提到絕大部分的網(wǎng)站都活不到或者永遠(yuǎn)也達(dá)不到10k用戶在線的水平往枣,那種情況下去看 high scalability 的東西有什么意義?學(xué)的東西用來解決或是改進(jìn)實(shí)際遇到的問題粉渠,這樣你的整個(gè)知識體系覆蓋面和側(cè)重點(diǎn)會比較合理分冈。打個(gè)比方就是你的技能點(diǎn)有限,所以加點(diǎn)方案得有一個(gè)主題霸株,到處亂點(diǎn)的話就廢了雕沉。
現(xiàn)有的答案已經(jīng)說明了,以一個(gè)正常人的精力和學(xué)習(xí)速度來說去件,想在 full stack 的每一個(gè)層面都達(dá)到頂級的精通顯然是很困難的事情坡椒。但是做不到這一點(diǎn)就算不上 full stack developer (FSD) 了嗎?其實(shí)我希望大家留意題主引用的那段英文的最后一句:a genuine interest in all software technology. (對所有的軟件技術(shù)抱有一種真摯的興趣)尤溜。
我覺得對于 FSD 倔叼,尤其是對于想成為 FSD 的人來說,這個(gè)態(tài)度才是最重要的事情宫莱。即使都是 FSD丈攒,每一個(gè)人各自的技能加點(diǎn)也肯定會不一樣,有人在前端更擅長一些授霸,有人在服務(wù)器層面更有經(jīng)驗(yàn)... 但其實(shí)沒有什么硬性的門檻巡验,需要的是解決任何問題的能力和意愿。你要做到的就是不固步自封在一個(gè)領(lǐng)域碘耳。遇到問題显设,就去研究,不因?yàn)閱栴}不在你的 comfort zone 就放棄或者推給別人辛辨。即使一開始的解決方案很笨拙也無所謂捕捂,just learn whatever it takes to make it work.比如說我要做一個(gè)網(wǎng)站,我有一些東西沒碰過愉阎,但我有足夠的興趣和動力去搞個(gè)八九不離十绞蹦。(這里自學(xué)能力很重要,有好的 mentor 也會幫助很大)當(dāng)你經(jīng)歷過一次這個(gè)過程以后榜旦,你就會有信心去弄明白更復(fù)雜的東西幽七,在之前的基礎(chǔ)上進(jìn)一步去消化、改進(jìn)溅呢、學(xué)更多的東西澡屡。
另外猿挚,我個(gè)人覺得這個(gè)過程應(yīng)該是由實(shí)際問題驅(qū)動的,而不是漫無目的看到什么東西流行了或者覺得很NB就去學(xué)驶鹉。@莊生的答案里提到絕大部分的網(wǎng)站都活不到或者永遠(yuǎn)也達(dá)不到10k用戶在線的水平绩蜻,那種情況下去看 high scalability 的東西有什么意義?學(xué)的東西用來解決或是改進(jìn)實(shí)際遇到的問題室埋,這樣你的整個(gè)知識體系覆蓋面和側(cè)重點(diǎn)會比較合理办绝。打個(gè)比方就是你的技能點(diǎn)有限,所以加點(diǎn)方案得有一個(gè)主題姚淆,到處亂點(diǎn)的話就廢了孕蝉。
從全棧工程師到全棧員工,軟件吞噬世界的步伐又進(jìn)了一步腌逢。以下是 Chris Messina的文章
在我離開 Google快兩年之后降淮,我開始意識到職業(yè)環(huán)境正在發(fā)生的變化。傳統(tǒng)的管理紀(jì)律正在漸漸瓦解搏讶。要想在職場上成功佳鳖,需要的技能比以往更加多樣而難以定義。如今媒惕,要想在職場上有所成就系吩,你必須成為一個(gè)真正的博學(xué)者,成為一名全能全棧員工妒蔚。
什么是全棧員工(full-stack employee)淑玫?
就像“全棧工程師(full-stack engineer)”和“全棧創(chuàng)業(yè)(full-stack startup)”一樣,全棧員工(full-stack employee)擁有超強(qiáng)的綜合技能面睛,有著無法估量的價(jià)值。他們可以在快速演進(jìn)尊搬、變革的技術(shù)浪潮中如魚得水叁鉴。他們可以在事實(shí)稀缺、觀點(diǎn)橫飛的過剩信息中憑直覺做決定佛寿。全棧員工能夠熟練運(yùn)用設(shè)計(jì)語言幌墓,明白使用卡通字體無異于犯罪行為,輕車熟路地嘲弄Keynote冀泻、Sketch抑或是Skitch常侣。他們清楚用戶界面(UI)和用戶體驗(yàn)(UX)的區(qū)別。
他們可以和人討論工程問題弹渔,能搞清楚算法胳施、編程,也能理解前端的等級和后端的等級根本不是一回事肢专。雖然他們可能并不親自編程舞肆,但他們知道GitHub焦辅、StackOverflow都是做什么的。如果必要椿胯,他們會暴力破解一段“復(fù)制粘貼”的腳本筷登,在CSV文件中進(jìn)行基礎(chǔ)分析。
他們是最新銳的社交應(yīng)用的用戶哩盲,深諳自我推廣 之道前方。他們既可以在聽眾面前循循善誘地耐心講故事,也可以在看了3分鐘kickstarter視頻后就能指出:亮明要點(diǎn)的時(shí)間不能長于一段Instagram廉油、Vine短視頻惠险。注意力就是這個(gè)時(shí)代的硬通貨。
全棧員工對新的想法娱两、最棒的實(shí)現(xiàn)路徑莺匠、提升生產(chǎn)力和與愉悅度的事情有著“貪得無厭”的胃口。他們對世界及其運(yùn)轉(zhuǎn)規(guī)則充滿好奇心十兢,想知道如何留下自己的印記趣竣。正是這一點(diǎn)使他們與過去時(shí)代的人們區(qū)分開來。開始一份工作時(shí)旱物,全棧員工不會戴上“眼罩”埋頭苦干遥缕,而是始終與行業(yè)的發(fā)展保持同步,因?yàn)樗麄兦宄鹤兏锿霈F(xiàn)在邊緣地帶宵呛,不能只盯著腳下的一畝三分地单匣。
一名全棧員工是什么樣子的?
有了24小時(shí)在線的移動設(shè)備宝穗,工作和非工作之間的界限正在模糊户秤,既然工作正在變得碎片化,全棧員工要清楚地意識到自己的生活方式也要隨之變化逮矛,比如使用整體式單色衣柜鸡号、功能明確的廚具。
成為全棧員工意味著要在兩極之間來回切換须鼎。他們既要適應(yīng)單兵作戰(zhàn)鲸伴,自給自足(比如自己安排時(shí)間,使用自己的設(shè)備工作)晋控,也要能和團(tuán)隊(duì)高效協(xié)作汞窗。過去,在大型團(tuán)隊(duì)中赡译,往往需要有一名 IT經(jīng)理來決定使用何種技術(shù)仲吏。如今,隨著人們越來越多地使用個(gè)人設(shè)備工作,員工需要自己來搞定跨設(shè)備蜘矢、跨平臺溝通等問題狂男。就拿企業(yè)協(xié)作工具來說。Slack可以整合所有東西品腹,而微軟卻只對自己平臺上的工具開放特權(quán)岖食。如果你不能接入其他人的 API,你已經(jīng)落后于時(shí)代了舞吭。全棧員工也是如此——他們至少應(yīng)該熟知所有最新的應(yīng)用泡垃,這樣才不會落伍出局。
全棧員工必須要在自己的領(lǐng)域有深刻的洞見羡鸥,同時(shí)也要機(jī)動地應(yīng)對優(yōu)先事項(xiàng)的轉(zhuǎn)換蔑穴,勝任不同的安排。組織的扁平化已經(jīng)不是新現(xiàn)象惧浴,變革的動力可能來自頂層存和,也可能來自底層,有時(shí)候需要個(gè)體來決定事情的優(yōu)先級≈月茫現(xiàn)場服務(wù)工程師(FSE捐腿,F(xiàn)ield Service Engineer)應(yīng)該遍布組織內(nèi)部,卻又不能分布的過于稀疏柿顶。即使不用監(jiān)控每一位員工茄袖,他們也應(yīng)該知道每一個(gè)人在做什么,保證他們在不熟悉的事情上不會手足無措嘁锯。
要成為一名全棧員工不是一件容易的事宪祥,回報(bào)卻也很豐厚。首先家乘,他們可以更自由地按照自己的方式蝗羊、在自己喜歡的地方(Teleport等服務(wù)可以幫助他們找到價(jià)廉的工作地點(diǎn))、喜歡的時(shí)間工作仁锯。他們可以使用最新的工具肘交,自給自足,自我管理扑馁。由于他們的工作涉及多領(lǐng)域、多學(xué)科之間的協(xié)作凉驻,會帶來更寬廣的視野腻要,更豐富多彩的經(jīng)歷。在組織內(nèi)部涝登,他們的影響力也會不斷上升雄家,對組織的成敗也將擔(dān)負(fù)起更大的責(zé)任,團(tuán)隊(duì)的成功與否更加休戚相關(guān)胀滚。
這對雇主和管理者意味著什么趟济?
對于企業(yè)和管理者來說乱投,在人力市場上爭奪全棧員工意味著很多準(zhǔn)備工作。首先顷编,你們做好準(zhǔn)備來吸引戚炫、留住這些人才了嗎?其次媳纬,你們團(tuán)隊(duì)的工作風(fēng)格是否明確双肤,你們對遠(yuǎn)程辦公的支持如何?再次钮惠,你們允許的工作時(shí)間茅糜,支持員工自主安排工作計(jì)劃嗎?最后素挽,你們會給他們留出健身蔑赘、養(yǎng)生、陪伴家人的時(shí)間嗎预明?
Google雖然充分考慮到了員工的健康缩赛、精神需求,但反過來也要求員工高度負(fù)責(zé)贮庞。 Google的員工可以以任何方式在任何時(shí)間峦筒、任何地點(diǎn)工作,只要能最大程度發(fā)揮創(chuàng)造力窗慎。但它同時(shí)希望員工能夠隨時(shí)參加一場臨時(shí)安排的快速議事會物喷。你的團(tuán)隊(duì)準(zhǔn)備好了嗎?
如果你還沒有嘗試過遮斥,不妨一試峦失,來感受下”全棧員工“的工作環(huán)境是什么樣子的。不同背景的人們在一個(gè)公共空間內(nèi)彼此協(xié)作术吗。他們一直在線尉辑,通過Slack等協(xié)作對話平臺交流。大多數(shù)全員協(xié)作空間都是臨時(shí)搭建较屿,多種實(shí)體隧魄、虛擬的工具混合使用(白板、投影儀隘蝎、會議室购啄、視頻會議設(shè)備等)。
對于職員和管理者來說嘱么,最需要培養(yǎng)的是”同理心“——員工和管理者都要對彼此有一種“同情的理解”狮含,在彼此溝通、協(xié)作、要求時(shí)能夠提出具體的需求几迄。因?yàn)槲磥淼墓ぷ餍枰叨鹊撵`活性和自主性蔚龙,但這并不意味著每個(gè)人給自己下達(dá)工作命令、工作指標(biāo)映胁。管理者的角色依然是必要的木羹。
未來的工作是什么樣子的?
說未來的職場將由全棧員工引領(lǐng)屿愚,無疑有些夸張汇跨,但這是一個(gè)顯而易見的趨勢。毫無疑問妆距,工作的定義正在發(fā)生變化穷遂,員工的最大價(jià)值是應(yīng)對不確定性,能夠從海量的信息中提煉出有效的戰(zhàn)略娱据、戰(zhàn)術(shù)蚪黑。
而且,在工作機(jī)器人大規(guī)闹惺#“入侵”之前忌穿,我們只有10年的時(shí)間。他們正在取代體育新聞结啼、駕駛掠剑、快遞等重復(fù)性工作,人們要重新思考適合自己的角色郊愧。感知和綜合的能力將是第一位的朴译,而語言、辨析力和同感力在進(jìn)行復(fù)雜属铁、敏感的任務(wù)是都是必備技能眠寿。全棧員工將幫助我們向未來過渡,將成為新的混合經(jīng)濟(jì)中的關(guān)鍵角色焦蘑。
編輯于 2015-04-164 條評論?作者保留權(quán)利
auxten盯拱,面向工資編程
高中的時(shí)候喜歡踢球狡逢,班上有一個(gè)特別厲害的前鋒,用我們對手的話就是:“擋也擋不住拼卵,跑也跑不過奢浑,絆都絆不倒”。
嗯间学,我認(rèn)為的一個(gè)“全棧工程師”,不是僅僅能從匯編寫到JavaScript,從PHP寫到Objective-C低葫。更是從代碼到PhotoShop详羡,從產(chǎn)品設(shè)計(jì)到地推樣樣行,樣樣懂嘿悬。
從小了說实柠,給他安排個(gè)你自己都沒想太明白的任務(wù),他給你一個(gè)驚喜善涨。
從大了說窒盐,就是既能當(dāng)CTO,又能當(dāng)COO钢拧,沒有各種CXO蟹漓,自己也能當(dāng)CEO。
==============分割線==============
說一個(gè)我一個(gè)朋友@程一仕的故事吧源内,我是在大三認(rèn)識他的葡粒。當(dāng)時(shí)我是學(xué)校論壇的系統(tǒng)管理員,正在招人接替我畢業(yè)后在學(xué)校的工作膜钓。招了好久沒有入得了我法眼的嗽交,這時(shí)我?guī)煾嫡f找到一個(gè)不錯(cuò)的。
說實(shí)話颂斜,第一次見面我對他沒啥好印象夫壁,因?yàn)檫@貨抽煙,完全不像是一個(gè)搞技術(shù)的沃疮。后來一起通宵修理服務(wù)器盒让,研究技術(shù),慢慢發(fā)現(xiàn)這貨是個(gè)挺有意思的人忿磅。
以后的日子里我?guī)е黄饘慞ython糯彬,寫C,寫JS葱她。撩扒。。我發(fā)現(xiàn)他就是那種能不斷給我驚喜的工程師吨些。搓谆。。
我們工作室的傳統(tǒng)是豪墅,每年暑假大家都在學(xué)校做封閉開發(fā)泉手,當(dāng)時(shí)我找了個(gè)去IBM實(shí)習(xí)的機(jī)會,想讓他替我留校偶器。最后一聊斩萌,這貨沒空缝裤,暑假要騎自行車去西藏。颊郎。憋飞。我才發(fā)現(xiàn)他還是個(gè)文藝青年(當(dāng)時(shí)還不是那么貶義)
后來,他到了大三姆吭,去的支付寶實(shí)習(xí)榛做,做運(yùn)維開發(fā)。
再后來跟我一樣去了百度内狸,不到三年時(shí)間检眯,就升到了T6。昆淡。锰瘸。
有一天無意發(fā)現(xiàn)這貨豆瓣竟然有上萬的粉絲,一問才知道瘪撇,有一天他閑得無聊获茬,寫了篇罵豆瓣的產(chǎn)品的帖子,由于字字鞭辟入里倔既,連豆瓣的產(chǎn)品同學(xué)都直呼罵得好(抖m的既視感)恕曲,不斷邀請他來豆瓣做產(chǎn)品,直到他亮出T6的身份渤涌,對方才作罷佩谣。
此人還對人文歷史政治總有很多見解。每每覺得無聊实蓬,第一個(gè)想到拉他出來吃吃飯茸俭,每次都有新收獲。
幾個(gè)月前安皱,他跟我說他前幾天被一伙人拉著去融資了调鬓,那伙人是想搞云存儲的,發(fā)現(xiàn)他對分布式存儲很有研究酌伊,就生生拉上他去壯大陣容腾窝。。居砖。
我就問虹脯,他們怎么知道你對這個(gè)有研究呢?這貨拿起手中的加冰可樂奏候,33.3°仰望天花板:“因?yàn)镸ooseFS有部分代碼是我寫的”循集。
后來才知道,這貨已經(jīng)是百度分布式存儲&緩存Topic的負(fù)責(zé)人了蔗草。咒彤。疆柔。。
就在我為他要在技術(shù)的道路上超越我而惶惶不可終日的時(shí)候镶柱,有一天婆硬,他問我有沒有興趣回成都僵蛛。秕重。渣磷。
原來,這段時(shí)間他拉著幾個(gè)學(xué)弟搞了個(gè)無節(jié)操(約XX)的叫“誰有空”的APP(嘖嘖查吊,這名字。湖蜕。)逻卖,拿了幾百萬的融資,開始出任CEO昭抒,走向人生巔峰了评也。。灭返。
他也教會我一件事盗迟,遇到比自己厲害的學(xué)弟,不要嫉妒熙含,不要嘗試去壓制罚缕,因?yàn)椤坝行B注定是不會被關(guān)在籠子里的,它們的每一片羽毛都閃耀著自由的光輝”怎静∮实可能有一天你就要去他公司打工呢。
所以蚓聘,過了這么久腌乡,我最喜歡的一個(gè)身份還是
曾經(jīng)這個(gè)全棧工程師的“師傅”。
編輯于 2015-05-2733 條評論?作者保留權(quán)利
突然就想起這個(gè)表格了http://static.icybear.net/[CN]Programmer%20competency%20matrix.htm
如果說要想全部達(dá)到level3氯材,沒有三四十年怕是不行吧渣锦,到時(shí)候還會有新的知識,永遠(yuǎn)達(dá)不到的氢哮。
所謂的全棧都是資本家們根據(jù)他們的業(yè)務(wù)自我衡量的袋毙,騷年們還是從基礎(chǔ)好好打起吧∪哂龋基礎(chǔ)好听盖,學(xué)習(xí)就快胀溺,所謂陽光下沒有新鮮事嘛,學(xué)計(jì)算機(jī)你懂得的皆看。