全棧工程師

全棧工程師,也叫全端工程師,英文Full Stack developer。是指掌握多種技能,並能利用多種技能獨立完成產品的人。

全局工程師。

全局性思維

現代項目的開發,需要掌握多種技術。互聯網項目,需要用到後端開發、前端開發、界面設計、產品設計、數據庫、各種移動客戶端、三屏兼容、restFul API設計和OAuth等等,比較前衛的項目,還會用到Single Page Application、Web Socket、HTML5/CSS3這些技術以及像第三方開發像微信公衆號微博應用等等。
Web前端也遠遠不是從前的切個圖用個jQuery上個AJAX兼容各種瀏覽器那麼簡單了。現代的Web前端,你需要用到模塊化開發、多屏兼容、MVC,各種複雜的交互與優化,甚至你需要用到Node.js來協助前端的開發。
所以說一個現代化的項目,是一個非常複雜的構成,我們需要一個人來掌控全局,他不需要是各種技術的資深專家,但他需要熟悉到各種技術。對於一個團隊特別是互聯網企業來說,有一個全局性思維的人非常非常重要。[1] 

溝通成本

項目越大,溝通成本越高,做過項目管理的都知道,項目中的人力是1+1<2的,人越多效率越低。因爲溝通是需要成本的,不同技術的人各說各話,前端和後端是一定會掐架的。每個人都會爲自己的利益而戰,毫不爲已的人是不存在的。
而全棧工程師的成本幾乎爲零,因爲各種技術都懂,胸有成竹,自己就全做了。即使是在團隊協作中,與不同技術人員的溝通也會容易得多,讓一個後端和一個前端去溝通,那完全是雞同鴨講,更不用說設計師與後端了。但如果有一個人懂產品懂設計懂前端懂後端,那溝通的結果顯然不一樣,因爲他們講的,彼此都能聽得懂。

創業公司

對於創業公司來說,全棧工程師的價值是非常大的,創業公司不可能像大公司一樣,各方面的人才都有。所以需要一個多面手,各種活都能一肩挑,獨擋多面的萬金油。對於創業公司,不可能說DBA前端後端客戶端各種人才全都備齊了,很多工作請人又不飽和,不請人又沒法做,外包又不放心質量,所以全棧工程師是省錢的一妙招。雖然說全棧工程師工資會比一般的工程師會高很多,但綜合下來,成本會低很多。
技術有兩個發展方向,一種是縱向一種是橫向的,橫向的是瑞士軍刀,縱向的是削鐵如泥的干將莫邪。這兩個方向都沒有對與錯,發展到一定程度都會相互溶合,就好比中國佛家禪修的南頓北漸,其實到了最後,漸悟與頓悟是一樣的,頓由漸中來。
如果一個公司不太懂全棧工程師的價值,那麼全棧工程師的地位將會很尷尬,說得不好聽一點,全棧工程師就是什麼都會,什麼都不會。曾經有一次面試,對方問很基礎的問題,他答不上來,但他能做出產品,也知道什麼是怎麼一回事,他也不會犯那些錯誤,可他就是答不上概念,要考倒他非常容易。所以在應聘面試的時候,有些時候會吃虧,他可能會不如那些在某一方面鑽得很深的人工資拿得高。
由於經常在各種技術穿梭,他會經常忘記代碼的語法和一些API,所以他經常需要去查API甚至查語法,他覺得沒有Google我幾乎沒法工作。這在某些人的眼裏,是技術不夠的表現。他記的只是一個Key,一個如何找尋答案的索引,而不是全部,人腦不是電腦,他不可能能記下所有的東西。




作者:顧鵬
鏈接:http://www.zhihu.com/question/22420900/answer/21770992
來源:知乎
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

做這樣一個簡單的 app:
一個天氣應用,乾淨清爽的界面,天氣信息一目瞭然。它不僅可以精確預測未來 10 天的天氣,還可以顯示某地的歷史天氣信息。它具有自定義提醒功能,支持 web 版本, iOS 版, Android 版。

