如何系統學習Web全棧開發?

畢業前,準備面向北上廣、有Java基礎、OC基礎、io 、Thread 、Socket了解

常見的設計模式也有實踐、開發過一個Web項目,

想要轉到Web全棧開發…

PS:google後、膜拜並嚮往著。

某機構的知識體系圖:

***********************分割線**************************

看了後,繚亂(╯°□°)╯︵ ┻━┻,這些知識要不要這麼零碎。

PS:來知乎求助了

想要知道在目前web全棧的開發人員,經理們。或者正在學習的學長們~

web全棧如何找到明燈、。

有哪些書籍,資料,bbs,視頻,可以去架起整個全棧體系!!

help…。 ((((;?Д?))))))) ┬─┬ ノ( ゜-゜ノ)

GitHub: https://github.com/onweer

相互Follow~學習

=====================分割線=====================

2016年5月

我來更新了:已找到node.js的一份全棧工作~


就是沒事兒了就寫個網站,一開始先能跑起來,之後頁面不能太難看吧?你得學前端,頁面邏輯越來越複雜,你得上前端框架了吧,用站的人越來越多了,你得優化服務端性能了吧,發現自己菜成狗的時候,你得上伺服器框架了吧……發現資料庫io成問題的時候,你得理解資料庫了吧……反正覺得實踐中遇到問題,解決問題,總結,再反覆,這樣是我認為的科學的方法。

----------我是華麗的分割線--------------------------------------------

接下來想說說我是怎樣變成一個全(dou)棧(bi)工程師的...Orz...也是人生第一次大篇幅回答問題,想想就有點小激動呢Orz...

最前面的話

現在感覺世界上的各種選手,對於全棧工程師褒貶不一。貴知乎上面也是有很多在黑全棧工程師的大大們。我個人的看法是聞道有先後,術業有專攻。每一種的技術棧形態的形成必定都是時代所需,大家都是為了感受coding帶來的快感,何必文人相輕,非要較個你高我低。如果看到這裡已經忍不住想吐槽怒噴,那還是跪求不要再看下去了。

入門

我的入門是從web前端開始的,然後之後又做了一些gwt相關的項目,對於前後端的開發大致有了一些了解。再後來去了一個稍微大一點的廠進行了實習web前端,當時的感受是每天百分之五十的時間都是跟後端在介面上撕逼,不慎酸爽。再後來到了同學的公司進行實習,於是發現這裡的選手都是一個打10個的選手,每天說自己什麼都不會但是隨便一說虐你10條街, @朱文雷@劉超凡@DoG A@Chao Liu@Dont Panic 於是也不知道自己到底會幹什麼了。當時做了一個整理一些lib,然後寫demo 跑通所有流程的工作,於是遇到了很多平時幾乎用不到的問題。也跟著各位大仙們一起學習了很多很多解決問題的姿勢。所以我覺得入門最重要的事情就是要多折騰,什麼不會玩什麼,慢慢就會了....入門要達到的目的就是前後端打通,知道是怎麼個流程。

發展

之後就是加入linkedin中國之後的事情,一直在web前端和後台之間遊離,甚至還做過一小段安卓的工作,近半年也在做一些自動化測試相關的工作。由於是快速迭代和敏捷開發,之間學習和使用了很多敏捷開發的東西。接觸到了一些優秀的前後端的框架以及工具。比如時興的react和貌似過氣的angular,小眾的coffeescript,更小眾的ruby on rails,以及有我司實習生的merge-request的gin,還有更小眾的calabash種種。。。這裡面遇到過很多很多問題,絕大多說都是gg解決的,這裡感謝@cr同學(順路吐槽知乎的圈人系統,我關注的人居然圈不到),記得有一次遇到的一個angular的bug居然是我發現的前幾天剛剛修好的。這一階段的感覺就是要不斷的嘗試,不斷地反思,這一次的這樣的選擇為什麼好或者為什麼不好,然後下一次在做選擇的時候要進行哪些改進。搭車感謝一下放任我隨意折騰的老闆迪哥和視我的我的代碼為糞土的夢南。

反思

對於一個全棧工程師最總要的幾點:

1. 勇於折騰,多嘗試更多技術,姿勢,體位,堅持嘬死。

2. 一個強大的解決問題(gg)的能力,一般踩到的坑大部分人都踩過,感覺總是能搜到的。

