當前位置:成語大全網 - 新華字典 - 學習編程好不好?

學習編程好不好?

如果妳只是想玩玩,想做點小東西的話。就學學Java,然後買幾本實例教程,慢慢練。

如果妳想系統的學習。說說我的想法啊。妳要有壹個目標,學到什麽樣,妳變成才算入門。精通啥的就不說了,文無第壹,妳說妳自己精通,總會有大牛站出來鄙視妳。

那什麽叫做入門呢,我的理解是,妳看到壹個現有的程序,用腦袋想想,大體能明白他是怎麽實現的。當然不用完全明白,這不太可能,但是讓妳照著這個程序寫壹個差不多的程序不會毫無想法。到了這個程度妳就差不多入門了。說白了就是學習的第壹階段模仿,不用創新,妳只要能看著現存的東西去模仿就好了。會了模仿才能更進壹步。不過這個模仿可不是讓妳照著code抄,而是黑箱。不求壹模壹樣,只要有個大體的思路,可以去實現就行。

那麽為了實現這個入門,妳需要壹系列的系統學習。像那種用實例來學習的,也只能學習表面,總有妳沒有見過的事物,所以妳需要學習的是本質,是原理。當然通過實例由淺入深是可以的,但是妳不能舍本逐末。

編程與理論是兩條線,但是這兩條線是伴隨關系。很多初學者不知道該怎麽學,所以說科班是很有必要的,起碼實用。

那麽我在說說這個學習的過程。首先妳要選擇壹門編程語言,如果妳是那種肯吃苦,耐得住寂寞的人,我建議妳從C開始學。為啥這麽說呢,因為C比較底層,妳想用C開發點有意思的程序特別是帶GUI的,不說癡心妄想吧,起碼很累。但是C的好處是語法簡單,學好C以後,上可以實現數據結構,算法,下可以用來研究OS,算是學習期間比較全能的壹套語言了。如果妳比較急於求成,想短期內做點有意義的小程序,那就學Java。Java的庫比較多,比較容易寫壹個帶GUI的程序。而且OO的思想妳早晚都要有。

與此同時,去把理論學習了,什麽離散數學,計算機結構,數據結構,算法,壹個壹個來。

這時候妳可以學學匯編和機器語言,這個不是說要妳用匯編去幹啥,而是為了讓妳明白CPU的工作原理,然後試著自己用or,and,xor這類的原件自己設計壹個CPU。不是讓妳真的去做壹個實體CPU出來,只是畫畫電路圖。當妳明白CPU工作原理之後,妳會有壹種豁然開朗的感覺,原來計算機是這麽精巧的。

之後妳可以開始學習操作系統原理的。這時候妳可以去裝壹個Linux,然後熟悉熟悉那些system call。研究研究文件結構什麽的。羨慕那些天在shell裏面敲命令的前輩們嗎?其實這些壹點都不難,等妳熟悉了,妳就會覺得windows太不適合編程了。很多人都說Windows寫程序好,VS是IDE神器什麽的。可是假如沒有VS還有人用Windows寫程序嗎?所以他們與其說Windows好還不如說VS好,Windows只是附屬品。Linux隨意的多,想C這類的語言,沒啥lib可用的時候,有沒有IDE都差不多。但是像Java這個變態語言,我反正不會用VIM這類軟件去寫,累死了。

學習系統的時候,妳就要學平行處理和線程控制了,parallel和concurrent這些。計算機的CPU就那麽幾個核,甚至是單核。但是計算機同時運行這麽多程序,就是靠OS的平行處理功能的。學好這些很有用。

在向上壹層可以學的東西可就多了,Network這壹塊可以學學那些協議比如TCP,UDP或者HTTP之類的,然後嘗試著用C寫壹個簡單的服務器,監聽壹個端口發點信息啥的。妳也可以用Java寫,Java做這些比C簡單點。但是C更貼近系統,因為Java用的是虛擬機,畢竟隔著壹層。

如果妳對3D圖像感興趣就學學OpenGL。簡單的小程序用C就夠了。太復雜了就要學學C++。反正我是很不喜歡C++的。雖然功能強大,但是開發起來太累了,特別是學了Java之後,妳會覺得C++這麽能這麽麻煩?可是想做底層開發妳又不得不學C++。所以看妳自己的定位了,如果不是很想深入,C就夠了。學到OpenGL妳就能體會到Linux的優勢了,配置環境從網上找壹些命令壹敲就好了。當年我上graphics的課時,第壹次作業,我都寫完了,那些用Windows的同學們還在研究配置環境呢。他們本以為第壹次配置好了之後就能體現出VS的優勢的時候,才悲劇的發現這學期每個作業都要用壹兩個新的lib。所以他們只能憂郁的看著我那雲淡風輕的壹邊喝咖啡壹邊敲代碼。

計算機的分支太多了,妳能學的還有很多,比如數據庫。其實數據庫語言很簡單,學學MySQL妳就能學個大概。與此同時妳可以學學網頁開發,html+css+js為前端,後端的選擇太多了,比較傳統的比如PHP,如果妳Java學的好就學JSP。微軟那些就不說了,Python什麽的也不錯。

說到這裏,這個腳本語言妳也是有必要學習壹個的,Python是比較常見的選擇。學完python妳可以比較壹下,C,Java,Python,妳會發現越底層的語言功能越少但是很方便去實現那些基礎結構,比如數據結果啥的。越是高級的語言功能越多,什麽都是現成的,但是那些基礎的東西都被隱藏了。這也是為啥10行的python,java要寫30行甚至更多的原因。可是底層的語言卻更快。當妳習慣了Python的開發效率的時候,妳可以能不會再去碰其他的語言,但是這並不代表妳壹開始就不用學,否則妳怎麽會理解其中的原理呢。

說的編程語言,妳就不得不學壹下編譯器開發了,compiler可是壹個很神奇的東西,但是壹句兩句說不清楚,買本書自己研究壹下,這個也是非常實用的。

學到這裏基本上基礎的東西就學的差不多了,但是學無止境,CS既然是是壹門科學,那就總也沒有盡頭,但是當妳理解並明白了基礎知識之後,壹切新的知識學起來都不會太難。