爲什麼想要做這樣一個 App ?因爲你喜歡旅行,但沒找到一個天氣 App 可以提供你下個月或者某個特定月份的天氣信息;因爲你懶你沒有每天看天氣預報的習慣,你想要在第二天溫度達到 30 度以上或者溫差有 +/-7 度的時候,獲得溫馨提示;因爲你要成爲一個 Full Stack Engineer ,你必須不斷訓練每個 stack 的能力。


## Web版
你決定用 MySql 來存儲用戶數據,用 NoSql 存儲歷史天氣數據。你用 Redis 作爲 cache ,緩存一些最常請求的天氣數據。你用 Python 寫後臺,功能簡單,後臺不復雜,用戶註冊登錄,抓取返回某城市的天氣數據,某地的歷史天氣數據,很快便搞定。

後臺開發並測試好了,接下來是 Web 前端。你十分清楚一個好的 UI 設計對一個 App 的重要性,你也明白 UI 的設計不只是爲了美觀,更重要的是提高信息的可讀性和程序的可用性。幸好你平日的積累這次派上用場了。你把之前保存下來的上百個優秀的UI設計作品拿來研究,你從書架上拿出Norman 的那本經典 - The Design of Everyday Things 重新細讀。最終你用白紙黑筆敲定了第一個版本的 UI,簡潔直觀,沒有任何多餘的設計,所有元素的排列間距 大小顏色都恰到好處。你相信即使天氣不好,但用戶只要使用這個 App 都會有着愉悅的心情。

那麼開始寫前端吧。啊,別急,都忘了還有 Icon 和 Logo ,可是不會 PS ,不會 AI ,不會 Sketch 怎麼辦呢,學吧。你平日喜歡結交不同領域的朋友,正好幾周前在一個活動上你認識一位朋友做設計的。她花一個下午的時間教你基本的 Sketch 的使用,並對你的 UI 設計給出了一些意見。你請她吃了頓晚飯表示感謝,然後立即回家根據她的一些建議重新調整了 UI ,這次你在 PS 裏把 UI 畫了出來,Icons 和 Logo 也順道一起做了。

接下來的一週,你學習 HTML,CSS,以及 Javascript,並漂亮地把前端搞定。


## 發佈 App
在朋友圈發了個狀態,找人幫你做 Beta 測試。他們都首先問你是什麼 App,一開始你簡單回答一個天氣的 App。但你發現,這不能提起他們的興趣。你覺得你需要用語言,用故事包裝一下。不光是作爲別人「是什麼 App」提問的回答,也是成爲 Full stack Engineer 道路上的一個重要技能。

你去看了所有你喜歡的產品的主頁,從他們的文案上獲得一些靈感啓發;你讀了經典的 On Writing Well ,發現好的文案,好的設計,其實和好的代碼很相似,都是重在交流,如何讓他人毫不費勁地明白你要表達的內容。你的故事要吸引人,你的產品介紹要在1分鐘內解釋清楚,並確保你的父母可以毫無壓力聽明白。

一切就緒,產品上線了。反響不錯,用戶持續增加。很多用戶希望有移動版本,於是你立即投入到iOS 版本的開發上。


## iOS 版 及 後臺優化
你花一週不到時間學習了基本的語法和工具使用便投入到 App 的開發中。你知道 Learn by Doing 是最好也是最快的。由於之前學習了設計的基礎,UI ,Icons 很快搞定,不久 iOS 版本便發佈了。iOS 的發佈帶來了更多的用戶增長,後臺服務器的壓力頗大,你知道是時候優化後臺了。

你在 AWS 上多開了 2 臺服務器,並寫了一個 Script 來自動化部署過程。
你改用 uWSGi 協議,用 uwsgi 作爲 Application Server。
你使用 Nginx 來做併發,負載均衡 ...
......
......
 

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