av手机免费在线观看,国产女人在线视频,国产xxxx免费,捆绑调教一二三区,97影院最新理论片,色之久久综合,国产精品日韩欧美一区二区三区

php語言

學(xué)習(xí)PHP的過程何時(shí)可以數(shù)據(jù)結(jié)構(gòu)和算法

時(shí)間:2025-04-20 06:06:23 php語言 我要投稿
  • 相關(guān)推薦

學(xué)習(xí)PHP的過程何時(shí)可以數(shù)據(jù)結(jié)構(gòu)和算法

  學(xué)習(xí)PHP的時(shí)候,什么階段才可以學(xué)數(shù)據(jù)結(jié)構(gòu)?這個(gè)問題其實(shí)不只是學(xué)習(xí)PHP,也是其他語言。

學(xué)習(xí)PHP的過程何時(shí)可以數(shù)據(jù)結(jié)構(gòu)和算法

  關(guān)于這個(gè)問題一定不要瞎跟風(fēng),一定不要超前,也就是說不要看到網(wǎng)上別人說這個(gè)重要就馬上去學(xué),也不要看到別人說它很抽象,很難,就不去學(xué)?偟膩碚f,這個(gè)玩意是要學(xué),而且必須學(xué),關(guān)鍵是什么時(shí)候?qū)W?怎么學(xué)?

  如果沒有學(xué)好該語言的基礎(chǔ),就不要學(xué)數(shù)據(jù)結(jié)構(gòu)和算法,否則你學(xué)了許久,不但華而不實(shí),派不上用武之地,還極大的打擊你學(xué)習(xí)興趣。

  比如舉個(gè)例子:學(xué)PHP2年多的人,你在公司開發(fā)項(xiàng)目中,用的是比如PHPCMS,你什么時(shí)候用過大學(xué)教材上教的數(shù)據(jù)結(jié)構(gòu)中圖的算法?或者哈夫曼算法?但是你卻可以勝任公司的許多用PHPCMS開發(fā)的項(xiàng)目,工資可能還不低。

  反過來,你哪怕背熟了漢諾塔這些復(fù)雜的算法,但是你沒時(shí)間學(xué)PHP以及PHPCMS,你去應(yīng)聘PHP開發(fā)職位,你覺得會(huì)有幾個(gè)給發(fā)面試通知?你的簡(jiǎn)歷上就只能寫“精通數(shù)據(jù)結(jié)構(gòu)和算法”,但是拍不上實(shí)戰(zhàn)用途上,結(jié)局也很可能挺尷尬的。

  別人學(xué)文科的連數(shù)據(jù)結(jié)構(gòu)是什么都不知道,照樣能找工作,別人就不找需要數(shù)據(jù)結(jié)構(gòu)的工作嘛。這就說明了:找工作甚至是PHP之類的開發(fā)應(yīng)用領(lǐng)域的工作是和需求直接掛鉤的,工作中用到了什么才會(huì)需要該方面的人才。

  所以,學(xué)不學(xué)數(shù)據(jù)結(jié)構(gòu),要看你以后想找的工作崗位需要不需要。如果你是想找個(gè)PHP快速開發(fā)項(xiàng)目的工作各位,1年后崗位上需要的框架你用的很熟練,你是很可能當(dāng)技術(shù)經(jīng)理的。但你可能并沒有用到數(shù)據(jù)結(jié)構(gòu)中那些復(fù)雜的算法。

  所以有一個(gè)誤區(qū),那就是:但凡要學(xué)習(xí)PHP,就得要先吃透數(shù)據(jù)結(jié)構(gòu)和算法,還局限于書本上寫的那幾個(gè)算法,如:哈夫曼算法,哈希算法,等等...誰不學(xué)這個(gè)誰就不會(huì)開發(fā)項(xiàng)目...之類的。

  所以一聽到很多初學(xué)者,連PHP的基礎(chǔ)都沒學(xué)會(huì),連面向?qū)ο蠖紱]搞懂,連模板解析引擎也沒搞懂,連動(dòng)態(tài)標(biāo)簽都搞不清為什么要有,連Laravel都不能開發(fā)出一個(gè)完整項(xiàng)目出來,一來就在啃數(shù)據(jù)結(jié)構(gòu)這本書,這純粹是“華而不實(shí)”的舉動(dòng)。

  這是學(xué)給別人看的,讓別人看到你有多么的“高深”。其實(shí)為什么要學(xué)它,用在什么地方,估計(jì)他自己也搞不清楚。這樣的學(xué)習(xí)嚴(yán)重脫離了實(shí)際,如果導(dǎo)致你找工作麻煩,難勝任工作需求,也是十分正常的。因?yàn)槟銓W(xué)歪了。就像你精通歷史,但是卻是在找或者在做化學(xué)的工作,然后你跟別人說“歷史很重要...”。

  所以:上面得出的建議就是:工作或者未來的工作用不到,那就暫時(shí)不需要學(xué)數(shù)據(jù)結(jié)構(gòu)。

  那么,什么時(shí)候應(yīng)該學(xué)數(shù)據(jù)結(jié)構(gòu)呢?

  那自然是用到了才需要學(xué)。什么時(shí)候用到?像數(shù)據(jù)結(jié)構(gòu)中的排序,這些在PHP中都已經(jīng)對(duì)數(shù)組集成了這些方法,一個(gè)sort()即可搞定,你還有必要自己來寫個(gè)嗎?相信你要做個(gè)對(duì)從數(shù)據(jù)庫中提取的結(jié)果集進(jìn)行排序的時(shí)候,你首選的會(huì)是那些庫函數(shù)吧,不會(huì)自己再寫個(gè)排序的算法吧,因?yàn)槟阍谥貜?fù)造輪子了。

  很多人大夸特夸那些復(fù)雜算法如何如何的重要,試問你工作了幾年P(guān)HP,你何曾用到哈夫曼算法在你的項(xiàng)目中?哈希算法?漢諾塔算法?在PHP中你自己寫過鏈表嗎?寫了你用在了什么地方?你不需要寫,因?yàn)槎紝懞昧恕?/p>

  PHP的數(shù)組就是動(dòng)態(tài)的,就是鏈表實(shí)現(xiàn)的,你還用得著寫嗎?別人庫函數(shù)寫的比你高效很多,考慮了更多的情況。你寫的那種只考慮一般的動(dòng)態(tài)數(shù)組能派上用場(chǎng)嗎?除非沒有,你才必要去寫。比如對(duì)網(wǎng)站欄目的遞歸處理。在開發(fā)領(lǐng)域中很多都是拿來主義,因?yàn)榫褪且獪p少重復(fù)造輪子。

  只有當(dāng)你從頭到尾的寫一個(gè)框架的時(shí)候,你才可能用到。但是又有幾個(gè)在寫自己的框架呢?到真正需要的地方又會(huì)看到很多人這樣的言論:框架不是有了嗎?如:TP,如:Laravel;就連開源系統(tǒng)都可以舉出十多個(gè)常用的優(yōu)秀的。知道這個(gè),那么試問:你學(xué)的那些復(fù)雜算法又有什么意義?

  所以:上面得出的建議就是:如果你想鉆研框架的開發(fā),開源系統(tǒng)的開發(fā),那再去學(xué)數(shù)據(jù)結(jié)構(gòu)和算法的深入的東西。否則,學(xué)了,你根本用不到。還是把它該學(xué)的先學(xué)會(huì)吧,如面向?qū)ο,如面向切面,如模板解析引擎,如緩存處理,如?fù)載均衡,如集群,如Linux。

  至于怎么學(xué)數(shù)據(jù)結(jié)構(gòu)?

  當(dāng)你可以到要學(xué)數(shù)據(jù)結(jié)構(gòu)的時(shí)候了,該怎么學(xué)呢?其實(shí)它就融在了你的日常生活中......

  比如:如果你開發(fā)一個(gè)項(xiàng)目的過程中需要對(duì)提取的文章進(jìn)行從1開始的打印。而你遍歷的時(shí)候索引是從0開始,那么你只要加個(gè)1就可以實(shí)現(xiàn)。

  在需要對(duì)偶數(shù)行進(jìn)行標(biāo)紅的時(shí)候,你只要對(duì)2取余,看結(jié)果是0還是1,這其實(shí)就是算法,那么何謂算法?就是解決問題的思考途徑,這樣才會(huì)出現(xiàn)偽算法的概念,那就是用中文或者英文把解決過程先寫出來,然后才會(huì)去用某種語言去實(shí)現(xiàn)。

  至于書上描述的那些算法,是用在比如開發(fā)編譯性能,操作系統(tǒng)隊(duì)列任務(wù)的分配等底層領(lǐng)域,你以后要做底層驅(qū)動(dòng)開發(fā)嗎?你要寫編譯器嗎?你要寫瀏覽器嗎?如果不想,那你死啃那些書籍有什么現(xiàn)實(shí)意義?

  所以:不要狹隘的認(rèn)為數(shù)據(jù)結(jié)構(gòu)和算法就是某本大學(xué)教材上羅列的那幾個(gè)抽象的解題代碼。這太狹隘了。那些其實(shí)更多的被許多“不學(xué)無術(shù)”的人用來做“學(xué)術(shù)顯擺”罷了,這也侮辱了真正編程前輩們的宗旨。相信你周圍也有那些人,對(duì),就是那些人。

  得不到就說一堆你聽不懂的專業(yè)術(shù)語,讓你聽的云里霧里,方能獻(xiàn)出他比你優(yōu)秀許多。讓你“崇拜不已”。這就達(dá)到了他“虛榮”的目的。其實(shí)很多公司里的技術(shù)人員很多都是這樣的漂浮心態(tài)。總喜歡拿那些讓你聽不懂的來震懾你,這樣你就不敢繼續(xù)深究他的技術(shù)實(shí)力了...僅此而已。

  其實(shí)這也涉及到了技術(shù)教學(xué)和技術(shù)開發(fā)是兩個(gè)不同的發(fā)展方向。前者就是要用通俗易懂的內(nèi)容讓你學(xué)的容易,后者就是要讓你看不懂,才能顯出他比你優(yōu)秀。這就是很多技術(shù)高手為什么不懂技術(shù)教學(xué)的原因。這個(gè)話題以后在說。

  那么,什么是真正的數(shù)據(jù)結(jié)構(gòu)和算法呢?真正有實(shí)際意義的數(shù)據(jù)結(jié)構(gòu)和算法其實(shí)是你身邊所用到而沒注意到的。這么說吧,你在開發(fā)中所創(chuàng)造的數(shù)據(jù)類型,如:int,char,字符串類型,結(jié)構(gòu)體類型,類類型就是數(shù)據(jù)結(jié)構(gòu)。

  而你對(duì)他們的增刪改查,排序,構(gòu)造出鏈表從而形成動(dòng)態(tài)數(shù)組,如何提取某個(gè)成員,其實(shí)就是算法。更往上走就是組合這些基礎(chǔ)的去和實(shí)際問題的解決方案去結(jié)合。所以:那些比如漢諾塔算法其實(shí)也就是一種應(yīng)用罷了。

【學(xué)習(xí)PHP的過程何時(shí)可以數(shù)據(jù)結(jié)構(gòu)和算法】相關(guān)文章:

Java數(shù)據(jù)結(jié)構(gòu)和算法筆記10-18

PHP紅包算法11-04

php經(jīng)典算法介紹10-05

PHP經(jīng)典算法題09-05

php算法學(xué)習(xí)之動(dòng)態(tài)規(guī)劃08-18

PHP算法學(xué)習(xí)之分治法09-13

PHP幾個(gè)經(jīng)典算法題10-27

PHP的樹形結(jié)構(gòu)算法07-06

php算法學(xué)習(xí)之寬度優(yōu)先搜索07-29