⑴ 新手如何學習編程
熟悉以下關鍵東西,可以邊學邊做,定期訓練,經常思考,長期積累:
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度角地圖系統加編輯器的,全靠自己思考,以及看前人的代碼,需要時找些網路資料。關鍵是,可以培養最重要的創造力。
對於演算法和設計模式,可以研讀下,但是關鍵還是靠平時如何使用了。新手勉強不來的。
項目管理方面的,就得靠工作經驗了,多思考多提意見不要只走流程。
⑵ 如何學編程
編程
簡單的說,編程就是為了藉助於計算機來達到某一目的或解決某個問題,而使用某種程序設計語言編寫程序代碼,並最終得到結果的過程。
計算機雖然功能十分強大。可以供你上網、打游戲、管理公司人事關系等等,但是沒有程序,它就等於是一堆廢鐵,不會理會我們對它下達的「命令」。於是,我們要馴服它,只有通過一種方式——程序,這也是我們和計算機溝通的唯一方式。
編程原理
程序也就是指令的集合,它告訴計算機如何執行特殊的任務。打個比方說,它好比指導你烹調菜品的菜譜或指揮行駛一路到達目的地的交警(或者交通路標)。沒有這些特殊的指令,就不能執行預期的任務。計算機也一樣,當你想讓計算機為你做一件事情的時候,計算機本身並不能主動為我們工作,因此我們必須對它下達指令,而它根本不會也不可能聽懂人類自然語言對事情的描述,因此我們必須使用程序來告訴計算機做什麼事情以及如何去做?甚至對最簡單的任務也需要指令,例如如何取得擊鍵,怎樣在屏幕上放一個字母,怎樣在磁碟中保存文件等等。
上面講到的計算機本身不會主動的做任何事情。因此我們要通過程序的方式來讓計算機為我們「效勞」。而這個過程就是我們「編」出來的。編程可以使用某一種程序設計語言來實現,按照這種語言的語法來描述讓計算機要做的事情。
我們這里所講的語法和外語中的語法完全兩碼事,這里講的語法只是讀你的程序書寫做出一寫規定而已。寫出程序後,再由特殊的軟體將你的程序解釋或翻譯成計算機能夠識別的「計算機語言」,然後計算機就可以「聽得懂」你的話了,並會按照你的吩咐去做事了。因此,編程實際上也就是「人給計算機出規則」這么一個過程。
常見的編程語言
* CSS Cascading Style Sheets 層疊樣式表
* .NET 是微軟2002年,為開發應用程序創建的一個富有革命性的新平台
* ActionScript ActionScript是Flash的腳本語言,與JavaScript相似,ActionScript是一種面向對象編程語言。
* APL、A+和J
* Ada Ada是一種表現能力很強的通用程序設計語言
* 匯編語言 匯編語言(Assembly Language)是面向機器的程序設計語言
* AWK AWK是一種優良的文本處理工具
* Basic 是一種設計給初學者使用的程序設計語言
o QBasic QBASIC是BASIC(Beginner's All-purpose Symbolic Instruction Code,初學者通用指令代碼)語言的一個變種,由美國微軟公司開發
o Visual Basic Visual Basic(VB)是一種由微軟公司開發的包含協助開發環境的事件驅動編程語言
* VBScript VBScript是Visual Basic Script的簡稱,即 Visual Basic 腳本語言
* Brainfuck Brainfuck是一種極小化的計算機語言
* C、C++ C語言是一種面向過程的計算機程序設計語言 ; C++是一種靜態數據類型檢查的,支持多重編程範式的通用程序設計語言。它支持過程化程序設計、數據抽象、面向對象程序設計、製作圖標等等泛型程序設計等多種程序設計風格
o Objective-C 通常寫作ObjC和較少用的Objective C或Obj-C,是擴充C的面向對象編程語言
* Clipper Clipper晶元主要用於商業活動的計算機通信網
* COBOL 一種適合於商業及數據處理的類似英語的程序設計語言
* dBase dBASE是第一個在微型計算機上被廣泛使用的資料庫管理系統(DBMS
* PASCAL、Delphi Pascal是一種計算機通用的高級程序設計語言 ;Delphi是全新的可視化編程環境,是一種方便、快捷的Windows應用程序開發工具
* Forth 由Charles H. Moore發展出來在天文台使用的電腦自動控制系統及程序設計語言,允許使用者很容易組合系統已有的簡單指令,定義成為功能較復雜的高階指令。
* Fortran 譯為「公式翻譯器」,它是世界上最早出現的計算機高級程序設計語言,廣泛應用於科學和工程計算領域。
* FoxPro 是由美國Fox Software公司於1988年推出的資料庫產品
* F# F#是由微軟發展的為微軟.NET語言提供運行環境的程序設計語言
* Fava Fava語言是一個小型的解釋語言,它主要面向於系統測試領域及小型嵌入式設備。
* IDL IDL 是一種數據分析和圖像化應用程序及編程語言
* Java Java是由Sun Microsystems公司於1995年5月推出的Java程序設計語言
* JavaScript Javascript是一種由Netscape的LiveScript發展而來的腳本語言
* J# Visual J# 是一種工具,供 Java 語言程序員用於構建在 .NET Framework 上運行的應用程序和服務
* LISP 一種基於λ演算的函數式編程語言。
* Lua Lua 是一個小巧的腳本語言
* LOGO 是一種早期的編程語言,也是一種與自然語言非常接近的編程語言,它通過「繪圖」的方式來學習編程
* Mole 在軟體工程中,指較高一級程序或模塊使用的一個單元或模塊
* Nuva Nuva語言是一種面向對象的動態腳本語言 Nuva語言的設計目的是用於基於模板的代碼生成
* Perl Perl 一般被稱為「實用報表提取語言」(PracticalExtraction andReportLanguage),也做「病態折中垃圾列表器」(PathologicallyEclectic Rubbish Lister
* PHP PHP 是一種 HTML 內嵌式的語言
* PL/I PL/I是Programming Language One的簡寫。當中的「I」其實是羅馬數字的「一」。它是一隻IBM公司在1950年代發明的第三代高級編程語言
* Prolog Prolog(Programming in Logic的縮寫)是一種邏輯編程語言
* Python 是一種面向對象的解釋性的計算機程序設計語言,也是一種功能強大而完善的通用型語言
* R R是用於統計分析、繪圖的語言和操作環境
* Ruby Ruby,一種為簡單快捷面向對象編程(面向對象程序設計)而創的腳本語言
* Scheme Scheme,一種系統設計語言,由LISP語言發展而來,屬於lisp的一種方言。與其他lisp不同的是,scheme是可以編譯成機器碼的。Scheme的一個主要特性是可以像操作數據一樣操作函數調用
* Smalltalk 一種面向對象的程序設計語言 一種程序設計環境 一個應用開發環境(ADE)
* Tcl/Tk 是一種 腳本語言
* Visual FoxPro Visual FoxPro原名FoxBase,是美國Fox Software公司推出的資料庫產品