這是我在知乎上的一個(gè)回答, 如果有興趣的同學(xué)可以在知乎上搜索我的賬戶(hù): jsppedu。
1、橫向分類(lèi)
前端:html、css、JAVAScript
后端:php、MySQL
2、責(zé)任分類(lèi)
HTML:負(fù)責(zé)網(wǎng)頁(yè)結(jié)構(gòu)部分
CSS:負(fù)責(zé)網(wǎng)頁(yè)布局與樣式部分
JavaScript:負(fù)責(zé)網(wǎng)頁(yè)程序邏輯、動(dòng)態(tài)渲染與特效部分
PHP:負(fù)責(zé)服務(wù)端邏輯與數(shù)據(jù)庫(kù)操作部分
MySQL:負(fù)責(zé)數(shù)據(jù)存儲(chǔ)部分
3、學(xué)習(xí)技術(shù)與人的類(lèi)比
1、首先,人要有一個(gè)基本的組成(頭、身體、胳膊、手、腿、腳)
-> 學(xué)習(xí)HTML
2、其次,人要有一個(gè)所有組成部分的有序組合和著裝(將各部分組成一個(gè)身體并穿上衣服)
-> 學(xué)習(xí)CSS
3、再其次,人需要有一些邏輯思維來(lái)支撐人的活動(dòng)能力(吃飯、睡覺(jué)、運(yùn)動(dòng)等)
-> 學(xué)習(xí)JavaScript
4、再次,人需要有動(dòng)腦思考問(wèn)題的能力(比如學(xué)習(xí)、解決問(wèn)題、道德行為等)
-> 學(xué)習(xí)PHP
5、最后,人需要一些知識(shí)、信息的儲(chǔ)備來(lái)武裝自己成為一個(gè)有能力、有素養(yǎng)的人
-> 學(xué)習(xí)MySQL
4、基本總結(jié):HTML/CSS -> JavaScript -> PHP/MySQL
5、具體分析
1、所謂『全棧』
對(duì)于初學(xué)者來(lái)說(shuō),全棧是引以為豪的稱(chēng)謂。
對(duì)于成熟的工程師來(lái)說(shuō),全棧大多數(shù)情況下是個(gè)貶義詞。
原因:初學(xué)者為了完成一個(gè)完整的項(xiàng)目,會(huì)快速學(xué)習(xí)前后端所有己需的技術(shù)點(diǎn),但無(wú)論前端還是后端,都是一門(mén)技術(shù)。首先,任何開(kāi)發(fā)者的開(kāi)發(fā)技術(shù)的成熟都依賴(lài)的堅(jiān)實(shí)的理論基礎(chǔ)和業(yè)務(wù)經(jīng)驗(yàn),所以往往自學(xué)的開(kāi)發(fā)者很難勝任企業(yè)的開(kāi)發(fā)任務(wù),任何企業(yè)都需要易讀、易維護(hù)、易擴(kuò)展、并且科學(xué)的項(xiàng)目架構(gòu)和代碼,而往往缺乏理論基礎(chǔ)和業(yè)務(wù)指導(dǎo)的學(xué)習(xí)者,很難將項(xiàng)目的開(kāi)發(fā)做到以上的要求,這也就出現(xiàn)了自學(xué)成才的初學(xué)者始終都處在『全棧自嗨』的狀況中。而殊不知全棧的感念誤導(dǎo)了自己,變成一個(gè)非職業(yè)、非專(zhuān)業(yè)的代碼生產(chǎn)者。其次,缺乏扎實(shí)的理論基礎(chǔ)的學(xué)習(xí)者,很難理解更加高深的技術(shù)點(diǎn),比如函數(shù)式編程中的柯里化、偏函數(shù)、ECMAScript中的原型、閉包、圣杯模式等等,這就阻礙了學(xué)習(xí)者進(jìn)一步提升開(kāi)發(fā)能力的步伐。
一個(gè)成熟的工程師,絕不敢說(shuō)自己的全棧工程師,因?yàn)樽约盒睦锴宄业募夹g(shù)門(mén)類(lèi)是前端,前端我是專(zhuān)業(yè)的,就算我確實(shí)會(huì)寫(xiě)PHP、Java,我也不敢說(shuō)我精通或者我也可以承擔(dān)后端的工作,這是一個(gè)工程師的態(tài)度,所謂術(shù)業(yè)有專(zhuān)攻嘛。
如果的如果
你就想什么都會(huì),根據(jù)前述,導(dǎo)出一個(gè)學(xué)習(xí)順序:
1、HTML/CSS在一個(gè)階段學(xué)習(xí):結(jié)構(gòu)和樣式必須一起學(xué),才有直觀感。
PS:總得先弄清楚HTML基本的標(biāo)簽吧!
也少不了學(xué)完后,做個(gè)京東淘寶首屏,我不會(huì)做!
摳破腦袋,給我摩出來(lái),這是必經(jīng)之路。
抱歉!給你壓力了!
2、JavaScript單獨(dú)學(xué)習(xí):(傷不起的前端在此刻出現(xiàn))
JavaScript是一個(gè)很難的語(yǔ)言!!
再成熟、再牛X的前端工程師也會(huì)說(shuō)同樣的話(huà)。原因是因?yàn)樗朱`活。
怎么寫(xiě)好像都對(duì),但你就是不知道怎么寫(xiě)。有同樣的感覺(jué)吧?
他,分為三個(gè)部分:
1、ECMAScript 2、DOM 3、BOM
懂行的都知道ECMAScript對(duì)于初學(xué)者來(lái)說(shuō),是最難的部分,什么作用域、什么原型原型鏈、什么閉包、什么對(duì)象數(shù)組一大堆東西。如果你在學(xué)習(xí)JavaScript時(shí),覺(jué)得特簡(jiǎn)單,對(duì)不起,我只能建議你重新學(xué)習(xí)。學(xué)習(xí)ECMAScript周期最長(zhǎng)。
DOM也不簡(jiǎn)單,因?yàn)?......內(nèi)容也非常多,什么遍歷樹(shù)、什么節(jié)點(diǎn)、什么元素、一大堆兼容性封裝,什么冒泡捕獲事件代理、什么鼠標(biāo)鍵盤(pán)行為、什么拖拽、什么鼠標(biāo)行為預(yù)測(cè)、什么雙擊單擊 一大堆封裝、什么DOM事件處理函數(shù)邏輯、一大堆案例等著你做。
BOM相對(duì)簡(jiǎn)單,需要掌握的不多,強(qiáng)調(diào)一下,不是沒(méi)用,是兼容性不好,畢竟是孤兒,沒(méi)有規(guī)范,所以就只能將就用一下,但你也不能忽略他其中的單頁(yè)面應(yīng)用的學(xué)習(xí)。
3、PHP和MySQLy一起學(xué)
PHP的基本語(yǔ)法搞懂以后,你可能想做點(diǎn)啥。
那你就得折騰一下數(shù)據(jù)了,沒(méi)有數(shù)據(jù)就沒(méi)有項(xiàng)目,你懂的。
當(dāng)然,這是你自己要選擇『全棧』的哈,表怪我。
2、所謂『WEB開(kāi)發(fā)學(xué)習(xí)的態(tài)度』
技術(shù)的學(xué)習(xí)本是一個(gè)漫長(zhǎng)的過(guò)程,但是...由于社會(huì)的浮躁感,讓本該有過(guò)程的事變得急于求成而最終跪敗。
所謂全棧,也不過(guò)就是前端 + 后端的技術(shù)能力,而前端和后端各是一門(mén)技術(shù)與學(xué)科,所以真正的WEB開(kāi)發(fā)學(xué)習(xí)的態(tài)度應(yīng)該是鉆研一門(mén)技術(shù),這也是企業(yè)需要的,全棧的稱(chēng)謂在這個(gè)時(shí)代,已經(jīng)逐漸被企業(yè)所唾棄,原因很簡(jiǎn)單,全棧 === 技術(shù)不精,而有人肯定會(huì)吐槽我的觀點(diǎn)說(shuō):很多成熟的工程師都會(huì)前后端,人家多成功啊。但你不知道的是全棧作為技術(shù)鉆研是可敬的,但作為技術(shù)的炫耀與稱(chēng)謂是可悲的,因?yàn)橐痪涔旁?huà):術(shù)業(yè)有專(zhuān)攻,時(shí)間花在前端技術(shù)鉆研上,你后端的能力肯定會(huì)遜色,反之亦然。不要說(shuō)有很多精力學(xué)習(xí),單獨(dú)一個(gè)前端或后端就夠?qū)W上個(gè)好歹(這里不敢瞎說(shuō)時(shí)間)。
最后希望我的答案,能夠幫助問(wèn)者揭開(kāi)學(xué)習(xí)疑惑,再問(wèn)題的基礎(chǔ)上,我又闡述了很多相關(guān)的東西,我相信問(wèn)者也會(huì)需要。
謝謝各位的閱讀