如果想學好程式設計除了c語言之外一定要學演算法麼?

時間 2021-05-07 18:02:36

1樓:

先放結論:

根據提問標題「學演算法」來說,不一定非學演算法,演算法也是前人的經驗總結。但是!但是!

但是!,如果你要學好程式設計,演算法那就是必須的。另外,如果要靠程式設計吃飯,還要吃的好,那演算法就更重要了。

演算法是解決問題的通用模型或模式,而具體哪一門程式語言則只是解決問題的一種途徑或載體罷了。

以個人的曲折經歷我還是多說幾句:

如果是初學程式設計,沒有任何程式經驗,我個人建議學一門弱型別的語言先,用作程式思維的鋪墊,否則直接一上來就學c/c++演算法等等實在有點吃不住(參考cs系的成績 ),有了這個思維後,一定要學演算法,這也是工作所要用到的基本功。在這之後,趕緊去補什麼c/c++計算機組成原理。編譯原理等等等等,這時候你會發現這些理解起來實在是簡單多了。

這麼一套下來,如果有一兩個特長方向,或特長語言,中間多做幾個綜合小專案,基本就可以勝任國內大多數it公司的日常工作要求(僅限普通工程師)。

2樓:Neko

程式設計面向的是具體的問題,你要有演算法和資料結構的知識才能快速的確定你要如何解決這個問題。

先舉乙個最簡單的例子,如果我有乙個遊戲得分表,當玩家打出新得分的時候,如何快速的找到新得分在得分表的位置?普通人會順序查詢整個得分表,學過一些演算法的同學會用二分查詢--顯然(絕大多數)情況下第二種會比第一種快。

但我想說的是,真正熟練運用演算法和資料結構的同學會將兩者結合起來:在資料範圍比較大的時候用二分查詢,當二分到一定範圍時改用順序查詢。這種就比較接近一些庫的實現了。

再此基礎之上,如果我繼續要求在插入的同時我能得到該得分的真實排名,那又該怎麼做呢?普通人會完成插入後再進行一次查詢操作,這是O(2log n),但事實上在上述演算法上稍作修改就可以更達到log n。

3樓:韋捷

先說結論,資料結構和演算法一定要學。

首先,面試的時候用得到,這將決定你能不能去優秀的團隊。從而直接影響你的職業生涯。

接下來,工作的時候,你可能不會用到演算法書上的所有知識,但總有那麼百分之二三十的內容,需要像乘法口訣一樣在用到的時候需要信手拈來才可以讓工作更加流暢。這會的工作效率和質量,從而影響到團隊對你的評價。

在優化程式的時候,有一些瓶頸可以用演算法書上的知識來突破,如果別人不能解決而你能,這會讓團隊對你另眼相看。

4樓:unbelievable

這不是穩的,語言是工具,演算法是靈魂,只有工具有什麼用。能精通一樣語言就好了,但是資料結構等理論基礎課才是計算機學科的核心~

5樓:豪伊

把程式設計和寫作進行模擬:學會習程式語言本身,和學習一門自然語言類似。但是要寫出一篇有意義的文章是需要邏輯的,這就是演算法。

基本的演算法必須會,雖然你根本不會自己實現這個演算法(高階語言中都有庫,裡面的演算法都是經過千錘百鍊的優秀實現)。學習基本演算法,可以說是乙個程式設計師的基本素養。如果僅僅懂一門語言的語法,那還處於最低階的狀態。

作為普通程式設計師,達到能手寫常用演算法的基礎版就可以了;想向演算法工程師或者計算機科學家方向發展另當別論。

6樓:qweroot

還是要看學程式設計的目的。

如果是為了競賽,學演算法。

如果是為了工作,就學如何搜尋你在程式設計中碰到的問題更重要。

演算法 != 程式設計 != c語言

其實這三者之間沒什麼直接的聯絡。

7樓:學院路頭牌

一定要學演算法,以及資料結構。

C 只是乙個工具,學C 的目的就是為了去實現演算法,而演算法的實現要依賴各種各樣的資料結構的支撐。

程式設計說白了就是把人的思想成果告訴計算機怎麼去做,可以不用C, 用Python、c++等都可以,貫通其中的就是演算法,一定要學好演算法以及資料結構。

8樓:丁仲堃

程式設計說到底,是利用計算機來解決生活中面對的問題,c語言是工具,而且是很經典的工具,理解了c語言裡面的什麼和為什麼,相當重要。演算法是另外乙個工具,想要高階一定要學演算法,學其中的思路。

9樓:wq zhao

需要學習一系列東西,程式語言(至少一種,物件導向的和面向過程的各學一種比較好),計算機組成原理,彙編,離散數學,演算法與資料結構,資料庫原理,網路基礎等等。演算法只是計算機知識體系中的一環,需要知道常見的資料結構和基礎演算法。具體的工作的時候,可能需要涉及到底層演算法的時候比較少,當然如果基礎都踏實了,深入下底層演算法,提公升下自己也是很不錯的。

10樓:悶瓜蛋子

當然需要學習演算法,就像計算機方面的其他知識一樣,剛開始的你可能只需要學習一下語言的語法,或者系統的API,就可以「用」了,但是你用的越深入,越會發現你需要補充知識,演算法就是其中之一。你的技能樹總是要填滿的,有時間的話不妨學一學,況且演算法還是比較基礎和重要的,其他的還有資料庫、網路協議、作業系統等等。

11樓:

學演算法,其實大部分學的是一種簡化問題的思維方式電腦很傻,他能理解的東西很少,我們就是要把人的「感覺」簡化成最簡單的問題,讓電腦去算。。。。。。

以快排,冒泡這種基礎演算法來說

大部分,學習的,就是遞迴簡化問題和迴圈巢狀簡化問題生活中很多的事情,都可以用電腦去計算,但前提就是簡化成一些簡單的,遞迴或者迴圈

前幾天有個同事要學python

我給他的,高階題,我一會發一下

很簡單的,檔案內容操作

最簡單的要求,就是,不允許匯入任何模組。。。。。。。。。

純用python的內建方法寫

起手就是numpy ,pandas,這樣的學習方法,很容易造成,基礎資料結構和基礎演算法不紮實,未來寫複雜的運算,其實是很有困難的。。。。。。。。。

12樓:

要想學好程式設計,一定得有個好記憶力,如果記不住,就要動手抄程式改程式,相當於記筆記。

你所知道的、用到的、包括你沒想到的、想都不敢想的方法用法,都有人寫好了實現了封裝了框架了,剩下的就是把他們經驗驗證一遍,演算法嘛,其實就是經驗!

13樓:悽臨雨

演算法會個一般般

程式設計行業除了演算法還有體系結構、軟體工程。

有一半的應用開發是談不上演算法的,最傻的窮舉、資料都可以,順著業務往下走就是了……

如何快速學好c語言的程式設計?

The One 建議從實踐出發,比如現在就去用C語言寫乙個桌面程式,你就會去了解寫乙個桌面程式具體需要用到哪些東西,哪些函式庫,不需要按著教材上的順序學,把你的想法變成實際,如果沒有想法就去模仿一些簡單的專案做個demo來完善自己的skills,你真正應該掌握的不是C語言,而是學習能力和解決問題的能...

想學好linux就一定要學好C語言嗎?

qianguozheng 看你想怎麼學好。使用,不需要會shell,懂命令就可以了 深入了解為什麼?看看專業的分析,有很多原理性的東西修改,優化。這就需要用c語言了,看實現原始碼 望山 完全不學一點C語言的話,就連shell指令碼都寫不好,因為很多shell命令的返回值就是它內部使用的最後乙個API...

學習了半年的c語言之後,現在想學習c ,現在感到很迷茫,不知道怎麼學習c ,求學習路線。?

公尺安 有c的基礎學c 應該快一點,雖然我沒有學過c。我是在學校裡面課程上學習的c加加,用的譚浩強的書,雖然這本書被人詬病很多,但是個人感覺起碼他對於我入門幫助還是挺大的,因為當時沒有看其他的書,當你有了一定得基礎以後,再開始看其他的書,去c primer plus等,這本書略微有點多,一開始就看這...