3. 善於總結和反思,用於接受打臉和撕逼。

心目中的好的全棧工程師應有的素質:

1. 快速的項目介入和上手能力。

2. 精準的技術選型能力。

3. 強大的問題劃分能力和解決能力。

4. 優秀的代碼質量。

5. 良好的補位意識和團隊意識。

感覺跑題了,題主問的是如何學習,再說就不知道說到哪裡去了,願題主早日把他截的圖的東西都學會吧,感覺一年時間應該夠了?我去抓貓貓了T_T


~~~~~~~~~~~~~~~~廣告時間~~~~~~~~~~~~~~~~~~~~

開源電子書《Growth:全棧增長工程師實戰》與《Growth: 全棧增長工程師指南》

Growth: 全棧增長工程師指南

這是一本指導性的書籍——不要指望從這本書中學到所有的知識點,但是它可以幫你構建你的知識體系。我們都會學習,但是有時候我們只是不知道應該學習什麼而已。這也是其他技術書籍所欠缺的。它可以告訴你,你可以學習什麼,然後看什麼書。

對於有些人來說,成為全棧是因為:來自社會的各個不同的中小公司,只靠一個領域的知識難以生存 對於有些人來說,成為全棧是因為:這個世界有太多的樂趣,在一顆樹上弔死太可惜了。 對於有些人來說,成為全棧是因為:他們想去創業。

而人們對於全棧有太多的誤解——認為全棧應該什麼都會,什麼都精通。全棧只是因為我們對系統有整體性的認識,而不是精通整個系統。因為專家只精通某一個領域,總得有一個架構師來對系統把握。

我更願意去改稱這本書為《增長工程師指南》,去避免對這本書的誤解。但是我想要去改變人們的觀點,全棧更側重於知識體系的增長。因為人們對於專家還有一個印象:古板。

全棧增長工程師實戰

在Growth中我們介紹的只是一系列的實踐,而Growth實戰則會帶領讀者去履行這些實踐。你將會看到:

  • 如何開發一個Web應用(博客)
  • 如何編寫測試——單元測試、功能測試、自動化UI測試
  • 搭建並使用持續集成
  • 添加SEO支持——Sitemap、站長工具和Google Analytics
  • 創建API,製作AutoComplete
  • 開發相應的APP及其API——查看文章、用戶登錄、發表文章
  • 製作單頁面應用
  • 可配置管理


謝邀。

全棧工程師對各方面能力要求都很高,成為一個全棧工程師是一個遠大的目標,但除了知道全棧工程師薪資待遇很高之外,首先你必須先清楚為什麼全棧工程師會擁有這樣高的待遇和地位。

全棧工程師與其說是掌握某個領域產品的全棧技術,到還不如簡單來說是擁有能夠獨立實現一款產品的能力(擁有這種能力和是否需要你這麼做是兩件事,這裡談的是需要先擁有這樣的能力)。

所以啊,題主如果想成為一個全棧工程師,最快最有效的方式莫過於能夠作為多個產品化項目的負責人,全程參與和主導項目的完成。題主需要明白的是,在計算機技術這個領域,哪怕是業界出名的全棧工程師也不可能各個領域全部都能夠理解,更多的是水平高的工程師對業務和產品以及技術體系有很深的理解,這樣的人哪怕面對新技術、新風格也一定能夠快速掌握(要知道,在正式項目中,架構師在做架構設計的時候必定需要考慮風險點,其中所用到技術的可靠性和學習成本是最重要的風險點之一,如果時間不會過分緊的話會有一小段時間供你快速掌握的)。

然而你可能會問,我剛剛畢業,或者還沒有畢業的時候,我沒辦法負責主導一個正式項目,那我該怎麼辦?根據我個人的經歷來說,程序員大多數是一群靠譜的老實人,在你做好本職工作的前提下,你向前輩或者技術領導提出想看一下架構文檔,或者需要他來幫你講解一下架構和技術選型,我想別人如果有空的話一般來說都是很樂意的(程序員裝逼基因永遠在騷動)。當你得到這些架構設計時,仔細反覆研讀推敲,推敲設計者在設計時的情景以及做這些技術決策的原因(都說架構實際上是一系列決策的組合),時間長了自然而然就好了。

