當(dāng)看到這個(gè)問題之前,我也碰到過很多有同樣疑惑的同學(xué),他們都有一個(gè)共同的疑問該學(xué)php還是nodejs,包括我自己也曾有過同樣的經(jīng)歷。幸運(yùn)的是,通過我內(nèi)心的掙扎和對當(dāng)前市場供需關(guān)系以及行業(yè)發(fā)展前景的綜合衡量評估后,我還是在接觸了java, php之后回到j(luò)s這片天空上來了。一方面是客觀因素,一方面是興趣導(dǎo)致的,前端太好玩了,值得為此奉獻(xiàn)一點(diǎn)激情或青春。
其實(shí)這也是一個(gè)開發(fā)者成長必須經(jīng)歷的一個(gè)洗禮,一個(gè)磨難,一個(gè)挑戰(zhàn),他是一個(gè)必然的過程。很多人不差智商,不輸情商,四肢健全,就是學(xué)不好一門語言。我認(rèn)為最主要還是敗在了堅(jiān)持,專注上面了。經(jīng)受不住內(nèi)心私欲或其它語言的誘惑,都一一敗下陣來。
關(guān)于html5,他是個(gè)新東西嗎?是新瓶裝老酒而已,有實(shí)際處理問題的經(jīng)驗(yàn),可以平滑的過渡,學(xué)習(xí)成本很低,但并不表示沒有。
然后說了解后臺語言,到底要了解到什么程度呢?
其實(shí)說后臺語言,其實(shí)他包括兩類語言,一個(gè)叫操作數(shù)據(jù)庫的語言,比如java,php,nodejs,ruby,python,c#等等。一個(gè)叫數(shù)據(jù)庫操作語言,比如sql,包括insert,update,select,delete四個(gè)動作。所有的頁面的一切數(shù)據(jù)交互都基于這四個(gè)操作。從我個(gè)人的經(jīng)歷推薦兩本書:php與mysql程序設(shè)計(jì),第四版,細(xì)說php,第二版。這兩本都是比較全面的介紹了php,包含了php基本概念與mysql的知識,但都比較淺顯,入門而已。
到現(xiàn)在你會發(fā)現(xiàn),其實(shí)從前端的角度出發(fā),語言有三種:操作數(shù)據(jù)庫的語言,數(shù)據(jù)庫操作語言,操作dom的js。然后就有方向了,學(xué)了js,學(xué)任何一門操作數(shù)據(jù)庫的語言(后臺語言),數(shù)據(jù)庫操作語言,然后就可以自由組合搭配。而且語言之間有很大的相似性,都可以無縫的跨界。區(qū)別的是語言開發(fā)的所依賴平臺,比如c#依賴于.net,php經(jīng)常與apache,mysql結(jié)合,java依賴于jdk等等的。開發(fā)工具也各有不同,比如vs,phpstorm、zendstudio, intellij idea, eclipse等等。但他們的api卻很像似,粗暴點(diǎn)說,你抄我我抄你,你中有我,我中有你。
從前端的角度出發(fā)我推薦2門語言:php,nodejs。想照顧一些老的東西,維護(hù)一些老項(xiàng)目,就選php。展望新方向尤其io操作比較頻繁的可以了解一下nodejs。這兩個(gè)語言各有所長,只是nodejs從語法上來說跟js是無縫的。php的oop跟接近于java的純oop風(fēng)格。但這2個(gè)從操作sql的方面來說,有很大的相似性。按照這個(gè)結(jié)論下來,無論選nodejs,php都可以,可以從主觀上判斷,你更喜歡那個(gè)?;蛘咦鲆粋€(gè)小的留言板,看看那個(gè)更符合你的思維習(xí)慣。
一般的瓶頸就是你得少,建議多寫,用解決實(shí)際問題的經(jīng)驗(yàn)來跨越語言造成的障礙。
建議從以下的順序來鍛煉后臺語言:
1. 留言板,
2, blog
3. 企業(yè)站,
4. 商城
5. 新聞綜合站。
基礎(chǔ)的入門之后,就是框架了,從我個(gè)人淺顯的了解當(dāng)中,分享一下經(jīng)驗(yàn),大概市面上有這幾個(gè)框架:
1. ci 經(jīng)典的輕巧框架,在全球的使用量比較靠前,入門比較簡單。
2. thinkphp,國內(nèi)人用的比較多,是國人開發(fā),現(xiàn)在勢頭真猛,比ci封裝的更好,也更傻瓜。
3. yii,這個(gè)是目前全球排名第一的框架,但是入門曲線稍高。
4. zend frame這是有php組織開發(fā)的框架,文檔比較規(guī)范,也比較重,適合構(gòu)建大型項(xiàng)目。
5. laravel 這是一個(gè)呼聲比較好的一個(gè)新型框架,借鑒了Symphony,各方面比較優(yōu)秀,博眾家之所長,但是相對中文資料比較少。
等這些了解了,估計(jì)已經(jīng)入門了,學(xué)習(xí)應(yīng)該找到具體的方向了。另外兄弟連的視頻教程,質(zhì)量一般,勝在量多,從基礎(chǔ)到框架,應(yīng)有僅有,最主要是免費(fèi)。
然后回歸正題,只是建議你了解,點(diǎn)到為止,了解是為了把前端干的更好。那什么時(shí)候真正的深入學(xué)習(xí)?建議在學(xué)好js的前提之下,吃透js。
比如了解js的作用域,閉包,原型,繼承,尤其是作用域與面向?qū)ο笫莏s的特色也是與任何一門后臺語言比較容易混淆的兩個(gè)地方。
請向各個(gè)業(yè)界js大牛看起,不一定非要那么深的深度,但一定達(dá)到自己力所能及的高度。
比如有個(gè)自己的框架,如司徒正美avlon,比如有一個(gè)自己寫的小框架,如玉伯的seajs等等。
另外我個(gè)人的經(jīng)驗(yàn):學(xué)什么語言不重要,重要的是趨勢你學(xué)語言的動力,說白了真正的需求來自那些。我認(rèn)為需求有兩方面。一方面是內(nèi)在主動型的。比如js學(xué)習(xí)到一定的程序,寫了很多demo或想法需要用更個(gè)性化的方式來呈現(xiàn),這時(shí)候需要建一個(gè)個(gè)人網(wǎng)站或博客來管理你的內(nèi)容。這時(shí)候才選擇語言,了解需求產(chǎn)生,開發(fā),發(fā)布上線的流程,對你以后的前端工作也是有幫助的。另外一個(gè)是外在被動型的,比如同學(xué),家鄉(xiāng)的朋友,需要你幫忙做一個(gè)企業(yè)網(wǎng)站,小的電商網(wǎng)站來做為他們初期企業(yè)文化愿景宣傳的一個(gè)互聯(lián)網(wǎng)通道,這時(shí)候就是一個(gè)外在的需求。拿我個(gè)人經(jīng)驗(yàn)來說,我的php經(jīng)驗(yàn)完全是來自于一次接私單的經(jīng)歷。雖然那次私單以失敗而告終,但我在一個(gè)月的業(yè)余時(shí)間里邊徹底的了解了php的開發(fā)方式,語言特征,后來根據(jù)這個(gè)基礎(chǔ)我成功的開發(fā)上線了另外一個(gè)朋友的個(gè)人網(wǎng)站:http://jing-ui.com,這個(gè)網(wǎng)站的開發(fā)心得一直想寫,但機(jī)會不湊巧,只能說敬請期待。明確一個(gè)自己感興趣的目標(biāo)之后,在選擇語言,以興趣引導(dǎo)語言,學(xué)習(xí)才有動力。比如做網(wǎng)站,那可能就是php,nodejs,做個(gè)簡單的blog,在實(shí)踐中慢慢了解語言,在學(xué)習(xí)中慢慢成長。 nodejs或php都有各自的應(yīng)用場景,要么選一個(gè)公司現(xiàn)在用的,要么選擇一個(gè)適合自己思維的。
如果你學(xué)會了其中的一個(gè),然后在去了解其它的,可以說,入門會很快,因?yàn)槔镞呌泻芏嘞嗤臇|西。
最后總結(jié)一下我個(gè)人的心得:每個(gè)人都有好奇之心,這對做技術(shù)的來說并不是什么壞事,正因?yàn)檫@顆好奇之心,不斷的帶領(lǐng)向前邁進(jìn)。另外了解一下滿足一下好奇心沒什么不好。就如同我當(dāng)時(shí)學(xué)習(xí)php一樣,感覺學(xué)習(xí)之后有多牛B,真正的學(xué)習(xí)后做了一個(gè)網(wǎng)站出來之后發(fā)現(xiàn),確實(shí)收獲不少,對前端也有幫助。但是js的水平還是在原地,除了擅長使用jquery之外,并沒有太多的擅長。
到目前為止我感覺,還沒有達(dá)到一個(gè)自己滿意的力所能及的高度,努力中。但人的精力是有限的,能力是有限的,在有限的精力里邊把一件事情做好就已經(jīng)很不錯(cuò)了。
-
工程師
+關(guān)注
關(guān)注
59文章
1570瀏覽量
68531 -
前端
+關(guān)注
關(guān)注
1文章
192瀏覽量
17757 -
HTML
+關(guān)注
關(guān)注
0文章
278瀏覽量
35403 -
HTML5
+關(guān)注
關(guān)注
0文章
73瀏覽量
17416 -
node
+關(guān)注
關(guān)注
0文章
23瀏覽量
5937
發(fā)布評論請先 登錄
相關(guān)推薦
評論