理論指導編程
1. 什麼叫編程編程課是指什麼
編程是編定程序的中文簡稱,就是讓計算機代碼解決某個問題,對某個計算體系規定一定的運算方式,使計算體系按照該計算方式運行,並最終得到相應結果的過程。
例如說為了使計算機能夠理解(understand)人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據人的指令一步一步去工作,完成某種特定的任務。這種人和計算體系之間交流的過程就是編程。
編程課是大學里的一項專業課程,主要就是通過各種相關的理論知識和專業技能來達到使計算體系按照該計算方式運行,並最終得到相應結果的一項學習。目前在市面上有關於編程課學習的課程有很多,除了大學以外,還有少兒編程,不少國內的孩子在初中或是小學就已經開始學習相關的少兒編程課程了。
(1)理論指導編程擴展閱讀:
編程課對孩子綜合能力提升的主要體現在以下四個方面:
(1)編程課開發孩子大腦
小的時候孩子還沒有形成良好的思維模式,可以對孩子進行適當的鍛煉,增強孩子動手動腦能力,有利於開發孩子大腦智力發育,幫助孩子得到啟發,有助於孩子編程啟蒙發展。
(2)編程課提升專注力
少兒編程學習以編程游戲吸孩子注意力,讓孩子能夠主動投入少兒編程學習,有利於提升孩子專注力,全神貫注學習編程。
(3)編程課提高耐心與意志力
編程課學習是不斷試錯的過程,如果孩子獨自完成編程游戲製作,需要足夠的耐心與意志力,有助於孩子實現編程程序運行。
(4)編程課提高創造力及想像力
編程課學習是不斷創造的過程,需要孩子發揮想像力與創造力,將腦海中的編程游戲設計出來,有助於提升孩子創新能力,讓孩子獲得進一步的能力提升。
2. 在學習編程的過程中,應該注意什麼
在當你學會了一門語言的時候(也就是說,你記住了該語言的語法,詞法,還有一些常用的函數),就意味著你已經掌握了編寫程序的基本工具。無論你用的是啥語言,都差不多。只是工具之間有長有短。比如說,Delphi,VB之類做Windows環境的應用程序很方便;用Java開發基於網路的程序很輕松;C,C++適合開發系統級軟體。假如我們用C(C++)寫一個記事本,估計要寫數百行代碼,而且不能保證沒有大錯誤,而用delphi,,或VC來做,就只要滑鼠點點控制項,幾下就完成了,可謂方便。這就是說工具各有特點,各個方面都有各個方面的最適合的工具。不過工具只是工具,光靠工具是寫不出好的程序的。就好比我要寫一篇文章出來,首先確定用啥語言來寫(漢,英,俄還是其他?很顯然,如果我是寫給中國人看,自然用中文,寫給美國人看,當然用英文。)好,確定了語言之後呢?我就能寫文章了嗎?文章結構如何設計?寫文章的方法技巧和注意事項是什麼?這些我都不知道,自然寫不出好文章。可見,要寫一篇好文章,會語言是遠遠不夠的。同樣,要寫出好的程序(程序運行結果正確,時間,空間效率高,健壯性好,可讀性強等等),光會一門語言也是遠遠不夠的。學習編程方法才是我們應該做的。 大學計算機教育也是先從教授一門語言開始(一般是C語言),然後,緊接著就開始數據結構和演算法的學習。數據結構和演算法設計分析是整個編程方法的基礎,重中之重,也是考研專業課必考科目。以前流行過一句話:數據結構+演算法=程序。這是不無道理的。數據在計算機中的表示和存儲不是無組織的,是有規律,有結構的。因此,當我們對這些數據操作的時候,理論上存在一種與某結構相比配的最優(或近式最優)演算法,以次來確保操作數據的時空效率。打個比方,現有一排數據:a,b,c,d,e,如果經常要對其進行查找操作,順序排列存儲該數列能降低操作的時間。同樣如果經常要對其進行插入或刪除操作,採用鏈接存儲則能降低該操作的時間復雜度。由此可見,合理的數據結構,高效的演算法對程序質量有著多麼重要的影響!又比如,我們要編寫程序能對中國所有公民的身份證號進行排序。這是極其龐大的一組數據,如此多數據採取什麼結構來表示和存儲,以及應用什麼演算法來對其排序,使該程序在排序時盡量的快,佔用的空間盡量的少。這都是學問,編程的學問!所以,我覺得,程序員對數據結構和演算法的領悟程度直接決定了他的編程水平的高低。那麼如何提高自己的水平呢?我們可以學習研究像C(C++)函數庫(API)里的函數,或JFC(JAVA類庫)中的函數,這些函數實現都是非常有經驗的程序員編寫的,有著很好的運行效率。再者,就是數學的重要,我認為數學對程序的重要性體現在對演算法的支持上。像微積分思想,為計算機數值計算提供了理論指導;而數據結構和演算法來源與離散數學,線性代數和概率統計中的思想和方法。另外,像計算機密碼學,計算機圖形學,計算機多媒體都離不開數學。好的演算法需要數學工具來理論驗證,也需要數學來改進,來完善! 那麼,面向對象又扮演什麼角色呢?說到底,我覺得面向對象思想的宗旨就是代碼重用。面向對象里的三大概念:封裝,繼承,多態都是為了代碼重用。重用質量高的代碼,不但可以節省人力,而且極大提高了本身原程序的質量。比如,我要編寫一多功能計算器,我依據自己喜好設計了界面,在具體功能實現上我繼承了別人已經寫好的正確功能類,不但省去了自己寫的麻煩,而且也保證了該計算器的正確性,一舉兩得。面向對象思想在寫小程序時或許體現不出優越,但在中大型軟體開發時,它的無比威力便會體現出來。沒有作過中大型項目的人是不會感覺到面向對象思想的偉大。在這里,我還是要強調一點,面向對象思想是極好的思想,極好的編程方法。但是如果沒有質量好的代碼可以值得被重用,面向對象方法就沒有用武之地!可見,擁有良好數據結構和演算法的功能代碼塊是保證整個程序質量的奠基石。(再次強調數據結構和演算法的重要!) 軟體質量好壞還有一個很重要的因素:軟體體系結構。 我再打個比方,我要建房子。軟體體系結構就好比房子的結構,採用哪種樣式(歐式?中式?)決定了房子的結構, 軟體體系結構的規劃設計也就決定了軟體本身的結構(軟體的環境,功能模塊的安排,位置,互相聯系關系等等)。那麼,房子的結構設計好了,就要解決建築材料的問題。顯而易見,牢固的磚頭和橫梁是房子牢固的根本保證。同樣,擁有良好數據結構和演算法的功能函數或函數塊也是整個軟體質量的根本保證!有了質量過硬的磚頭和橫梁,只要結構合理,房子的壽命是完全可以保證的。一樣道理,我們手頭有了大批信的過的功能函數或函數塊,在編程的時候合理運用 面向對象方法,按照科學的體系結構要求,就能在經濟的條件下,開發出優良(准確,健壯,時空效率高,易修改補充,美觀,易使用)的軟體。 現在社會上多的是基本工不扎實的程序員,盲目追風,今天C#,明天JAVA。而開發工具又層出不窮,許多軟體公司上半年在.net平台上做項目,下半年又在J2EE上開發,導致許多寫代碼的人來都來不及學。要應付這種現象,只有牢牢的打實基本功,以不變應萬變。不管用什麼語言,在什麼平台上,有扎實功底的程序員都可以很快適應新環境,用極短的時間就可以產生效益,這也是軟體公司所願意看到的。所以,我想對剛剛步入編程領域的人們說,不要被書店裡眼花燎亂的編程書迷惑。很多都是語言工具書,商業書,沒有內涵,沒有研究價值的。真正想深入的,還是先把理論基礎打扎實為妙。說的大一點,中國軟體的發展不需要知道幾門語言,會用幾個工具,卻寫不出優質代碼的程序員。
3. 怎樣學習編程
如何學習編程,主要有自學和報班兩種途徑,至於需不需要報班,可以結合自己的實際情況來進行判斷,這里簡單介紹下。
學編程的注意點:
1、要確定好自己一定能學下去,不能是三分鍾的熱度,只是學個熱鬧,這樣永遠沒有辦法學的會。
2、一定要打好基礎,剛開始學習編程的時候可能會很慢,感覺自己沒學會啥,這可能是因為正處於打基礎的階段,只有把基礎打好,未來才可以學得更好。
3、要注意實踐操作,理論知識學得再多,如果不能實際的運用,還是等於0的。
自學還是報班:
1、如果你可以規劃好自己的學習過程,堅持一步步向前走,那麼自學當然是很好的。
2、如果你沒人監督就學不進去,也沒有自己的學習規劃,那麼還是建議你報班,可以少走冤枉路。
不管是自學還是報班,學編程的要注意的點是相差不大的,希望我的回答對你有幫助!
4. 計算機和編程的理論基礎是什麼
理科大學生學計算機,應該學什麼? 對於大學生來說,計算機是一個非常重要的1、計算機數學基礎計算機數學基礎是計算機專業重要的基礎課程,它是學習專業理論
5. 編程入門學習指導JAVA
《JAVA編程思想》初學者可以先看前面幾章的基礎理論知識,然後再看《JSP應用開發詳解》系列書籍,裡面有源代碼,最好能自己敲一遍。一定要理解後再寫代碼,不要對著書抄。等你能做完一個簡單的項目後,就會發現自己已經入門了,如果想要深入的話,就得要找具體相關方面的書籍了,比如:XML、oracle、sqlserver、ejb、j2ee框架等等。
總之一句話,多實踐才是學JAVA的根本。祝你能早日進入JAVA的世界。
6. 如何學好編程請各位編程高手幫幫忙
前幾天重讀Eric S. Raymond的How to become a hacker,看到他推薦編程入門選用Python,突然覺得很壓抑,有了些想法。我建議編程入門的人學C或者Pascal,如果更進一步的話可以用匯編語言,因為這樣能更清楚的了解底層。
下面針對一些支持選用Java, Python, C++(指用了非C特性的C++)等高級的OO語言入門的人可能的原因作些說明。
1. Pascal, C太老了,過時了,平時用得很少,現在流行Java等等。
標准Pascal的確是比較老了,不過有Delphi後繼呢,說C老恐怕就是無知了,C現在用得很廣泛,似乎sourceforge.net上的項目還是 C的最多。推薦Pascal不是因為Delphi。選擇Pascal, C是覺得兩個現在很常見,語法很有代表性,簡潔明了。
不要動不動覺得什麼東西過時了,COBOL還有OO版本面世,還有FORTRAN,LISP,好古老的語言吧,現在還用得很廣呢。
2.入門要從OO開始,培養用OO方式思考的習慣。
首先要說明,OO是方法,不是語言,初學者一入門便擺弄Java, Python, Delphi等很容易形成誤解,似乎OO=Java, Python, C++...
其次,過程式語言(或者說結構化方法)的精髓不會消亡,OO裡面也不可能擺脫掉一條條的語句、函數調用,結構化方法還是需要提倡的。OO方法不是那麼容易學會的(OO語言的語法弄得很熟練不代表你懂OO),而結構化那套方法,自個寫個千把行的程序就很能體會了,我是說寫個實用點的東西,比如試著自個實現一些數據結構和演算法,寫幾個小游戲等。寫個一千行Hello world等於沒寫。
我覺得方法是實踐中體會出來的,不是看看書就能學會的,你看Design Patterns等把模式背的滾瓜爛熟很可能會陷入過度設計的泥潭,你寫了幾千行代碼,然後再去讀一讀,改改調試調試,慢慢增加功能,你就會發現自己代碼寫的有多麼臭了,然後看看書聽聽別人意見你就知道什麼叫Best practice了,最好的經驗就是在焦頭爛額之際得到的。
過程式語言的代碼一般比較簡練,我們編程序最終的目的是要解決問題,是要計算,是要獲取信息,不要被OO, pattern, EJB, Web Services等迷糊了(我不是反對這些技術).
強烈建議各位多讀代碼,你去看看萊昂氏的那本UNIX v6源碼分析,仔細看,慢慢看,你就能體會到什麼叫精緻的代碼了,然後嘗試按照那個風格寫代碼。
3.過程式語言弄久了,很難轉入OO的思維模式
我以前也沒有深想過這個理由,不過時間久了,發覺自己不過是把數據和方法集中在一起而已,看著方便,其實有很多不合理的東西,這里頭就需要OO 的理論指導了,還是需要時間來體會。我相信有很多用OO語言的人也不過是在框架里頭添添代碼,調用來調用去而已,把人類當作數據和操作的打包器。
個人覺得只有在用過程式方法做了十來年,編碼上十萬行後才有思維定勢,難以習慣用OO的眼光看待系統,然而這個轉變,我仍覺得比改變一個人的惡習容易許多。OO方法不是學了個Java, Python, C++等就能掌握的,需要實踐,需要時間。過程式語言也容易培養一個人嚴謹的做事態度,比如用Pascal, C等寫代碼,沒有namespace,沒有function overload, 沒有reference(Pascal有,呵呵,我喜歡),沒有template, 沒有exception, 你要花很多心思處理一些細節,比如警惕數組索引越界,懸掛指針,野指針等等,請不要覺得麻煩,這個就是計算機啊,底層就是這樣的啊。 4.別用C, Pascal了,看我用Java, Python, Delphi, VB, VC等輕輕鬆鬆就寫了個PP的GUI,NB的分布式應用...
這篇文章是給初學者看的,也可以給一些浮躁的人看看(我也反省,呵呵),初學編程的人精力應該放在數據結構、演算法上面,盡量多看一些底層的東西,數字邏輯,操作系統,編譯原理,計算機組成、體系結構,計算機網路等等基礎知識。編寫GUI拖幾個控制項有什麼好吹的,你懂界面設計的原則么,你知道窗口消息怎麼回事么,你編的界面是把易用放在第一位呢還是把漂亮放在第一位呢,你的GUI程序容易修改嗎?比如我一會要加個button,一會去個 listbox,你會不會改的瘋掉呢?你是不是在OnClick里頭寫了大段大段的代碼,做類似「從edit1.text中去掉不是數字的字元,搜索 xxx再轉成16進制,再復制到edit2.text」的事?
嗯,你socket弄得熟練,recv來,send去,可是如果你不懂tcp/ip協議那就有點可笑了,除了用別人做好的函數庫你還能搞出什麼新花樣?弄分布式應用的知道「分布式」怎麼回事嗎,
你是否只是在用API堆砌代碼呢?倘若有一天這個函數庫沒人支持了,你是不是就傻眼了?
比如編游戲,沒看過3D圖形學便搞DirectX,也是比較可笑的。
我並不是說你編比較高層的東西就必須先得透徹了解底層怎麼實現的,我只是建議你好歹把底層的東西混個臉熟,遇到問題時心裡有個譜,查查資料,別動不動撲某個論壇求救。以前在BBS上看到某人的話,說BBS不是學習的地方,是開拓眼界的地方。深以為然。
學習還是找紙版的書老實的看比較好,想想你積攢了多少電子書而又看了多少。
底層不了解,僅多也就飄在別人上頭,別人一閃身,你就得摔下來。
初學編程的人一來就IDE, GUI, Network啥的猛搞,能不浮躁么?還是沉下心來研究一下基礎知識吧,我以腦袋擔保你有生之年會覺得他們有用的(呵呵,你轉行我就沒轍了),別看著別人弄JFC, Socket了你還在頭大這個quick sort怎麼就不對呢就心裡惶惶的,你要知道在一批API不被支持後不少人心裡空空的沒個著落:天啊,我除了那個就啥都不會了,郁悶啊,花了我那麼久時間鑽研那套API,嗚嗚。。。。
5. C好難啊,我入門還是從Java,Python開始吧
首先,是自個要做程序員的嗎?是想編程還是想賺錢啊?
其次,我們來比較一下難易:
C: k&r那本書真的不算厚,經典的C的書很少,說C難,大概是傳說中C的指針很難吧,C的語法很簡明的,就是指針,只要你認真看看書,寫幾個程序試一試,那幾個指針的用法不難掌握,另外大家千萬不要去死鑽*++ ++*之類的語法,關於這點在《開發高手》最後一期上裘宗燕老師有一篇精彩的文章。大家記住寫代碼是要維護的,別耍弄語法技巧給自己或後人製造麻煩,你想想自己看別人寫的天書代碼是贊嘆還是咒罵?
Java: 書太多了啊,就說Gosling(沒拼錯吧)那本,相當厚,學Java的人一開始都被classpath和package的問題煩過吧,還有Java的關鍵字,語法,Sun鼓搗出來的一堆堆Java技術名詞,是不是有點暈了?
C++的確有難度,你可以看看C++語言的設計和演化,就可以知道C++怎麼這個德行了,呵呵。有意思的是Java現在加入模版,而且因為偽模版的實現被人詬病,還有那個EJB的轉變,有意思,大家可以思考一下「復雜」、「實用」這些詞。
Python的確比較清爽,不過深入一點後其內部對象模型也不簡單,想想操作一個列表有多少方法,各種功能強大的操作符,而且現在的OO語言逼著你OO, 結果往往是語法OO而已,沒多大新意,我還是欣賞Perl, C++這類語言,你想怎麼就怎麼,重要的是要用合適方法,趁手工具,最少的時間做有價值的東西,把你鑽研語言的語法的時間拿來鍛煉一下身體,泡杯茶看看小說我覺得更好一些。
語言只是表達思想的工具,不要只局限於一種語言,不要狂熱於某一門語言。
學編程時選書最好先看一看書中的代碼,是取自實際應用中的嗎?寫的漂亮嗎?(指代碼自身的精緻,以及排版是否工整)代碼中有語法錯誤嗎?(鄙視某些沒編譯試試就把代碼到書里的作者)
有本Essential C#,取的是.Net類庫的代碼,很棒,講delegate(希望沒拼錯,好久沒弄這個了)時舉的例子很清楚地讓人看到這個東西該怎麼用。
另外推薦Learning Perl,我個人覺得是我看過的最好的關於編程的書,該講么,不該講什麼,按什麼順序講,很好,也許是Perl的精神的感染吧,當初看這本書很有震驚的感覺,原來程序設計語言還可以這么使!爽!
7. 新手如何學習編程
熟悉以下關鍵東西,可以邊學邊做,定期訓練,經常思考,長期積累:
1、語法。
2、基礎理論(數學、數據結構、演算法等)。
3、設計方法(編程原則、設計模式、框架設計等)。
4、庫(核心、基礎、UI、擴展、游戲引擎等)。
5、計算機相關(操作系統、網路、圖形學等)。
6、領域知識(游戲設計、網站設計等)。
7、開發工具(編輯器、IDE、自動部署等)。
8、項目管理(進度管理、分工協作、Bug管理、版本控制等)。
最普遍也是最重要的能力:創造力。努力分析並理解好做什麼以及怎麼做。要知道上面那些東西一開始都是不存在的。
具體方法包括:
1、快速閱讀入門教程和書籍,適合學習語言和基礎庫。比如我學Java讀的《Java編程思想》,練習題做過一點,然後學ActionScript就沒讀過書,只讀過Adobe官方文檔《ActionScript 3.0編程》。
2、閱讀庫的文檔、實例、源碼。比如Flash、Flex開發,熟悉官方API很重要,很多細節要具體使用時才注意到,這時候最好做個筆記,雖然我從沒看過我的筆記。
3、做一個自己感興趣或熟悉的小項目,比如我就以黑白棋游戲作為多個語言的試水項目,一樣的邏輯,便於把關注點放在語言特點上。
4、自己動手豐衣足食。廚師有菜譜,程序員可沒菜譜。比如我做游戲,最關鍵的游戲編程知識全部是動手學出來的,很少有專門針對某個業務領域(如游戲)的編程書籍,要麼是入門書,要麼是模式書(如演算法)、理論書(圖形學),很少有書籍教你如何開發一個45度角地圖系統加編輯器的,全靠自己思考,以及看前人的代碼,需要時找些網路資料。關鍵是,可以培養最重要的創造力。
對於演算法和設計模式,可以研讀下,但是關鍵還是靠平時如何使用了。新手勉強不來的。
項目管理方面的,就得靠工作經驗了,多思考多提意見不要只走流程。
8. 編程怎麼才能讓自己有思路呢
「我感覺自己沒有編程思想,沒有解題思路」
這其實主要是不清楚演算法,也就是邏輯思維需要鍛煉。
可以嘗試去看一些關於演算法的書籍,或者找一些實例書籍(推薦),對照實例學習程序的演算法。如果比較笨一點,第二個方法很有效。看實例的時候要把好的演算法變成自己的,要記住優秀的演算法。C語言(C++)演算法很多,看的實例多了遇到類似的問題就可以借鑒甚至是完全照搬,不會手足無措。
打個比方,比如c++的標准庫里自帶了list,那麼如果你需要一個list你就可以完全使用標准庫里的list而不應該自己去編寫一個,這樣既不用為如何寫list而犯愁,又節省調試的時間。(僅僅是個比方,list相信大家都會寫)
其實我們的成長過程也是一步步汲取別人的經驗。
同時,對自己的邏輯能力的訓練也是一個程序員不要忘記的部分。可以去做一些這方面的練習,上搜索一下應該到處都是。比較經典的有海盜分錢、12球找出異常球等等這些。
邏輯能力就相當於理論指導,實例演算法就相當於實戰經驗。
不斷鍛煉自己的邏輯思維能力、多學習一些實例演算法,相信你也能快速成長。