Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
lt;總述>
經(jīng)常有人問(wèn),PHP要怎么學(xué)?沒(méi)有編程基礎(chǔ)能學(xué)會(huì)嗎?到后來(lái)不少人又來(lái)問(wèn)我怎么做PHP,不管是新手小白,還是我們常說(shuō)的老司機(jī),都不能整出一條完整的學(xué)習(xí)大綱。不過(guò),既然我們現(xiàn)在面向課堂公益講課,那么我下面提出來(lái)的或多或少的都是有一點(diǎn)借鑒意義來(lái)幫到大家,少走彎路。
PHP的發(fā)展我就不多做描述了,百度能說(shuō)的更詳細(xì)。大家選擇一門編程語(yǔ)言,也不是看看他的歷史,更重要的是看它的發(fā)展,作為輕量級(jí)的佼佼者,現(xiàn)在被越來(lái)越多的人所接受,想去學(xué)習(xí)。
我在做PHP的時(shí)候,感覺(jué)中國(guó)的PHP環(huán)境越來(lái)越步向成熟,規(guī)范也在逐漸的健全。
<學(xué)習(xí)之路的概述>
希望在介紹之前,對(duì)于那些希望能從我的文章中得到幫助的人說(shuō)一句心里話:
這篇軟文不會(huì)對(duì)幫助大家的學(xué)習(xí)上面起到什么實(shí)質(zhì)性的幫助,是否能學(xué)會(huì)?還得靠自己的毅力,就是學(xué)習(xí)PHP唯一的成功路徑。
學(xué)習(xí)PHP的階段做一下簡(jiǎn)單的概括:
(1)熟悉HTML/CSS/JS/JQ等靜態(tài)網(wǎng)頁(yè)基本元素,能實(shí)現(xiàn)靜態(tài)頁(yè)面
(2)熟悉動(dòng)態(tài)語(yǔ)言的概念,底層機(jī)制,熟悉PHP基礎(chǔ)語(yǔ)法
(3)如何將PHP與HTML結(jié)合起來(lái)完成簡(jiǎn)單動(dòng)態(tài)頁(yè)面
(4)接觸MYSQL,熟悉數(shù)據(jù)庫(kù)程序
(5)了解大部分PHP常用函數(shù),理解OOP,MYSQL優(yōu)化,以及模板
(6)完成一個(gè)基礎(chǔ)功能的項(xiàng)目實(shí)戰(zhàn)
(7)項(xiàng)目的優(yōu)化處理,高級(jí)并發(fā)處理
我所說(shuō)的這套學(xué)習(xí)路線可能和大家大同小異,這也算是一個(gè)循序漸進(jìn)的學(xué)習(xí)過(guò)程,但是細(xì)分下來(lái)的內(nèi)容是比較多的。比如web基礎(chǔ),php語(yǔ)法函數(shù),mysql,OOP,smarty模板引擎,正則,框架,平臺(tái)架構(gòu)等等,沒(méi)有一蹴而就的事情,也沒(méi)有想象的那么難,堅(jiān)持本心才是通往成功唯一的路。
<我的學(xué)習(xí)思路>
首先,理解網(wǎng)站這一概念之后不難看出,任何網(wǎng)站都是由網(wǎng)頁(yè)組成的,也就是說(shuō)想完成網(wǎng)站,必須先學(xué)會(huì)做網(wǎng)頁(yè),因此必須要掌握了HTML,才能為今后制作網(wǎng)站打下基礎(chǔ)。
在學(xué)習(xí)HTML中,我覺(jué)得邊學(xué)邊做是最有效的方式,當(dāng)然這一方式對(duì)于學(xué)習(xí)PHP同樣是最有效的。
HTML中的任何元素都要親自實(shí)踐,只有明白了什么元素會(huì)起到什么效果之后,你才會(huì)記憶深刻,而一味的啃書(shū),絕
對(duì)是不行的,我想大部分新手之所以覺(jué)得概念難學(xué),大部分是因?yàn)橐粋€(gè)字“懶”,懶是阻止進(jìn)步的最大敵人,所以克服懶的習(xí)慣,才能更快的學(xué)好一樣?xùn)|西。
也許您在學(xué)習(xí)PHP的時(shí)候只想盡快的開(kāi)發(fā)一個(gè)網(wǎng)站,也就會(huì)想我做網(wǎng)站,干嘛要學(xué)什么網(wǎng)頁(yè)這些小兒科?不難看出,眼高手低的新手不在少數(shù),這種思想無(wú)疑于建造空中樓閣,你不建地基,何來(lái)的房頂呢?
OK,掌握靜態(tài)網(wǎng)頁(yè)的制作技術(shù)是學(xué)習(xí)開(kāi)發(fā)網(wǎng)站的先決條件,這一點(diǎn)就講到這里,因?yàn)檫@篇文章不是教程文章,也就不對(duì)技術(shù)進(jìn)行深入的刨析了。
我假設(shè)你目前已經(jīng)可以完成一個(gè)靜態(tài)頁(yè)面了,當(dāng)然,做的好看難看是另外一說(shuō),我的第一個(gè)網(wǎng)頁(yè)也沒(méi)好看到哪去,但是“孩子”再丑,咱們做“爹媽”的也不能嫌棄不是?這畢竟是咱的成果。
那么咱們就開(kāi)始學(xué)習(xí)動(dòng)態(tài)語(yǔ)言的概念吧,剛一接觸動(dòng)態(tài)語(yǔ)言,可能很多人都會(huì)蒙了,怎么這亂七八糟的東西,在網(wǎng)頁(yè)里顯示的時(shí)候卻是另外一碼事?其實(shí)這并不算亂七八糟,你寫的HTML代碼不也一樣是一堆堆的字符嗎?畢竟,代碼并不是作為直接輸出的,而是經(jīng)過(guò)處理的,說(shuō)白了,HTML是經(jīng)過(guò)HTML解析器,而PHP當(dāng)然也就通過(guò)PHP解析器了,跟學(xué)習(xí)HTML一樣的道理,想讓任何的解析器完成操作,就必須使用它們專用的語(yǔ)法結(jié)構(gòu),所以PHP長(zhǎng)相奇怪也就不足為奇了。
對(duì)于PHP的理解是新手最難邁過(guò)的一道門檻,不過(guò)你應(yīng)該感到幸運(yùn)的是PHP已經(jīng)最大極限的為了新手而努力了,如果你學(xué)過(guò)其他的語(yǔ)言,也許會(huì)覺(jué)得PHP的確相當(dāng)?shù)暮?jiǎn)單,但是如果你之前什么都沒(méi)學(xué)過(guò),那么阿彌陀佛,硬著頭皮琢磨吧。
書(shū)過(guò)三遍自然熟,這個(gè)簡(jiǎn)單的道理告訴我們,即使你理解不了PHP,但是也必須先跟它混個(gè)臉熟,看,一遍遍的看,看的同時(shí)一邊琢磨,一邊按照它所教的打代碼,即使你搞不清楚那些代碼到底是干嘛的,但是起碼你應(yīng)該找找感覺(jué)。
在一段掙扎之后,聰明的你,顯然已經(jīng)逐漸的開(kāi)悟了,慢慢的理解了編程的概念,那么祝賀你,你已經(jīng)邁出了成功的第一步。
搞清楚HTML和PHP的概念,那么PHP和HTML混合編程應(yīng)該不成問(wèn)題,在這期間,你完全可以讓PHP給你算算 一加一等于幾,然后在瀏覽器輸出,不要覺(jué)得幼稚,這的確是跟阿波羅登月一樣,你打的是一小段代碼,但是對(duì)于你的編程之路,可是邁出了一大步啊!興奮吧?但是不得不再給你潑點(diǎn)冷水,您還是菜鳥(niǎo)一個(gè)。
<學(xué)習(xí)MYSQL數(shù)據(jù)庫(kù)>
高興一段時(shí)間就必須繼續(xù)努力了,接下來(lái)就是學(xué)習(xí)數(shù)據(jù)庫(kù)了,MYSQL可算是PHP的黃金搭檔了,不過(guò),雖然話是這么說(shuō),你也可能恨不得把MYSQL給生吞活剝了,因?yàn)檫@一行一列的東東簡(jiǎn)直讓自己頭暈?zāi)垦!?/p>
在一番搏斗之后,你終于理解了數(shù)據(jù)庫(kù)的概念,而且讓你興奮不已的是你終于可以通過(guò)PHP來(lái)連接數(shù)據(jù)庫(kù)了,這期間你是怎么學(xué)會(huì)的,我們不去考證了,但是事實(shí)證明,你已經(jīng)可以了。
學(xué)會(huì)了PHP和數(shù)據(jù)庫(kù)的你,無(wú)疑是左手拿著 MOTOLOLA右手拿著NOKIA,要多瀟灑,有多瀟灑,哈哈,終于學(xué)會(huì)了,但是可能這個(gè)時(shí)候,又會(huì)有人不經(jīng)意的拍拍肩膀?qū)δ阏f(shuō):哥們,別高興的太早,你還是菜鳥(niǎo),離學(xué)會(huì)還差著一大截呢!
等到你發(fā)奮努力的學(xué)會(huì)了用PHP成功的插入,刪除,更新數(shù)據(jù)的時(shí)候,顯然,你已經(jīng)距離成功指日可待了。
<自己動(dòng)手設(shè)計(jì)一個(gè)留言本>
這個(gè)時(shí)候的你也許是這種狀態(tài):
你會(huì)HTML嗎?會(huì),我能編好幾個(gè)大表格排板的網(wǎng)頁(yè)啦!
你會(huì)PHP嗎?會(huì),我會(huì)把一加一的運(yùn)算寫在函數(shù)里,然后調(diào)用啦!
你會(huì)MYSQL嗎?會(huì),我會(huì)把我的信息在數(shù)據(jù)庫(kù)里插入刪除啦
那,接下來(lái)你該怎么做呢?我覺(jué)得,小試一下身手,大概是沒(méi)問(wèn)題了,那么交給你個(gè)任務(wù),做個(gè)留言本吧,這和HELLO WORLD有一比啊!同是新手面臨的第一道關(guān)。
花了一段時(shí)間,你終于學(xué)會(huì)把表單的數(shù)據(jù)插入數(shù)據(jù)庫(kù),然后顯示出來(lái)了,應(yīng)該說(shuō)一個(gè)程序的雛形已經(jīng)誕生了。 但是,你可能瞅瞅東,看看西,人家這個(gè)編論壇,那個(gè)CMS,還有那啥CRM,我啥時(shí)候?qū)懸粋€(gè)呢?
不要急,可以說(shuō)你的馬步已經(jīng)扎的差不多了,接下來(lái)就要開(kāi)始練把勢(shì)的時(shí)候了,如果有條件的話,用筆或者打印一個(gè)簡(jiǎn)易的PHP手冊(cè)在身上,時(shí)不時(shí)的摸出來(lái)看看。
再有條件的話,買本書(shū)看看吧,《PHP+MYSQL WEB開(kāi)發(fā)(第三版)》號(hào)稱圣經(jīng)級(jí),也許是個(gè)不錯(cuò)的選擇。
鞏固了自己的知識(shí),熟悉了PHP和MYSQL開(kāi)發(fā)的要領(lǐng)之后,再回頭看你寫的那個(gè)留言本,你也許會(huì)懷疑那真的是你寫的嗎?當(dāng)然,如果屋里還有鬼的話,也許是它寫的。
這個(gè)時(shí)候,你的留言本應(yīng)該加入注冊(cè)以及分頁(yè)功能了,而如果你更強(qiáng)的話,UI(用戶界面)也可以加強(qiáng),完成之后,感覺(jué)是不是特有成就感?不管怎么樣,咱好歹是寫了一個(gè)動(dòng)態(tài)網(wǎng)站程序了,放在自己的網(wǎng)站上耍耍吧,讓好朋友來(lái)看看,嘿,看咱寫的多棒,然后再在網(wǎng)上宣傳一下。
<關(guān)于頁(yè)面安全>
幾天之后你再打開(kāi)留言本,哎?哇,一下彈出N多頁(yè)面!很明顯,你的留言本并沒(méi)有做好安全防范,被人用JS代碼小小的耍了一下,我很同情你這個(gè)時(shí)候的感受,但是沒(méi)有別的辦法了,繼續(xù)努力吧!
你發(fā)奮努力,熟悉了安全方面的問(wèn)題,然后又設(shè)計(jì)了一些程序,感覺(jué)還不錯(cuò)。
那么接下來(lái),這就算學(xué)會(huì)啦?NO,NO,NO,還早呢,你至盡還沒(méi)碰過(guò)OOP之類的吧?模板呢?
恩,學(xué)!加緊學(xué)呀學(xué),學(xué)會(huì)了這些之后,你又學(xué)會(huì)了生成靜態(tài)網(wǎng)頁(yè),現(xiàn)在你應(yīng)該接觸一下XML了,恩,XML也了解了,那么AJAX你也得接觸接觸吧?AJAX完了....然后...
<最后總結(jié)>
總而言之,你絕對(duì)不會(huì)發(fā)現(xiàn)你全部都學(xué)會(huì)了,一些真正的強(qiáng)人總會(huì)搞出新玩意來(lái)丟給你,你不學(xué)就落后了,也印證了前人的經(jīng)驗(yàn),果然是學(xué)無(wú)止境啊!
我想通過(guò)我的一番YY,你也應(yīng)該大致熟悉了一些學(xué)習(xí)過(guò)程,也許我的過(guò)程和你的有些出路,但是不管怎么樣是殊途同歸,我寫這么多,也只是給大家一個(gè)借鑒的機(jī)會(huì),至于好與不好,我就不敢打包票了。
看完之后你發(fā)現(xiàn),羅嗦這么多,對(duì)我一點(diǎn)用處沒(méi)有啊,我知道該怎么學(xué),但是我想如何才能更快的學(xué),一周速成,啊不,24小時(shí)速成那種?學(xué)東西,永遠(yuǎn)不要妄想有速成這一說(shuō),告訴你了一個(gè)方式,但是缺少努力這一環(huán)節(jié),那也是白搭。
但是有一點(diǎn)我可以給你保證的就是,你學(xué)會(huì)了PHP,那么學(xué)其他的語(yǔ)言,肯定速成,反過(guò)來(lái)也一樣,如果你之前學(xué)過(guò)其他的語(yǔ)言,那么學(xué)PHP肯定快。
不過(guò)語(yǔ)法好學(xué),但是怎么用語(yǔ)法來(lái)實(shí)現(xiàn)每個(gè)人都有每個(gè)人的方式,幾乎是各有千秋。然而借鑒別人成功的代碼,絕對(duì)是有益無(wú)害,因此,多看那些經(jīng)過(guò)千錘百煉凝出來(lái)的經(jīng)典代碼,是進(jìn)階的最好方法。
了這么多,無(wú)非是想說(shuō):學(xué)習(xí)PHP不僅要掌握方法,更多的是付出汗水,我不希望看到中途放棄的人,相信自己,相信自己的選擇,更要相信自己的能力!
另外要叮囑各位的是,抵御誘惑,ASP/PHP/JSP/.NET的對(duì)比也許會(huì)讓你無(wú)所適從,你也許學(xué)了一半PHP,又開(kāi)始打C#的主意,或者有人說(shuō)JAVA很強(qiáng),這個(gè)時(shí)候的你絕對(duì)不能動(dòng)搖,哪怕你真想學(xué),也得學(xué)會(huì)了PHP。然后再學(xué),見(jiàn)異思遷是最不可取的,狗熊掰玉米就是這個(gè)道理,如果經(jīng)常中途放棄,只能是一無(wú)所獲,還浪費(fèi)了N多的時(shí)間和經(jīng)歷,得不償失,最重要的是,你會(huì)被別人瞧不起,沒(méi)有人會(huì)喜歡和見(jiàn)異思 遷的人交朋友,因?yàn)檫@種人太不安分,太不可靠,因此,你必須要強(qiáng)迫自己完成自己的目標(biāo),哪怕可能會(huì)很難受,也得堅(jiān)持,毅力就是這么鍛煉出來(lái)的。 最后祝大家學(xué)有說(shuō)成吧,有什么更好的學(xué)習(xí)經(jīng)驗(yàn),也可以拿出來(lái)跟大家一同分享!
文來(lái)自Neo的投稿,已獲得獨(dú)家授權(quán)
大多數(shù)大學(xué)生接觸的第一門編程課便是C語(yǔ)言,這對(duì)于一個(gè)完全不懂計(jì)算機(jī)的人可能是噩夢(mèng)。
不少人初次上C語(yǔ)言課都會(huì)被指針繞得暈頭轉(zhuǎn)向,然而大部分編程工作并不需要你關(guān)心指針的使用。此外,C語(yǔ)言對(duì)可視化編程并不友好,用C語(yǔ)言編寫圖形化界面十分繁瑣。在這種情況下,很多大學(xué)生都會(huì)問(wèn)C語(yǔ)言能做什么?
C語(yǔ)言看似簡(jiǎn)單,實(shí)則無(wú)比強(qiáng)大,它主要的用途是系統(tǒng)級(jí)編程,操作系統(tǒng),數(shù)據(jù)庫(kù),編譯器,虛擬機(jī)等等,可是,并不是每個(gè)人都愿意去嘗試或者有機(jī)會(huì)接觸。
這會(huì)導(dǎo)致大多數(shù)人學(xué)了C語(yǔ)言并沒(méi)有多少成就感和興趣,甚至因?yàn)檫@門課懷疑自己能不能學(xué)好編程,或者拿到計(jì)算機(jī)專業(yè)的畢業(yè)證。
事實(shí)上,這樣想是多慮的。并不是每個(gè)計(jì)算機(jī)專業(yè)的學(xué)生將來(lái)都要去搞操作系統(tǒng),編譯器或嵌入式開(kāi)發(fā),應(yīng)用型人才大有可為。你完全可以先從應(yīng)用層入手,獲得成就感和興趣,再深入鉆研底層開(kāi)發(fā)。
在我眼里,編程是世界上最好的工作。既可以憑此獲得報(bào)酬,還可作為興趣愛(ài)好,享受解決問(wèn)題的那種成就感。所以,當(dāng)你第一次學(xué)編程或者對(duì)編程開(kāi)始失去興趣時(shí),不妨從Web入手,先做一個(gè)網(wǎng)站。Web開(kāi)發(fā)所用到的語(yǔ)言大多數(shù)都是所見(jiàn)即所得類型,學(xué)了馬上可以做出一個(gè)可視化的作品,很有成就感。
Web開(kāi)發(fā)是最簡(jiǎn)單的,而且開(kāi)發(fā)語(yǔ)言也多種多樣,比如JavaScript、PHP、JAVA、Ruby、Python等。互聯(lián)網(wǎng)上關(guān)于Web開(kāi)發(fā)的學(xué)習(xí)資料是最多最豐富的,大多數(shù)問(wèn)題都可以通過(guò)搜索引擎找到解決方案。這對(duì)初學(xué)者十分友好,降低了編程的挫折感。
盡管受到移動(dòng)互聯(lián)網(wǎng)的沖擊,但不可否認(rèn),網(wǎng)站是互聯(lián)網(wǎng)最普遍的應(yīng)用形式,并將長(zhǎng)期存在下去。如果你想做Web開(kāi)發(fā),Just do it!
Web開(kāi)發(fā)分為前后端,前端包括HTML、CSS和JavaScript等,后端包括Node.js、JAVA、Python、PHP、Ruby等。如果你想做一個(gè)靜態(tài)網(wǎng)站,只需要學(xué)習(xí)前端技術(shù)即可。
前端技術(shù)本身難度不大,但瀏覽器適配和響應(yīng)式布局稍微有點(diǎn)棘手。初學(xué)者完全不必理會(huì),先做出一個(gè)靜態(tài)網(wǎng)站即可。當(dāng)你做出第一版靜態(tài)網(wǎng)站時(shí),你一定會(huì)興奮,因?yàn)檫@是你自己的作品。
網(wǎng)站做好后,你可能想更新網(wǎng)站內(nèi)容,但手動(dòng)更新又比較麻煩。這時(shí)你可以選擇一門簡(jiǎn)單的后端語(yǔ)言,嘗試下服務(wù)器搭建、前后端數(shù)據(jù)交互和Linux命令行操作等等。后端技術(shù)優(yōu)先推薦Python、PHP和JAVA,三者選其一即可。
人生苦短,我用Python。Python內(nèi)置了大量豐富的函數(shù)供你直接調(diào)用,有些語(yǔ)言寫很多行的函數(shù),Python一行代碼搞定。此外,Python作為程序員必備的腳本語(yǔ)言,在爬蟲(chóng)、科學(xué)計(jì)算、AI等領(lǐng)域也很出彩。利用這個(gè)機(jī)會(huì)學(xué)習(xí)下,技多不壓身。
除了Python,PHP效率也不低。作為世界上最好的語(yǔ)言(:-D),PHP為Web而生,PHP可以直接嵌入HTML標(biāo)簽,十分方便。經(jīng)典的LAMP或者LNMP搭配更是世界上絕大多數(shù)網(wǎng)站的標(biāo)配(L:Linux,A:Apache,N:Nginx,M:MySql,P:PHP)。
最后推薦的當(dāng)屬老大哥JAVA,在國(guó)內(nèi)可能就JAVA程序員最多了,所以學(xué)了就業(yè)肯定不愁。不過(guò),JAVA的難度要Python和PHP稍高點(diǎn)。
學(xué)了后端語(yǔ)言后,你可以做一個(gè)動(dòng)態(tài)網(wǎng)站了。不過(guò),還差一個(gè)數(shù)據(jù)庫(kù),推薦MySQL。如果你不想學(xué)SQL語(yǔ)句,可以尋找后端語(yǔ)言對(duì)應(yīng)的MySQL圖形管理應(yīng)用。但是,當(dāng)你的數(shù)據(jù)量較大或者經(jīng)常存取數(shù)據(jù)時(shí),建議學(xué)習(xí)下基本的SQL語(yǔ)句以提高效率。
當(dāng)你前端和后端都學(xué)完了,你就可以隨性所欲的做你想做的網(wǎng)站。做出來(lái)后,記得分享給你的好友和家人,他們的鼓勵(lì)是你前進(jìn)的動(dòng)力。
這就完了嗎?萬(wàn)里長(zhǎng)征才剛踏出第一步。
為什么我的網(wǎng)站這么慢?可能是因?yàn)榍岸遂o態(tài)資源CSS或者JavaScript太大或者加載方式不對(duì)。你得學(xué)習(xí)下代碼優(yōu)化、靜態(tài)資源壓縮打包和頁(yè)面渲染原理吧。
為什么查詢數(shù)據(jù)怎么慢?你得學(xué)習(xí)下數(shù)據(jù)庫(kù)優(yōu)化吧。
有小伙伴想和你一起開(kāi)發(fā)網(wǎng)站,怎么讓別人快速看懂你的代碼?你得學(xué)習(xí)下代碼模塊化(低耦合,高內(nèi)聚)和接口設(shè)計(jì)吧。
為了使你網(wǎng)站穩(wěn)定,你還會(huì)遇到很多問(wèn)題。但通過(guò)前面學(xué)習(xí),相信你已經(jīng)學(xué)會(huì)了如何獨(dú)立排查和解決問(wèn)題了。獨(dú)立解決問(wèn)題的能力是程序員最基本的能力之一。
網(wǎng)站穩(wěn)定了,你可能想設(shè)計(jì)出類似于熱門內(nèi)容和推薦內(nèi)容等。一看需要用到排序算法和推薦算法,恍然大悟,數(shù)據(jù)結(jié)構(gòu)和線性代數(shù)被你學(xué)成了狗屎。不停的責(zé)罵自己,當(dāng)年上課的時(shí)候干啥去了。
不要著急,相信你現(xiàn)在回頭再去看時(shí),一定能學(xué)進(jìn)去。因?yàn)閷W(xué)了,你馬上就可以用。現(xiàn)在你終于明白,數(shù)據(jù)結(jié)構(gòu)中的時(shí)空復(fù)雜度、線性表、棧和隊(duì)列、樹(shù)、圖、排序和查找是怎么用的。
誒,課本里的C代碼怎么和我寫的Python和JAVA這么相似。仔細(xì)搜索發(fā)現(xiàn),C語(yǔ)言才是這些語(yǔ)言的祖師爺。頓時(shí)心生悔意,要是當(dāng)年好好學(xué)C語(yǔ)言,現(xiàn)在也不會(huì)這么吃力。種一棵樹(shù),最好的是十年前,其次是現(xiàn)在。趕緊學(xué)吧,少年!
現(xiàn)在網(wǎng)站也像模像樣了,想知道瀏覽器怎么運(yùn)行的嗎?HTTP協(xié)議是啥?不用搜了,趕緊回去看計(jì)算機(jī)網(wǎng)絡(luò),”三次握手”必須爛熟于心。
終于有一天,服務(wù)器死機(jī)了。這下你得學(xué)習(xí)下服務(wù)器運(yùn)維,了解下服務(wù)器工作原理吧。世界上絕大多數(shù)服務(wù)器系統(tǒng)都是Linux,Linux系統(tǒng)你得學(xué)習(xí)下吧。
多線程多進(jìn)程貌似見(jiàn)過(guò)?你已經(jīng)學(xué)過(guò)了,就在操作系統(tǒng)那本書(shū)里,老師講的時(shí)候你沒(méi)認(rèn)真聽(tīng)。這下你恍然大悟,原來(lái)學(xué)校里的課是有用的,只是自己沒(méi)發(fā)現(xiàn)。這樣你又回去把計(jì)算機(jī)組成原理和微機(jī)接口原理復(fù)習(xí)了下,了解了Byte和Bit的區(qū)別,了解了二進(jìn)制編碼,了解了匯編語(yǔ)言等等。
大道至簡(jiǎn),心中有劍于無(wú)形。現(xiàn)在你明白了,編程語(yǔ)言只是術(shù),而計(jì)算機(jī)基礎(chǔ)課才是心法。萬(wàn)變不離其宗,你不再恐懼編程,也不再把自己限定在某一種語(yǔ)言。你開(kāi)始不滿足于只做網(wǎng)站,你想做APP、游戲、編譯器或嵌入式開(kāi)發(fā)等。
通過(guò)之前的學(xué)習(xí),你學(xué)會(huì)了如何用項(xiàng)目去驅(qū)動(dòng)學(xué)習(xí),學(xué)會(huì)了獨(dú)立解決問(wèn)題,學(xué)會(huì)了快速上手一門編程語(yǔ)言,學(xué)會(huì)了前后端如何交互等等。即使你以后不做Web開(kāi)發(fā),這些能力都是通用的,伴隨你一生。
現(xiàn)在,恭喜你,你已經(jīng)是一名軟件工程師了!
天下數(shù)據(jù)是國(guó)內(nèi)屈指可數(shù)的擁有多處海外自建機(jī)房的新型IDC服務(wù)商,被業(yè)界公認(rèn)為“中國(guó)IDC行業(yè)首選品牌”。
天下數(shù)據(jù)與全球近120多個(gè)國(guó)家頂級(jí)機(jī)房直接合作,提供包括香港、美國(guó)、韓國(guó)、日本、臺(tái)灣、新加坡、荷蘭、法國(guó)、英國(guó)、德國(guó)、埃及、南非、巴西、印度、越南等國(guó)家和地區(qū)的服務(wù)器、云服務(wù)器的租用服務(wù),需要的請(qǐng)聯(lián)系天下數(shù)據(jù)客服!
除提供傳統(tǒng)的IDC產(chǎn)品外,天下數(shù)據(jù)的主要職責(zé)是為大中型企業(yè)提供更精細(xì)、安全、滿足個(gè)性需求的定制化服務(wù)器解決方案,特別是在直銷、金融、視頻、流媒體、游戲、電子商務(wù)、區(qū)塊鏈、快消、物聯(lián)網(wǎng)、大數(shù)據(jù)等諸多行業(yè),為廣大客戶解決服務(wù)器租用中遇到的各種問(wèn)題。
、985高校讀研后轉(zhuǎn)前端的過(guò)程
東北某985高校爆冷門專業(yè)(被調(diào)劑)畢業(yè),跨專業(yè)考研到廣州某二流工科院校讀通信。
第一年老板在新加坡做科研,迷迷茫茫過(guò)了一年。
第二年老板回來(lái)讓我做一個(gè)他自己都不會(huì)的課題,搞了半年覺(jué)得被坑,放棄。
回首本科到研究生的前六年,覺(jué)得自己走了太多彎路,什么都沒(méi)學(xué)到……
研二下學(xué)期終于決定自學(xué)前端,了解了HTML、CSS、JavaScript、PHP、 MySQL 的學(xué)習(xí)順序,以及零基礎(chǔ)的網(wǎng)站開(kāi)發(fā)初學(xué)者系統(tǒng)地學(xué)習(xí)前端的過(guò)程之后,開(kāi)始從HTML的標(biāo)記、CSS的語(yǔ)法開(kāi)始學(xué)習(xí),然后看了JavaScript DOM編程藝術(shù) (第2版)這本書(shū),中間被導(dǎo)師安排去電信實(shí)習(xí)了3個(gè)多月(搞無(wú)聊的數(shù)據(jù)庫(kù)),耽擱了不少,不過(guò)下班后還是會(huì)學(xué)習(xí)前端的知識(shí)。
到現(xiàn)在為止,陸陸續(xù)續(xù)把《精通CSS》和《JavaScript高級(jí)程序設(shè)計(jì)(第3版)》這兩本書(shū)看完,也跟著實(shí)例索引寫了一些實(shí)例,感覺(jué)也有了一些進(jìn)步。
但是從9月份校招到現(xiàn)在,我僅僅面了兩家公司(立方網(wǎng)和歡聚時(shí)代),立方網(wǎng)二面被刷,歡聚時(shí)代一面被刷,其他的筆試都沒(méi)通過(guò),總結(jié)了一下感覺(jué)自己還是缺乏項(xiàng)目經(jīng)驗(yàn)。
現(xiàn)在在看《鋒利的jQuery》,因?yàn)槊嬖嚉g聚時(shí)代的時(shí)候面試官告訴我公司做項(xiàng)目的時(shí)候都是用框架(他們主要用jQuery),很少用原生的JS,而我之前基本上都看的原生JS,不過(guò)看完原生的JS之后再看jQuery會(huì)發(fā)現(xiàn)相見(jiàn)恨晚,框架真的太好用了。
面試之后發(fā)現(xiàn)企業(yè)最看重的還是項(xiàng)目經(jīng)驗(yàn),所以后面要好好利用時(shí)間爭(zhēng)取做幾個(gè)項(xiàng)目。
就這樣,希望大家都能夠堅(jiān)持下去!
二、軟件工程專業(yè)學(xué)習(xí)前端的過(guò)程
我是大三轉(zhuǎn)專業(yè)學(xué)習(xí)「軟件工程」,目前實(shí)習(xí)前端工程師(以經(jīng)驗(yàn)之淺,稱為網(wǎng)頁(yè)重構(gòu)更恰當(dāng))。
至于所花時(shí)間,因人而異。當(dāng)初因?yàn)檫x課老師手抖,將本科所需要學(xué)習(xí)的計(jì)算機(jī)課程讓我在一年內(nèi)選上。挖了坑,就得有人去填,后來(lái)在宿舍封閉了一年將其念完。當(dāng)時(shí)考完最后一科,我一個(gè)人在陽(yáng)臺(tái)坐著,坐了好久,那是我知識(shí)積累最膨脹的時(shí)候。
關(guān)于前端
「前端」是一門特別的職業(yè),需要在工程和設(shè)計(jì)之間選取一個(gè)平衡點(diǎn)。很多跨領(lǐng)域?qū)W習(xí)前端的朋友,容易存在一個(gè)誤區(qū),認(rèn)為「不需要學(xué)習(xí)后端」,不用面對(duì)晦澀難懂,不好上手的內(nèi)容。可是事實(shí)上,目前前端的招聘要求,大多會(huì)有「具有后端開(kāi)發(fā)經(jīng)驗(yàn)」。因?yàn)樽鳛橐幻こ處煟闳粘W(xué)習(xí)和遭遇的問(wèn)題,需要一整套的知識(shí)體系才能迎刃而解。
尤其近年 HTML5 和 Javascript 的崛起,移動(dòng)端的快速發(fā)展,對(duì)性能和表現(xiàn)的要求,已經(jīng)不是原來(lái)外行認(rèn)為「寫寫頁(yè)面」那么簡(jiǎn)單。
過(guò)去一年的學(xué)習(xí)
主要為兩點(diǎn),計(jì)算機(jī)基礎(chǔ)的體系學(xué)習(xí),對(duì)前端資訊的了解。
1. 計(jì)算機(jī)基礎(chǔ)的體系學(xué)習(xí)
過(guò)去一年主要時(shí)間花在「考試」上,將大學(xué)前三年的計(jì)算機(jī)課程通過(guò)。倘若沒(méi)有課程壓力的情況下,自學(xué)的過(guò)程中,我可能會(huì)選擇培訓(xùn)機(jī)構(gòu)那套知識(shí)體系,跳過(guò)基礎(chǔ),直接被告知 How to do ,而不是去了解 What and Why .
多虧那位手抖的老師,讓我沒(méi)有錯(cuò)過(guò)這些看似無(wú)用的基礎(chǔ)知識(shí)「數(shù)據(jù)結(jié)構(gòu)、算法、數(shù)據(jù)庫(kù)原理、計(jì)算機(jī)網(wǎng)絡(luò)、操作系統(tǒng)…」。這些「無(wú)用」的知識(shí)很大部分會(huì)被遺忘,而被忘卻的知識(shí)的影子卻保護(hù)著你,避免陷入錯(cuò)誤。
由于時(shí)間的關(guān)系,作為一名非科班的學(xué)習(xí)者僅能暫時(shí)在基礎(chǔ)學(xué)科上淺嘗輒止,在廣度上進(jìn)行了解,后續(xù)大多依靠工作內(nèi)容,對(duì)所接觸領(lǐng)域進(jìn)行深度學(xué)習(xí)。
2. 對(duì)前端資訊的了解
在還沒(méi)有實(shí)際工作以前,我對(duì)前端主要通過(guò)「閱讀書(shū)籍」、「訂閱國(guó)外博客」、「翻看別人有趣的前端代碼」進(jìn)行了解和學(xué)習(xí)。這個(gè)階段屬于多看少做,大概持續(xù)了兩三個(gè)月時(shí)間。而真正能力的提升,是在工作之后,大量編碼的實(shí)踐以及解決問(wèn)題的思考。
三、機(jī)電一體化專業(yè)學(xué)習(xí)前端
大學(xué)畢業(yè)一個(gè)月左右,還沒(méi)找到對(duì)口的專業(yè),想想我就是個(gè)悲劇。然后在網(wǎng)上看到杭州有個(gè)Java培訓(xùn),想想自己還是對(duì)計(jì)算機(jī)蠻有興趣的,于是就花錢去學(xué)了Java。
學(xué)成歸來(lái),其實(shí)就只是一個(gè)剛?cè)腴T的菜鳥(niǎo),很苦逼地從實(shí)習(xí)期干起,那個(gè)時(shí)候才500元,要知道是在2010年的時(shí)候。然后因?yàn)楹椭鞴苡悬c(diǎn)小矛盾,然后就走了。
新進(jìn)的那家公司,經(jīng)理人還不錯(cuò),帶著我讓我學(xué)到了很多,包括一些前端知識(shí)方面,也是他讓我自己慢慢去摸索著學(xué)。雖然工資也是比較低,但做著確實(shí)開(kāi)心,可惜的是不到一年,公司就倒閉了。
然后又進(jìn)了一家小作坊的公司,共六個(gè)人,接的都是公司網(wǎng)站,我就負(fù)責(zé)做頁(yè)面,JavaScript當(dāng)時(shí)就網(wǎng)上找,什么閉包、對(duì)象、組件,毫無(wú)概念,只要能用就行了。工作了大概兩個(gè)月左右,群里有同事內(nèi)推了一家杭州的外包公司,當(dāng)時(shí)外包在自己的心中概念全然不知,只知道和騰訊、阿里有合作,是專門做前端這一塊的。于是乎,我就又離職了。
在外包的公司的2年多,無(wú)疑是我前端水平增長(zhǎng)的時(shí)期,我很感謝當(dāng)時(shí)的主管,教會(huì)了我很多,學(xué)了KISSY,YUI等很多JavaScript框架,自己業(yè)余時(shí)間也看了其他的一些框架,慢慢地水平就這樣提升了一些。
雖然現(xiàn)在已經(jīng)離開(kāi)了那家外包公司,但實(shí)話說(shuō),如果自己的水平不夠,進(jìn)一下外包公司鍛煉一下自己還是可以的,哪怕比較苦逼(我有一次做的項(xiàng)目,一天內(nèi)被客戶催打電話10來(lái)次,半夜三更會(huì)叫醒去做項(xiàng)目),最終回過(guò)頭想想,所有的付出都是值得的。
感覺(jué)前端方面的提升,還是要靠多做東西,先是HTML、css,再是JavaScript的一點(diǎn)點(diǎn)深入、滲透。
四、自動(dòng)化專業(yè)狂打DOTA男學(xué)習(xí)前端的經(jīng)歷與經(jīng)驗(yàn)
我自動(dòng)化的,我來(lái)講講我的經(jīng)歷吧。
三年前作為一個(gè)本科狂打DOTA,專業(yè)積累弱到爆,純理論方向的研究生新生,我理所當(dāng)然的迷茫了,不知道自己的未來(lái)在哪里。
不知道自己該干嘛時(shí),那就看書(shū)吧,剛來(lái)那半年,怒刷圖書(shū)館。在這里感謝研究生母校的網(wǎng)絡(luò),爛到我再也不能窩在寢室打DOTA了。偶然的機(jī)會(huì),和實(shí)驗(yàn)室的老師建立了些聯(lián)系,他希望我?guī)兔τ胮hp(當(dāng)時(shí)心里想,php是啥,盡情鄙視我吧)做一個(gè)信息平臺(tái)。雖然啥都不會(huì),這活我接了,硬著頭皮上吧。從此apache、mysql、php、html、css、js進(jìn)入了我的世界。掙扎了幾個(gè)月,最后在大神室友和老師的幫助下,完成了一個(gè)慘不忍睹的東西。哎,不堪回首。記的最后是老師自己動(dòng)手做了個(gè),我的那個(gè)被扔進(jìn)了回收站。我的收獲就是進(jìn)入了web世界,會(huì)了點(diǎn)php、css,記了幾個(gè)html標(biāo)簽,JavaScript看不懂。
這過(guò)后,我放棄了本專業(yè),打算以后就搞web了。后來(lái)也找了兩家實(shí)習(xí),分別做的php和java加打雜。到了這里好像和找前端工程師的工作都木有關(guān)系,別急,到重點(diǎn)了!做了大半年后臺(tái)的東西過(guò)后,還是覺(jué)得前端的東西比較好玩,所以我決定把我找工方向定為前端工程師,這時(shí)距離校招還有半年。
確立了方向過(guò)后,該怎么做呢?!!我那時(shí)給自己定了一個(gè)目標(biāo),我要去BAT。
研究生第二個(gè)春節(jié)過(guò)后,三月份了!9月份就要找工作了!但是這個(gè)時(shí)候,我的眼光不是盯著9月份的校園招聘,而是4,5月份的實(shí)習(xí)生招聘,我把實(shí)習(xí)生招聘當(dāng)做我的第一個(gè)機(jī)會(huì),當(dāng)做一次演習(xí)。
目標(biāo):騰訊前端開(kāi)發(fā)實(shí)習(xí)生。
戰(zhàn)斗力:會(huì)用常見(jiàn)html標(biāo)簽,會(huì)點(diǎn)css,能看懂常見(jiàn)JavaScript代碼。
加分項(xiàng):有后臺(tái)開(kāi)發(fā)基礎(chǔ)
憑我這個(gè)條件進(jìn)騰訊是很難的。我分析了我當(dāng)前的薄弱環(huán)節(jié):
1、基礎(chǔ)知識(shí)首先不過(guò)關(guān)。html標(biāo)簽都沒(méi)有全部學(xué)習(xí)一遍,css去浮動(dòng)的幾種方式也搞不清楚,JavaScript原型閉包也都不清楚。
2、前端的實(shí)踐經(jīng)驗(yàn)不足。這個(gè)建立在基礎(chǔ)知識(shí)之上。
3、對(duì)于前沿的技術(shù)不了解。對(duì)于css3和html5一點(diǎn)不懂。
找準(zhǔn)了自己的薄弱環(huán)節(jié),那就開(kāi)干唄。離騰訊實(shí)習(xí)生招聘只有一個(gè)半月。
第一步:學(xué)基礎(chǔ)。把html、css完整的全部仔細(xì)學(xué)一遍,把權(quán)威指南通讀一篇。這個(gè)階段學(xué)html和css還是很快的,有些基礎(chǔ)。看JavaScript權(quán)威指南就有點(diǎn)想死了,大塊頭,難啃啊。
第二步:實(shí)踐與學(xué)習(xí)結(jié)合。我當(dāng)時(shí)主要是掃蕩前端題來(lái)實(shí)踐,各種筆試題、面試題,大神分享的demo。印象深刻的是,切頁(yè)面直接模仿淘寶首頁(yè),把首頁(yè)做出來(lái),css和html提升就很大了。獨(dú)立用原生JavaScript實(shí)現(xiàn)當(dāng)時(shí)人人網(wǎng)的五道筆試題,對(duì)于JavaScript應(yīng)該也有所感覺(jué)了。
第三步:提升自己前端的眼光。這個(gè)部分比較虛,多看前端相關(guān)的博客文章吧,要形成自己對(duì)于前端的一些看法。我當(dāng)時(shí)去了解了SEO、性能優(yōu)化、web安全等方面內(nèi)容,要以產(chǎn)品的眼光看技術(shù)。
前沿技術(shù)方面,我主要了解css3和html5,分別學(xué)習(xí)了下,這個(gè)部分對(duì)于實(shí)踐的要求不高,但是要了解分別有哪些東西。但以今年的情況來(lái)看,要求又不一樣了。
說(shuō)了這么多,是不是最后去了騰訊才有說(shuō)服力啊?是的,我通過(guò)了實(shí)習(xí)生招聘,最后也留了下來(lái)。
憑印象講了這么多,很多具體細(xì)節(jié)已經(jīng)不清了,有些關(guān)鍵點(diǎn)可能遺漏了。但這些都不重要,我知道是因?yàn)槲覐?qiáng)烈要去騰訊實(shí)習(xí)的愿望,讓我那段時(shí)間浸淫其中而有所收獲。最后這是一口雞湯,勵(lì)志下!
陳童的博客(http://www.everyinch.net/)專注于用戶體驗(yàn)研究的IT類網(wǎng)站。發(fā)表用戶體驗(yàn)研究與度量方面的知識(shí),分享前端與三維網(wǎng)站技術(shù),總結(jié)人機(jī)交互、集體智慧算法的研究心得,推薦國(guó)外相關(guān)資源。
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。