思维方式的转变
對于初學者來說,初學程序設計一定是比較困惑的,萬事開頭難。主要是大家對一門新的學科接受起來不那么容易,這主要是受到中小學長期以來的思維定勢影響,在中學6年的時間里,大家學習的數學、物理等課程可以說完全是一種連續性的數學知識,比如說二次函數,大家接觸的數學知識好多都是與函數有關的,而這種函數是一種連續性的數學知識。物理也是,求什么之類的公式、方程、定理等等。而計算機所用到的數學是一種離散的數學,在學習計算機時,一切考慮問題的方式都是離散的。例如,求前n個數的和,求定積分等等,都是使用離散的知識求解問題,這與計算機的存儲特性有關。從中學到大學,需要對思維方式進行轉變,如果你是學計算機的,必須進行這個轉變,不能用中學的連續思維考慮問題,而應采用離散的數學知識考慮問題,大家以后在學了數據結構、離散數學會體會到這一點。
C、C++又是一門計算機類的基礎課程,對鍛煉我們的思維方式有很大的好處,學習計算機一定要學好c語言或C++,不要逃避指針,不要盲目地去學校JAVA,先學好了基礎,然后在學習其他的。C語言或C++語言是對于初學者來說最好的語言,因為里面不涉及比較復雜的流行的技術,靜下心來好好學習C、C++,對于今后學習算法和數據結構有很大的好處。C、C++博大精深,想要學好,也不那么容易。不要小看了C和c++。
對于立志深入學習計算機的同學來說,C、C++一定要學好,只有打好了基礎,才能使自己的知識更加堅固。大家可以通過計算機等級、軟件水平考試來加強鞏固自己的學習成果。參加各種考試,積累經驗,可以很快地提高自己的知識水平。不斷地遇到難題,然后想辦法去分析、解決問題,這個過程就是提高自己的過程。
上次談到在學習C、C++編程的過程中,要注重將連續性思維轉變為離散性的思維方式。這種轉變具體的體現主要是進制的轉換、求函數的根、求積分、求數列的和。也許不少同學在初學C語言或者其它語言時,遇到數列問題如1+2+3+。。。的問題,可能第一個反映是利用高中階段的求數列方法進行計算即n*(1+n)/2。其實,這就是連續性思維方式,這顯然是錯誤的,在計算機中,我們是以二進制進行存儲的,每個數據之間都是不連續的,無論這兩個數是多么接近,它永遠不會是在一條曲線上的連續數字。同樣在編寫程序時,我們也不能用這種連續的方法去考慮問題,我們可以用離散的方式去模擬它。再比如,對于求一個高次函數的根,我們可以采用二分法,也就是用一種逼近的方法找到方程的根。f(x1)*f(x2)<0是,逐漸縮短x1和x2之間的距離,知道x1和x2之間非常近的時候,我們就認為x1或x2是方程的根。
離散思維在編程過程中處處得到體現,這也就是我們為什么要學習離散數學的原因。在今后大家學到數據結構和算法時,其實都潛移默化地使用離散性的思維方式。
今天先談到這里,不管大家學習什么語言,學習C語言也好、C++也好,java也罷,這是形式方面的問題,是架勢,外在的東西。但是思維方式的轉變是內功,是內在的東西。如果學習C、C++,掌握好指針,是一筆財富,這是一種獲取的手段。學習java的同學也一定學過c語言,指針的操作和位的操作可以讓你更加深刻的理解計算機的工作方式。這里只是說c語言c++是基本功,以后不管學習什么語言都是大有裨益的。
總結
- 上一篇: 算法----计算机程序设计之魂
- 下一篇: 如何学好算法与程序设计