畢業前想成為真正的全棧工程師,樓主我勸你還是不要把步子邁的太大,反正要是我收到一份自稱自己是全棧工程師的應屆生簡歷的話一般覺得99%是來逗我的,1%是遇到神了。

好好研究自己的技術,做好做精,多經歷一些實際項目,多思考和探索保持向上之心,每個程序員都能成為全棧工程師。


不要迷信全棧!

不要迷信全棧!

不要迷信全棧!

知識體系圖是什麼鬼?naive~

知識爆炸的年代,居然還迷信什麼知識體系圖啊?找虐還是怎麼滴??

光我大前端的知識體系圖就夠你喝n壺了~

言歸正傳,我個人支持「業務驅動」。那麼問題來了,怎麼做?(直接以當前在做的項目為例)

1.全景直播平台的搭建

1.1 需求分析

要做一個全景直播平台的核心需求是什麼?

- 支持直播的全景播放器

- 穩定的流媒體伺服器

- 直播狀態管理伺服器

- 其他相關內容(業務優化什麼的~)

1.2 知識儲備

1.2.1 要做到直播,涉及到三個重要的環節

- 推流(比如使用obs、ffmpeg等推送rtmp或者hls流)

- 轉發(這裡針推不同的情況,可以推送rtmp/rtsp/hls/other)

- 播放(這裡當然就是視頻了,根據平台可以分為flash使用的hls或者rtmp、rtsp,移動端hls)

1.2.2 要做到「平台」級別,當然要求是可以支持n個直播!

- 伺服器選擇,為了應對所謂「高並發」,完全可以放棄伺服器渲染,生成靜態頁面丟到雲存儲

- 緩存問題,上一步適用雲存儲存放頁面,這裡配置cdn來做緩存,基本解決了多人觀看的問題

- 另外可選方案是配置負載均衡(加n個伺服器,適用輪訓之類的方式來對不同區域不同人訪問)

1.2.3 狀態管理,更新邏輯

- 頁面既然已經是靜態了,那麼狀態最好的方式是ajax方式來管理了,設置一定時間的輪詢也可以

- 中心伺服器當然是要有狀態的,至於怎麼管理自己決定就好

1.3 其他內容

...

按照當前需求來獨立實現這些功能,自然而言,該學習的東西都會學習到了。

完了嗎?NO !

我理解的全棧,不是你用了什麼技術,不是你解決了什麼問題,

而是,你怎麼解決問題,如何應對需求,以及需求變更。

熟記一些知識點當然要比我這種用到查文檔的人要專業,但是吧,多做一些類似的事情,你會發現,這些坑,填完了,要是能同時記住一些重要的點,對以後做東西是灰常有用的~


被邀請了兩次,就回答一下吧。

說實話,那圖(網上還有很多類似的)很唬人,其實基本功好了,就知道那些只是三生萬物了。

想學好前端,就從把http://www.w3school.com.cn上html,css.javascript三個章節看清楚開始(只看這三個,不包括網站上html5,xhtml,css3等等衍生欄目)。


web全棧簡單的說來就是自己開發網站, 缺哪補哪, 從頭開始搭建保證能夠自己一個人做到上線運維即可

從細處講(目前我在公司做的)

域名購買 =&> 主機購買 =&> 域名配置 =&> 伺服器操作系統安裝 =&> 伺服器軟體運行環境配置(包括用戶許可權 防火牆) =&> web數據結構設計(ER圖,資料庫表) =&> web頁面設計 =&> web切圖寫頁面 =&> 後端程序編寫(基本的MVC MVVM 資料庫CRUD 數據緩存 各種中間件) =&> 代碼壓縮混淆自動化上線 =&> 反向代理配置(nginx) =&> 代碼監控及優化

數據量並發量上來之後

分庫分表=&>伺服器docker化=&>自動化部署運維測試=&>消息隊列引入 等等...

能做的很多, 一點一點去做就好了...

以上

2016年02月17日


不多說了,直接丟給你我的《進階全棧工程師之路》專欄的提綱給你吧,這是非常系統的一個提綱。


學web全棧開發,至少有1到3年的經驗積累才適合。

推薦一個web全棧架構的視頻課程 Web全棧架構師,對標百度T6-T7 - 網易雲課堂 看了課程內容,有難度也有深度。


新手還是不要一上來就全棧,好嚇人的好不~

