計科專業新生須知:什麼才是編程?助你進階大牛的必經之路

魔公子世無雙 發佈 2019-12-23T12:00:40+00:00

很多的同學大一時就想成為編程高手。在百度上提問了多次,也找過很多的資料,得到的答案無非是自學C語言或java c++等語言,學完大學的課程發現此類回答對於編程零基礎者毫無幫助,往往會使零基礎者喪失信心。因此寫下這篇經驗,供大家參考。 什麼是編程?

很多的同學大一時就想成為編程高手。在百度上提問了多次,也找過很多的資料,得到的答案無非是自學C語言或java c++等語言,學完大學的課程發現此類回答對於編程零基礎者毫無幫助,往往會使零基礎者喪失信心。因此寫下這篇經驗,供大家參考。

什麼是編程? 編程就是讓計算機為解決某個問題而使用某種程序設計語言編寫程序代碼,並最終得到結果的過程。下面是重點,是零基礎者需要知道的。



編程分為硬體編程和軟體編程。

先由硬體編程講起(零基礎者必須了解,了解有助於認識編程,)中央處理器又叫cpu,(這裡用大白話講述),cpu有很多向外的線 (術語叫做引腳),它們中有一根線我們以它作為電壓0參考,其餘的線有兩個功能:1.讀出這點接入的電路的電壓,2.輸出電壓我們又定義電壓U,以U為界限將讀取輸入的電壓分為0,1。在PC,筆記本電腦上,1指電壓低於-12V,手機里1指電壓高於3V,其他情況為零。對於一塊1600萬色的螢幕,它可以顯示16777216(就是24個2相乘)中顏色,24根線每根線電壓為0或1,那麼剛好有16777216組合,螢幕會根據每根線的電壓大小判斷該顯示的顏色,對1080P的螢幕有1920*1080個點即2073600(小於21個2相乘),21根線的組合可以涵蓋螢幕上的點,顯示時,21根線告訴螢幕那一個點亮,24根線告訴螢幕亮什麼顏色,當21根線代表的點不是這一點,這一點顏色不會變化,拿小米電視來說1s一個點最多可以改變30次,超過24次人眼就感覺不出來。



下面是大家關心的,軟體編程,大多數人想編的是在windows上運行的。

現在軟體編程包括windows編程,安卓編程,OX編程,linux編程。先講一下原理。拿windows編程來說,微軟公司用C語言編寫了能使intel amd的cpu驅動顯示器顯示的程序,就是windows作業系統,你要編寫的程序寫完後告訴windows,windows把你寫的程序當作想點數標一樣的反應。微軟自己定義了一套語言,但是開發者學習成本有很高,C語言模擬器又滿足不了它的要求,於是微軟開發了C#(C#有著與C相同的結構賦值規則),它是專門為windows設計的語言,又是windows開發環境,C#最大化的減少windows開發難度,同時增大不同人間的協作性,WPS、AE、QQ影音都是用C#編出的,只要你學過C語言和C#你就可以在windows平台開發。最後說一下JAVA,隨著圖形介面的流行,各個系統操作日益相同,如windows,linux,MAC OS,java應運而生,它可以把你寫的程序翻譯為相似平台的語言,從而在各個平台運行。初學者自學不要碰JAVA,只有學過C語言,C#你才能看的懂。

最後總結一下:

編程首先要學C語言(可以不學C++),數據結構(當編寫大程序如wps,學過數據結構能增加運行速度,不學的話也可以)這兩者可以讓你明白編程的基本規則。

如果你想編寫硬體系統,如單片機,windows,安卓(編是一個人是不可能的但該可以),那麼你學過C語言,數據結構下一步你要學習ARM,或51單片機,對ARM,或51單片機編程與硬體編程原理相同,之後你就可以看作業系統底層。

如果你想編軟體,你要看情況,編windows你要學C#,學完就可以了。編安卓你要學先學JAVA,才能接觸谷歌專為安卓修改的JAVA語言。編iOS ,mac os你要學習Object-C。



最後給大家推薦參考書:

C:《c程序設計》譚浩強 沒商量

數據結構

《數據結構》 吳偉民,嚴蔚敏 (適於掌握重點,考試時用)

《數據結構與算法分析》 Clifford A.Shaffer (適於練習時使用)

因為沒有專注於Java Object-C開發 所以沒有好的自學書推薦

最後推薦學有餘力者看一下《數字邏輯電路》儘量別看《數字電子技術》因為前者偏重於具體理論,會告訴你編程背後的邏輯思維,後者則偏重於數字邏輯電路的物理實現。舉賢不避親,推薦我的老師寫 得《數字邏輯電路》,毛文林,鮑家元,張琴著。

以上內容為愛好者自學,如果你要靠編程混飯吃,那麼以下內容才是重要的:

C++一個重要的部分就是模塊化設計,一個人往往只涉及一部分就可以了。現在招聘至少需要C語言,和數據結構知識,如果要應聘,必須要學好這兩門課。

另外,《算法導論》成為程序設計高手的必修課,真正的編程高手不是實現了什麼功能而是以最少的資源實現。

我自己也是從最基礎的C語言開始準備了一些資料,有需要的或者有c/c++等編程相關問題不理解的可以私聊解決。

關鍵字: