java 數(shù)據(jù)結構與算法 為什么剛入門的程序員沒有感覺到算法和數(shù)據(jù)結構的重要性?
為什么剛入門的程序員沒有感覺到算法和數(shù)據(jù)結構的重要性?關于這個問題,首先,我非常遺憾地告訴你兩點。首先,能夠問這個問題意味著你不是一個程序員。只能說你才剛剛開始學習編程(即使你有一份編程工作,你也不能
為什么剛入門的程序員沒有感覺到算法和數(shù)據(jù)結構的重要性?
關于這個問題,首先,我非常遺憾地告訴你兩點。
首先,能夠問這個問題意味著你不是一個程序員。只能說你才剛剛開始學習編程(即使你有一份編程工作,你也不能改變這一點)。就像說一個剛學了三個月吉他的人不能稱自己為吉他手(但他可以說是吉他手或吉他手)。
其次,我很抱歉地告訴你,你還沒有開始。入門的先決條件之一是理解程序實際上是一個算法數(shù)據(jù)結構。所以你說你是一個入門級程序員,但你不覺得算法和數(shù)據(jù)結構的重要性。那么我想問一下,除了算法和數(shù)據(jù)結構之外,程序中還有什么重要的東西。
不理解狹義的算法,認為算法是排序算法、搜索算法,認為數(shù)據(jù)結構是數(shù)組、鏈表、哈希表、圖形等。這些都是經(jīng)典的算法和數(shù)據(jù)結構。
你寫的程序,不能有任何這些經(jīng)典的數(shù)據(jù)結構和算法,那么,你的程序沒有算法和數(shù)據(jù)結構嗎?你的程序必須解決一個問題或做些什么。這些東西,你首先需要在計算機世界建立一個模型,這個模型就是數(shù)據(jù)結構?;谶@些數(shù)據(jù),您的程序需要執(zhí)行一些指令,這些指令是作為一個整體的算法。因此,program=algorithm數(shù)據(jù)結構就是在這個廣義上說的。
正是因為“程序=算法數(shù)據(jù)結構”,所以沒有了算法和數(shù)據(jù)結構,程序中就沒有殘留。至于算法和數(shù)據(jù)結構之間的關系,我不在這里討論??傊瑳]有數(shù)據(jù),算法就沒有對象和基礎。數(shù)據(jù)結構的設計和合理性將影響算法的性能。
為什么你感覺不到?答案是我答案開頭的兩點。我說的話似乎有點殘忍,但實際上沒什么。繼續(xù)學習。
程序員需要終身學習。
想學數(shù)據(jù)結構和算法要不要學c語言?
學習數(shù)據(jù)結構和算法不一定要用C語言,C也可以,但是學習C語言,要提高編程能力,最好是學習數(shù)據(jù)結構和算法。
為什么?因為數(shù)據(jù)結構和算法本身與編程語言關系不大,但不同語言的學習效率會有所不同。我們應該避免那些對算法有大量語法干擾的語言。
合理的代碼結構可以減少代碼量,提高代碼效率,構建更強的代碼框架。
學習C語言版本的數(shù)據(jù)結構,可以對C語言本身有更深入的了解和應用,如結構、指針、內存管理等技術要點,
算法的使用,如MATLAB算法的驗證和研究等,常用的算法需要數(shù)學,算法語言,可以根據(jù)工作需要學習編程語言
我也是軟件工程專業(yè)的。我已經(jīng)畢業(yè)了。學習C語言代表編程入門,并了解一些編程語言的相關知識。今后,你需要學習數(shù)據(jù)結構、算法、計算機網(wǎng)絡和操作系統(tǒng)數(shù)據(jù)庫(concept和SQL)這些理論課程,這些都是科學的知識結構,不用擔心,比較枯燥。學校也應該安排學習,但大多數(shù)人不使用這門課程。
您學習C編程語言,建議深入學習,然后選擇面向對象編程語言Java和C++中的一種,個人建議是Java!C++也需要理解。掌握最重要的理論學科,編程語言一定不能多學,需要學得更快。學點技能就夠了。Java可以做很多,Android、服務器、web后端都可以。如果你對web前端感興趣,你應該好好學習HTML CSS JavaScript。不過,這些學科的本科課程會有安排。
大一現(xiàn)在時間比較多,建議不要把時間放在蘭花肥皂俱樂部學生會這種地方。在編程語言的基礎上,你可以去LeEcDe碼查看簡單的主題并培養(yǎng)編程思維。
編程是一個長期的過程,不要走得太遠,不要急得太慢。特別是不要被大數(shù)據(jù)、人工智能數(shù)據(jù)挖掘和所謂的高樓大廈所迷惑。
最后,數(shù)據(jù)結構+算法=程序設計。