我對全棧的理解是那些大牛在某個技術領域達到一定高度以後,思想+技術逐漸輻射到全局且融會貫通的時候,才能說全棧吧!會用和理解完全是兩個維度的概念,後者+時間的。

我覺得全棧一定分面向前端還是面向後端,因為你一定有自己擅長或者主導的技術池。從發展的角度來說,在思想上你需要在某項技術中來不斷進步,突破!

個人建議3/7原則,70%的時間專註於自己擅長的領域中,30%的時間專註於其他領域中。

搞開發的,切忌別一瓶子不滿半瓶子晃蕩,出了問題滿世界找bug。。


去個小公司的研發部門,工作基本上就等於做各種產品demo,然後前端後台都會讓你搞,還要集成很多新技術來裝飾產品,基本上那裡不會學哪裡,老闆也會給你一定時間學。簡單說就是不追求高性能,只要能演示就成,產品賣出去再慢慢優化(或者就撒手不管了)


前端:Html,JavaScript,Css,學完JavaScript可以學一些庫(Jquery,Prototype等),UI框架(Bootstrap,Amaze Ui)。

後端:Node來得快。

其它:熱門框架(AngularJS,Backbone),包管理工具(Npm,Bower),工程化工具Grunt,Glup學一個。

同門外漢一個,


給你一個直觀的感受吧

前端

所用技術: Vue,Element UI

後端

所用技術: Django Rest Framework


全棧,現在應該是屬於風口職業吧~身邊有朋友是全棧工程師,其實說白了是因為公司需求比較大,希望一個人可以實現很多新技能,公司對人才要求越來越高!

其實主要是可以從三個點去考慮的(轉行之前想):

1、了解清楚全棧包含哪些具體的方向;

2、是否是自己需要的(比如升職、轉型之類的);

3、審視一下當下的技術環境;

還有就是可以多看看資料之類的~主要還是企業對員工的要求會越來越高!

全棧的學習路線,分享一下,哈哈~

【分享一個學習路線圖,可以留言給我~互相交流】

可能不是很全面( 如何輕鬆搞定Node.js 進階全棧工程師必備高薪技能 里扒下來的)哈~

1、基礎模塊:http、基本模塊、event事件、fs文件讀寫、timers模塊等等;

2、進階模塊:promise、buffer、stream等;

3、框架:express、koa;

4、常用第三方模塊;

5、工具:gruntjs、pm2等;

還有就是多逛、多看、多聽吧~


加油


先學資料庫和簡單數據結構, 無論前端後端都用得著。學會這倆,基本上你會對業務有了一定概念在學其他的。


有一本書叫做:web全棧工程師的自我修養,作者是余果,從一個前端工程師的角度出發,分析了全棧的學習之道。


現在不都流行小而精么~


node.js是通往web全棧的捷徑


用java的話,就寫個servlet, get, post, 各種方法玩一遍,返回html字元串。然後再用模板引擎,實現html復用。 然後嘗試ajax,實現不刷新頁面。 代碼多了以後,分層,分mvc. 代碼有規模後,部署到各種web伺服器,架上ga腳本。 用linux,ant自動部署。 再玩memcache以及各種分析工具。


全棧工程師就是javascript工程師。

因為精通javascript,然後你就可以寫前端了,再用node.js寫後端,用react native寫客戶端,據說現在虛擬現實應用也是用js來開發的。


加我qq我們經歷很像,學的java想搞全棧工程師1306187161


不管是什麼工程師,必須精通一門語言,所以,稱為全棧之前,最好熟練或精通某一門語言;全棧要求前後端通吃,現在流行的nodejs全棧也很多。go語言確實很火,加油吧!多看框架源碼,多逛Github,有能力嘗試造輪子,這樣就nb了

https://github.com/giscafer


就是什麼都學,什麼都做一點,接點私活,聰明點大概10年可以完事,笨一點20年也夠了。


推薦閱讀:

egret 和cocos2d-x-js哪個目前更穩定更好用? ?
目前有哪些比較成熟的 HTML5 遊戲引擎?
怎樣以簡單易懂方式向普通人解釋 HTML5 對 HTML 技術的改進?
JS動畫比CSS3動畫性能誰更好?
學習路途迷茫,請各位前端大佬幫忙制定學習路線,我該如何入坑?

TAG:Web開發 | Ajax | HTML5 | Java | 全棧工程師 |