1. 程式人生 > >全棧工程師的學習之路

全棧工程師的學習之路

一、關於全棧工程師的定義與職務

1. 全棧工程師的定義

隨著網際網路技術的蓬勃發展,技術變得越來越繁瑣,越來越多面化。一個專案的開發,需要使用多樣技術。舉個例子,一個網站的建設,單論初步開發(功能實現)而言,需要功能分析、介面與互動性設計、前端開發、相容性處理(裝置相容和瀏覽器相容)、後端開發、資料庫開發、QA測試,日後還需要SEO優化、效能優化、專案資源管理工具等各項技術(已知——軟)。這就需要各種各樣的專項性人才,然而在專案開發過程中,一個團隊的人數與開發效率往往不是成正比,這涉及到各個方面,比如團隊中的各個成員是否磨合(性格、技術互補),程式碼風格是否相似(同項技術小組的成員),小組與小組的互動是否順利(比如介面與前端互動、功能與前後端互動、前後端資料互動等),總之專案中的人力往往是1+1<2的,一個專案開發團隊的規模越大,溝通成本就越大,這在大型專案中,溝通成本往往佔了很大比重。

而全棧工程師的溝通成本基本為零(看全棧的知識面和團隊是否契合與程式碼庫),他能與一個團隊中的各個成員都進行有效的溝通,大大縮排一個專案的溝通成本,增大團隊的開發效率。

2. 全棧工程師的職責

2.1. 瞭解團隊中各個人員技術開發能力與技術方向 (*)

2.2. 協助產品經理在功能分析過程中,得出功能可行性和專案成本(相對於團隊 ***)

2.3. 協助專案經理選定合適的專案技術框架,分辨框架技術優劣(***)

2.4. 協助設計總監和互動設計師與前端工程師進行功能設計和技術溝通(**)

2.5. 協助前端工程師和UI設計師進行頁面製作和程式碼編寫(*-**)

2.6. 協助前、後端工程師進行資料介面對接和程式碼編寫(*-**)

2.7. 協助資料庫工程師進行資料庫設計和程式碼編寫(*-**)

2.8. 協助測試團隊和SEO團隊進行產品測試和搜尋引擎優化(*-**)

2.9. 協助運維團隊進行使用者反饋和功能增添分析(*-**)

PS:人不是萬能,上述職責有3-5可以完成,應該已經很強了0.0,恩……猜的

3. 全棧工程師的優勢與劣勢

3.1. 優勢:全棧工程師的技術發展是橫向的,對於任何技術或設計,他總是有話可說,充實而全面的程式碼庫(重用),可以對團隊中的每一個人都提供有益的幫助,能大大減少團隊人員溝通、技術對接的時間和技術成本。

PS:全棧的主要任務是縮短專案開發時間和成員溝通成本。

3.2. 劣勢:由於橫向的技術發展,導致全棧工程師往往博而不精,甚至紙上談兵。個人職責的定位就是什麼都會,但是也什麼都不會。這時就需要全棧做好一定的技術職責偏向,豐實自身的程式碼庫與技術理論,無論是文——介面設計和互動性設計,還是武——邏輯設計和功能實現,都要盡力做到能實現、能編寫和能敘述。

二、現階段 個人 技能樹 能力

4. 產品設計:

功能設計和可行性分析:瞭解 書1

UI介面與互動性設計(理論):瞭解 書1

原型設計:基本為0 ——axure sketch

5. 前端技術(瞭解—初級)

html-html5:初級 基本掌握HTML所有標籤共有屬性及其私有屬性HTML,基本瞭解H5新特性並實踐部分特性功能(表單屬性,<meta>,canves基礎)

css-css3:初級 基本掌握CSS(1-2)PSD、原型 高真還原,基本瞭解和使用

CSS3特性(過渡、動畫、多欄佈局)

javascript:初級 基本掌握js語法結構,瞭解並使用DOM物件、BOM物件、事件流、閉包與自執行函式。基本瞭解外掛編寫,像原型模式、工廠模式、建構函式模式等物件封裝。基本瞭解並使用各項JSAPI實現各項功能,如標籤資料繫結(DOM操作),css動畫實現(JS 輪播圖),ajax頁面非同步刷新技術。

HTML CSS JS相容性技術:基本瞭解瀏覽器相容性技術處理(如css屬性hack,瀏覽器盒模型相容),基本瞭解與使用多屏相容性處理(如流動佈局技術,響應式開發),基本瞭解使用者代理監測技術。

XSS:基本理解XSS程式碼注入攻擊方式部分方式。

html框架:bootstrap(初級)handlebars(瞭解)

css預編譯器:sass(初級)基本掌握語法結構和程式碼重用方式 compass(瞭解)

js框架:Jquery(初級)——DOM操作,CSS操作,事件繫結,AJAX,迴圈函式,部分外掛使用

XML:0-瞭解

JSON:瞭解JSON結構和部分格式與JSON轉換

6. 後端技術(瞭解-初級)

MVC設計模式:基本瞭解與使用MVC設計模式和業務、資料、介面分離方法。

.NET 技術:瞭解並熟練使用.NET開發web後端vs2010+mvc2+SQLSERVER 08基本掌握controller頁面請求處理、資料互動處理和ADO.NET技術,基本瞭解和使用路由控制、c#語法結構(基礎型別、事件、語法結構如繼承、多型、過載),基本瞭解並使用部分c#面向物件理論(泛型、abstract、virtual、事件流、委託、執行緒、http通訊)

php、node.js:瞭解PHP、node.js語法結構,瞭解並使用PHP頁面跳轉、埠監聽,瞭解並開發微信支付介面對接(公眾號移動開發網站)。

SQL server:瞭解並熟練使用sqlserver基礎操作(查詢、插入、更新、刪除),瞭解並使用查詢關鍵字(如NOT、IN、JOIN、LIKE、CONSTRAINT約束等),基本瞭解並部分使用編寫觸發器、儲存過程、檢視

技術分段:0-瞭解(12.5%)-初級(25%)-中級-高階-業內巔峰

要朝這全棧程式設計師發展或者真心有興趣的。可以找我要一些java的學習視訊Java學習交流群:450936584,這個是免費的,希望同學找我要的時候不要有理所應當的態度,畢竟都是我的心血,希望你是真的有一顆想要學好java的心,我也會盡所能的去幫助你成為一名優秀的程式設計師。