回覆列表
-
1 # 大大神網
-
2 # vtrtbb
早在學譚老師的C程式設計時候就有一個公式:程式=演算法+資料結構 ,對任何語言及程式都試用,所以一定要懂得演算法。即使不精通,但基本的演算法還是要懂的,如:冒泡、折半查詢、二叉樹遍歷、快速排序、雜湊、連結串列遍歷查詢等⋯⋯
早在學譚老師的C程式設計時候就有一個公式:程式=演算法+資料結構 ,對任何語言及程式都試用,所以一定要懂得演算法。即使不精通,但基本的演算法還是要懂的,如:冒泡、折半查詢、二叉樹遍歷、快速排序、雜湊、連結串列遍歷查詢等⋯⋯
作為一名優秀的高階程式設計師,懂資料結構和演算法是非常重要的,並且軟體工程方面經驗知識的重要性絲毫不亞於此,特別是有志於更高追求的程式設計師。
了,但是一些簡單的數理統計要會吧,最小二乘法能不能看懂要看你從事的具體領域了;英語,學好了自然好,但是現在基本的書籍都是有中文的,一點兒都不辛苦,如果不求瞭解最新的前沿的知識也不求StackOverflow上刷分,英文能力還能要求多高呢?想嚮往高階程式設計師發展,很有必要要學習資料結構和演算法,就像BAT這樣的企業是很注重這個能力的。
Consistent Hashing原理示意圖
PHP程式設計師對資料與演算法有什麼要求,需要了解些什麼?
對於初級php程式設計師而言,演算法、資料結構、語文數學英語基礎都非常非常重要,同時軟體工程類課程也一定要學好。
第一:資料結構具體指同一類資料元素中,各元素之間的相互關係。
資料結構包括三個組成成分,資料的邏輯結構,資料的儲存結構和資料運算結構。資料結構作網路效能最佳化時很有用,比如HASH演算法和B+演算法都得知道下原理才能知道他效果如何。
第二:php程式設計師會演算法能力其實對網頁遊戲有很大用處
演算法能力對網頁遊戲的開發業很有幫助,一套強大的演算法可以讓你遊戲時,資料處理得無懈可擊,php還是有些大用處的,不過想拿高工資英語也學好點,php開發快且高效安全。
其次:使用php實現的基本的資料結構和演算法,什麼二叉樹、二叉搜尋樹、、B樹、連結串列和常見排序、搜尋演算法等等,而且全部是使用來實現的,PHP老程式設計師說的有理,“PHP主要還是快速開發,各種現成的函式和類足夠你用的了,對於這些相對底層的東西不是必須掌握”
P.S:資料結構是基礎,連結串列、二叉樹、雜湊、排序演算法等,你可能在寫PHP程式碼的時候,不一定能夠用上,但是,掌握它們能讓你對程式的運作原理有更深的理解。舉個簡單的例子說下資料結構對php的用處:我們經常使用PHP陣列,PHP陣列不僅可以foreach的方式遍歷,又能透過key-value的方式訪問,我們都覺得很便利,那麼問題來了,為神馬會這樣?
答:原因是PHP5的陣列是個HashTable(雜湊表,支援key-value直接對映),並且元素之間又用雙向連結串列連線起來(支援遍歷)。如果,同學們不學習資料結構,連連結串列和hash都不知道,就更談不上理解內部的運作原理。其實這個只是資料結構應用的冰山一角,想對技術有深一些的理解,學好資料結構很有必要。而更好地掌握原理層,又可以促進我們對程式的最佳化和思考,採用更節省系統資源的方式完成我們的業務需求。
P.S:對於程式設計師來說資料結構這個還是學的,還可以按照“HTML →CSS →Java →資料庫”的順序來學,可以多看看php的書籍,比如:PHP 和MYSQL web開發,這是php的聖經。
如果要成為一個軟體工程師,是不是必須學會演算法和資料結構?
簡單的資料結構是一定要會的,棧和佇列不能不會吧。希望一直在這行業一直做下去並希望有所突破,就必須得深入學習,循序漸進不用著急。
關於演算法和資料結構要學習的:
首先演算法要學的有::圖搜尋、排序、Prim / Kruskal (最小生成樹)、Dijkstra (最短路徑演算法)、正則表示式和字串匹配、
其實資料結構要學習的有:圖、樹、堆、佇列。
php程式設計師如果想做遊戲的話可以學一下A*演算法,四八叉樹場景管理等。
曾經,有個公式,演算法+資料結構=程式,所以嘛,想當好的程式設計師,演算法和資料結構是基本功,不得不學好。其次,程式不夠了,變軟體了,多次的返工重構造就了軟體工程,想脫離軟體藍領的人,必須要懂軟體工程。再後來,軟體也不夠了,變系統了,這個麻煩哪!最頭疼的莫過於使用者一看你交付的,說人家想要的根本不是這個,真正牛逼的人,都在需求工程上有過人之處。問題很好,路自己選。
語數英不好的人學演算法和資料結構會不會很辛苦??如果說英語不好就不能學,數學不好就不能學。大家是不是就不學了?如果說資料結構不重要,演算法不重要。大家是不是就不學了?
P.S:“今朝有酒今朝醉,莫使金樽空對月”,不要活在別的眼裡,這邊沒有那麼多要求,還是跟著工作走,如果你的工作用到了,就學習。到那時候,你的基礎已經蠻紮實了,就像武俠裡的,當你內功足了,就會接觸更高層次。先搞定工作,業餘時間有針對的學習。