『壹』 程序猿一般都是怎樣成為全棧工程師的
全棧工程師也叫全端工程師(同時具備前端和後台能力),英文Full Stack developer,是指掌握多種技能具備互聯網全局性思維,並能利用多種技能獨立完成產品的人。
下面給你整理了全棧工程師應該具備的知識點,你可以對照自己,去學習提升自己。
第一:網站重構學習
需要具備的知識點有:PC端網站布局、HTML5+CSS3基礎、WebAPP頁面布局
第二:前端交互
需要具備的知識點有:原生javaScript交互效果開發、面向對象進階、JQuery經典交互效果開發
第三:前端全棧開發
需要具備的知識點有:HTTP協議、Ajax進階與後端、PC端網站開發、AngularJS、PC端管理信息系統前端開發
第四:移動端項目開發
需要具備的知識點有:Touch端、微信小程序開發、微信場景、應用 Vue.js開發 WebApp、應用 Ionic開發 WebApp、應用 React.js開發 WebApp、
第五 WebApp後端系統開發
需要具備的知識點有:WebApp後端系統開發(NodeJS基礎與NodeJS核心模塊、Express、noSQL資料庫)
第六:後端PHP編程開發
需要具備的知識點有:PHP高級、網站架構、實戰項目
『貳』 當全棧程序員是不是很累
全棧程序員是一群特殊的程序員,他們從前到後,由內而外,幾乎無所不能。很多全棧程序員都認為創業是最好的體現能力和價值的地方
前段時間聽說一個新名詞:"全棧程序員",google了一下,被引導到了知乎的一個討論上:http://www.hu.com/question/22420900。樓主提出了一個問題:怎樣成為全棧程工程師,本人也在上面情不自禁地回復了一下。回頭想來似乎還有話要說。由於這個話題很容易跑偏,本文只把范圍限定在全棧Web軟體工程師,簡稱FSD(Full Stack Developer)。
把技術當成生活,自己逼自己的結果
其實在任何公司工作,光憑工作的內容,很難成為FSD。有朋友可能不同意了,說在創業公司有很多機會做不同的工作啊,我想說的是,即便是創業公司,公司總是有主營的業務和方向的,就算能從前到後一個人做一個網站,那又怎樣,從技術上說,無非也就是掌握了一種或幾種資料庫,一門或幾門後台語言,掌握了html,js,css...大公司呢?更難了,大公司雖然方向很多,但是越是大的公司,個人的螺絲釘效應越明顯,你可能成為領域專家,但很難有機會成為完整的機器的。那麼全棧程序員的磨練靠的是什麼?靠的是一種打心底里的執著和毅力,把技術當成生活,自己逼自己不斷的獵取知識。
難以界定,每個人都有不同的理解
剛才其實沒有鄙視能夠完整做網站的人,相反,很是欽佩。至少本人現在在css上還不能算能完全獨立。不過每個人對FSD的定義其實不一樣,這跟個人的閱歷有一定的關系。只想說,既不要對自己過分自信,也不要過分貶低。一方面,人外有人,天外有天,每個人覆蓋到技術領域是有差異的;另一方面,FSD其實挺不容易的,不僅不容易達到,而且不容易獲得存在感。正因為見的多,所以就越覺得自己渺小,我們經常說的,真正的大牛從來就是低調和謙虛的。而FSD在任何領域都不是那種呼風喚雨的專家,別人在討論的時候可能永遠都沒有你插話的機會,其實你心裡知道,自己還很膚淺。個人自認為是比較接近這么一個性質的程序猿,可以從我的博客的文章內容略窺一二。但是正如我不敢斬釘截鐵地將自己定性到這么個層次,恐怕很多全棧程序員也不能將自己明確在這個定位上,因為總有人能站出來給你一個"反例"。
何去何從
從知乎上的回答來看,FSD似乎並不吃香。縱觀人類發展歷程,更細致的社會分工造就了生產力的提高。就程序員行業而言,越來越趨於細分話,似乎也是正常的趨勢。作為FSD,實際上挺難的,主要是因為精力的限制,無法在廣度和深度上兼顧。盡管如此,個人覺得FSD還是有很明顯的優勢的:
見多識廣,解決問題的手段比較多,而且往往能夠觸類旁通的思考;
不容易被某種技術的新衰而左右,很容易轉型;
合格的FSD往往具有超強的毅力和極客精神,這在某些情況下是很有用的;
由於能力廣泛,又吃苦耐勞,適合創業;
個人理解
針對Web開發的話,稍稍談一談個人對全棧程序員能力的界定,大牛們輕拍:
用戶體驗層面,html45,javascript,css23,各種前端的框架...
後台業務邏輯層面,各種編程語言,現在主流的有Java、C#、Python、Ruby、PHP、Node.js...,以及配套的各種開發框架...
輔助層面可能會涉及到C、C++等較為古老的編程語言,需要一定程度上熟悉掌握...
資料庫,會設計和使用幾種常用的資料庫,mssql、mysql、oracle...,資料庫分析和優化
架構層面,能夠設計靈活可靠,易擴展的軟體架構和硬體架構。這個層面上要掌握的東西就很多了,網路、存儲、操作系統、web伺服器、web架構,安全等等...
一些基礎理論層面的東西,演算法數據結構、編譯原理、網路基礎...
數據分析,數據挖掘
管理層面,眾人拾柴火焰高,一個人再牛b,精力是有限的,如果能夠聚集並領導更多的人,那就更全面了。這包括項目管理,持續集成,敏捷開發,版本控制...
移動開發
『叄』 什麼是全棧工程師
近國內外都在流行一個詞叫Full Stack,中文翻譯過來叫全棧工程師,也叫全端工程師。微博上很多專業人士都在討論全端工程師,有贊有毀的。我對全端工程師的定義是:掌握多種技能,並能利用多種技能獨立完成產品的人。打外比方,全棧工程師就是一個能獨立蓋一幢10層小洋樓的人,而普通工程師,則是可以和一群人蓋一幢摩天大樓的人。至於要掌握哪些技能,我覺得這個要跟從事的行業與技術方向有關,做互聯網的和做軟體的是不一樣的,即使是做互聯網的,後端也可以分為很多種技術流派。
8/2定律在哪都適用,全棧工程師就是掌握20%常用技能的人,但這20%的技能會有80%的幾率被用到,剩下那80%不常用的,讓我們Google吧。
有人說,全棧工程師在中國已經很多年了,他們叫站長。這個說話有點靠譜但又不那麼靠譜,我自己也做過站長,深知作為一名站長需要掌握很多種技術。不靠譜的是,很多站長其實並沒有真正寫過多少代碼,而是熟練利用一些建站軟體來建站。
全棧工程師的價值
有人說了,你再牛逼,你懂五種技術,你能幹五個人的活嗎?全棧工程師並不是說一個人能幹幾個人的活,而是要從多個方面來看這個問題。
全局性思維
現代項目的開發,很少說只用到一兩種技術的,特別是移動互聯網大潮下。隨便一個互聯網項目中用到的技術,就會需要用到後端開發、前端開發、界面設計、產品設計、資料庫、各種移動客戶端、三屏兼容、restFul API設計和OAuth等等,一些比較前衛的項目,可能會用到Single Page Application、Web Socket、HTML5/CSS3這些技術,還有像第三方開發像微信公眾號微博應用等等。
Web前端也遠遠不是從前的切個圖用個jQuery上個AJAX兼容各種瀏覽器那麼簡單了。現代的Web前端,你需要用到模塊化開發、多屏兼容、MVC,各種復雜的交互與優化,甚至你需要用到Node.js來協助前端的開發。
所以說一個現代化的項目,是一個非常復雜的構成,我們需要一個人來掌控全局,他不需要是各種技術的資深專家,但他需要熟悉到各種技術。對於一個團隊特別是互聯網企業來說,有一個全局性思維的人非常非常重要。
像如果是我經手的項目,我肯定會注意到網頁優化,也會考慮到API來兼容各種客戶端,更會考慮到三屏兼容的問題。不會說項目中完全使用AJAX而不顧SEO,也不會為了功能性而忽略訪問速度,我會很好的把握這個平衡,因為我知道它們的權重與實現成本。
溝通成本
項目越大,溝通成本越高,做過項目管理的人都知道,項目中的人力是1+1<2的,人越多效率越低。因為溝通是需要成本的,不同技術的人各說各話,前端和後端是一定會掐架的。每個人都會為自己的利益而戰,毫不為已的人是不存在的。
而全棧工程師的成本幾乎為零,因為各種技術都懂,胸有成竹,一不小心自己就全做了。即使是在團隊協作中,與不同技術人員的溝通也會容易得多,你讓一個後端和一個前端去溝通,那完全是雞同鴨講,更不用說設計師與後端了。但如果有一個人懂產品懂設計懂前端懂後端,那溝通的結果顯然不一樣,因為他們講的,彼此都能聽得懂。
創業公司
對於創業公司來說,全端工程師的價值是非常大的,創業公司不可能像大公司一樣,各方面的人才都有。所以我們需要一個多面手,各種活都能一肩挑,獨擋多面的萬金油。對於創業公司,不可能說DBA前端後端客戶端各種人才全都備齊了,很多工作請人又不飽和,不請人又沒法做,外包又不放心質量,所以全端工程師是省錢的一妙招。雖然說全端工程師工資會比一般的工程師會高很多,但綜合下來,成本會低很多。
全棧工程師的困境
我講技術有兩個發展方向,一種是縱向一種是橫向的,橫向的是瑞士軍刀,縱向的是削鐵如泥的干將莫邪。這兩個方向都沒有對與錯,發展到一定程序都會相互溶合,就好比中國佛家禪修的南頓北漸,其實到了最後,漸悟與頓悟是一樣的,頓由漸中來。
如果一個公司不太懂全棧工程師的價值,那麼全棧工程師的地位將會很尷尬,說得不好聽一點,全棧工程師就是什麼都會,都么都不會。曾經有一次面試,對方問我很基礎的問題,我答不上來,我能做出產品,也知道什麼是怎麼一回事,我也不會犯那些錯誤,但我就是答不上概念,要考倒我非常容易。所以在應聘面試的時候,有些時候會吃虧,你可能會不如哪些在某一方面鑽得很深的人工資拿得高。
由於經常在各種技術穿梭,我會經常忘記代碼的語法和一些API,所以我經常需要去查API甚至查語法,我覺得沒有Google我幾乎沒法工作。這在某些人的眼裡,是技術不夠的表現。我記的只是一個Key,一個如何找尋答案的索引,而不是全部,人腦不是電腦,我不可能要求我能記下所有的東西。
有一次面試官問我一個問題,我說我不知道,但我猜大概是如此這般,對方問我,你為什麼這么猜,我說憑直覺,對方笑了笑沒說話。面試完後我一查,果然和我猜的差不多。沒錯,我就是憑直覺,但這種直覺和女人的直覺不一樣,這種直覺是技術上的直覺,是你過去技術經驗累積的一個反射。
我不是一個非常專業的Web前端,也不是一個非常專業的Node.js開發工程師,更不是一個非常專業的iOS開發工程師。用人單位會問我,你到底是專業做哪一個方面的,我為什麼要給你這么高的工資?
有什麼資格來談全棧工程師
我應該算是一個全棧型工程師了,行業經驗已經超過10年。獨立做過不少產品,也帶過不少項目,經過的產品包括桌面端、Web產品、移動端產品,Web端涵蓋前端與後端,移動端主要做iOS和混合開發。
熟悉Web前端,對MVC/模塊化開發有實戰經驗,熟悉CoffeeScript、Grunt、RequireJS、Handlebars等等,自己寫過小型的Javascript框架,一個項目中的JS代碼超過一萬行。熟知網頁優化,知道如何讓網頁變得更加快速。也略懂SEO,知道什麼樣的URL和代碼會更討好Spider。
熟悉Node.js,有幾個項目都是基於Node.js的,目前發布有開源的Blog程序Purelog,在NPM上有多個模塊發布。熟悉混合開發,過去我曾經有超過一年的時間是在研究Hybrid技術,多個App基於混合開發技術,也有開發類似於PhoneGap的解決方案。對HTML5在手機上的表現頗為熟悉,挖過很多的技術坑,如白屏問題,Sqlite問題,滾動條問題,硬體動畫加速、點擊延時問題等等。
會做設計,熟悉Photoshop,所有的產品不管是Logo還是界面全都是自己做的設計,雖然在資深的設計師眼裡不值一提,但在工程師隊伍中算是比較另類了。
熟悉Objective-C,有兩年以上的iOS開發經驗,在App Store上有約十款App。熟悉伺服器的一般性操作,自己有VPS並運行多個網站,雖然配置伺服器經常要去Google。
早年曾經做過一年的Delphi,也曾做過幾年的ASP.net,雖然這些技術我目前已經放棄,完全轉向*nix平台,但累積下的經驗是在的。多年的項目管理經驗,曾在三個公司擔任過項目經理,累計項目管理經驗超過4年。在多個科技門戶發表過技術和評論文章。
為什麼我會成為全棧工程師
我相信很多全棧型工程師會和我一樣,是因為要創業才成為全棧型工程師的。我有一顆創業和做產品的心,而且我又是一個不願意麻煩別人的人,有些人擅長整合資源,空手套白狼,但我顯然不是這種人,所以我只好自己做了。
在經歷過兩次孤獨的創業之後,我發現我並不是一個適合獨立創業的人,所以,我成為了一個全端工程師。我最初是做ASP,後來自己創業寫客戶端用Delphi,然後寫了三年的ASP.Net,2010年的時候因為公司需要開始做iOS開發。Web前端是一直自己在做,項目中的的Javascript基本都是我自己在做。
我熱愛寫代碼,熱愛重復發明輪子,熱愛新技術,我想這也是我成為一個全棧工程師的重要原因。
於我自己來說,我覺得全端工程師的樂趣要比一般工程師來得多,因為你知道一個產品的形態,你可以去設計一個產品,你是從全局的視野來做事情,你得到的成就感會更多一些。
『肆』 全棧開發去哪裡學
隨著互聯網行業的不斷發展,開發團隊的角色分工越來越細,雖然明確的角色能夠更加專注於某個領域,但是對於大量的基礎開發任務來說,全棧工程師往往更實用,現在不少科技公司對於全棧工程師也比較認可,這從一定程度上也促使不少程序員向全棧方向發展。
要想成為全棧開發人員,至少需要具備以下的知識結構:
第一:扎實的計算機基礎知識。計算機基礎知識的掌握情況對於全棧工程師來說是比較重要的,這些基礎知識包括操作系統、計算機組成原理、計算機網路、資料庫、演算法設計、數據結構、電子電路、編譯原理等內容,掌握這些計算機基礎知識是學習能力和研發能力的重要保障。
第二:掌握多種編程語言。目前比較流行的編程語言有幾十種,每種編程語言都有其特定的應用場景,雖然有的語言也可以從事全棧開發,比如Python全棧開發、Java全棧開發等,但是要想應對不同的開發場景,往往需要全棧工程師掌握不同的編程語言。對於全棧程序員來說,通過工作崗位經驗的不斷積累往往能夠接觸到不同的編程語言,從而逐漸走上全棧開發的道路。
第三:掌握多種開發場景。開發場景往往與應用場景、開發周期、團隊配置等因素有直接的關系,另外也與開發平台有較強的關聯性,比如大數據開發往往需要使用Hadoop、Spark等平台,對於全棧程序員來說,需要具備在不同開發環境下進行開發的能力。從這個角度來看,全棧程序員往往需要大量項目經驗的積累。
全棧開發人員需要具備豐富的知識結構,同時具有較強的學習能力和開發能力,所以要想成為一個全棧程序員,一定要不斷積累工作經驗並經常總結。
我從事互聯網行業多年,主要的研究方向集中在大數據和人工智慧領域,我會陸續寫一些關於互聯網技術方面的文章,感興趣的朋友可以關注我,相信一定會有所收獲。
『伍』 作為一名程序員大家是如何接私活的,有什麼網站
用了一個多月時間,嘗試了開源中國,碼市,猿急送,程序員客棧,豬八戒(類似各種威客),QQ群接單,很可惜,沒有遇到一個像樣的單。平台注冊有的鄭和要平台費或者認證費,QQ接帆叢褲單價格低到500做一個網站。遇到個奇葩,付了1500預付款要做一個系統,天天催進度,熬夜做了兩星期,還把介面文檔寫好,還寫了個別的系統對接的SDK,隔了態簡幾天說要找人測試,然後人就突然消失了。
『陸』 什麼是Web全棧工程師
cs201 全棧軟體工程師免費下載
鏈接:https://pan..com/s/1uvC9DjwH3O3qemDwhmO_OA
全棧工程師是指掌握多種技能,勝任前端與後端,能利用多種技能獨立完成產品的人。
『柒』 程序員一般都會用什麼網站學習課程啊求推薦專業又平價的,感謝!
程序員可以使用多種在線網站來學習課程,這些網站包括:
Coursera:Coursera是一個在線教育平台,提供了許多編程課程,包括數據科學、編程語言和技術。
Udemy:Udemy是一個在線教育市場,提供了許多關於編程、開發、計算機科學等方面的課程。
edX:edX是一個開源在線學習平台,提供了從初級到高級的計算機科學課程。
Codecademy:Codecademy是一個在線編程學習平台,提供了從初級到高級的課程,幫助程序員學習編程語言和技能。
Pluralsight:Pluralsight是一個在線教育平台,提供了許多關於編程、開發、計算機科學等方面的課程。
這些網站都提供了高質量的課程,可以幫助程序員提高技能和學習新知識。不同的網站可能有不同的特點和優勢,程序員可以根據自己的需求和喜好來選擇適合自己的學習平台。