從事軟件開發多年,數據結構是程序員的必備基本功,數據結構應該是算法的基礎,算法一般初學的時候很難理解,掌握算法需要完成兩個步驟,真正了解算法的本質就是從概念上理解,從理論上不掌握很難進行實踐,雖然編程行業講究的是實踐,在沒有準確的理論基礎上進行實踐類似于無頭蒼蠅,想要真正的掌握一種算法,需要經過經過幾種步驟,第一掌握理論,第二用代碼實現,第三回歸到算法本身進行變通,如此反復進行。
很多程序員在學習之初不太重視數據結構,但復雜的算法都是在數據結構的基礎上堆積出來的,數據結構書本有關于C語言版本,有C++版本,java版本等等,數據結構是多種編程語言的基礎,所以有各種編程語言版本,算法和具體哪種編程語言沒有直接的關系,脫離開編程語言而存在。樓主說到的算法真的理解了,剩下就開始尋找對號的編程語言開始寫代碼,如果覺得代碼無從下手從邏輯上分析不會跑出兩個原因,其一算法還沒徹底的理解;其二編程語言的基礎沒有掌握好,從理論轉化成實踐的能力還有待加強,需要對編程語言下功夫攻克。
一般是先學習基本的編程語言然后進行數據結構學習,最后再切入算法的學習,這個過程需要循序漸進,開始有點不適應也特別正常,本來算法的學習就是比較枯燥的,由于人工智能的帶動,現在市場上急缺高級算法工程師,很多對口專門的學生沒有什么編程經驗就被招進公司去工作了,但是很多人對于人工智能還是保持一種懷疑態度,覺得是一種噱頭但在實際過程中智能化的設備或者產品已經越來越普及了,包括頭條公司的智能推薦都是智能的一種表現,前些日子任正非老爺子也提到了人工智能的重要性,提到華為公司生產一部手機只需要20秒的時間,全程幾乎沒有人員的參與,人工智能的發展必然帶動算法崗位。
算法學習需要一個過程,需要把數據機構的基本要素掌握清楚,算法難在開頭一旦有了感覺后邊學習起來就比較快了,如果再輔助代碼就會提高很快,標準的理論和實踐想結合,不同的編程語言對于數據結構封裝層次還不太一樣,像C語言里面很多基本功能都要自己去實現,但在java,python等高級語言上面由于具備足量的類庫,實現功能就會快捷許多,未來編程語言向著高度的集成化發展,實現一個功能如果換做C語言需要半個月時間,可能用高級語言只需要三天就能完成,就是這個道理。
學習算法要給預留好時間,從來都不是一蹴而就的事情,學習初期缺什么補什么,最后慢慢落實到位,算法代碼的學習需要穩扎穩打,心急吃不了熱豆腐,希望能幫到你。