如何自學程式設計第一部分
文章推薦指數: 80 %
調整心態. 想要學習程式設計(programming) ,不外有兩種途徑. 學校課程、補習班、家教;; 自己找書、上網查資料、跟人討論。
第一種方式的優點是有老師教,自己有問題 ...
如何自學程式設計第一部分
調整心態
想要學習程式設計(programming),不外有兩種途徑
學校課程、補習班、家教;
自己找書、上網查資料、跟人討論。
第一種方式的優點是有老師教,自己有問題也能直接問老師,真的對程式設計很有興趣也較能直接打破沙鍋問到底,老師可能丟資料或功課讓自己有個方向繼續深入研究,缺點可能是老師只教老師懂的東西。
第二種方式的優點是完全自己學習,想要學什麼或知道什麼都自己弄清楚,無限延伸,缺點不外是自己得要有持續下去的動力。
總歸兩類學習方式,學習者都要有強烈的好奇心,其次
動手實作
無論書上怎麼寫,網頁展示什麼樣的範例,又或著網路上的教學影音怎麼說,只有在自己動手實作,也就是打開電腦,把例子輸入電腦,實際執行之後,也就是要自己親身體驗才會對相關內容有所感覺,不然那些解釋或程式碼始終會跟自己保持距離。
這個距離就是都嘛看得懂,問題是實際著手開發卻毫無頭緒,或是大概知道要怎麼做,真的要做了又做不出來做不好。
因此一開始由第一種方式入門程式設計會比較得心應手,這樣就出現了第二個問題,就是程式設計這一領域進步跟改變的速度太快,不要說幾年,可能幾個月內就有太多新的東西需要學習,最後都會導向第二種學習方式,也就是自己找書、上網查資料、跟人討論等等。
總而言之,想要吃程式設計這行飯,最關鍵的技能反而不是程式設計本身,而是對自學抱持的心態,永遠有新的東西要學,而且得要保持熱忱。
所以記在心裡一個重點,不要以為看一看資料,然後想一想就可以弄懂,雖然電腦科學背後的原理很簡單,可是晶片設計越來越複雜,只用簡單的模式處理反而很累贅,於是歷來很多電腦科學家用不同的轉換方式來進行電腦工作,這就是下一個話題---------抽象化。
抽象化
電腦也稱為計算機,廣義而言就是計算裝置,現在的電腦就是數位化的計算裝置,至於講到數位化是依電壓的高低來記錄數字0跟1,電壓趨近於0之時就是數字0,而電壓趨近於預設電壓之時為數字1。
那要怎麼進行計算工作呢?就是在晶片的電路設計工作了,像是邏輯閘(logicgate)、加法器(adder)、乘法器(multiplier)等等。
如果要直接控制這些邏輯閘、加法器、乘法器等需要使用機器語言(machinelanguage),寫出來的程式碼叫做機器碼(machinecode),像是
00100001010010100000000000000001
上面是32位元的機器碼,倒是開發大型軟體動輒數百萬行的程式碼,如果換成機器碼可能上億行,試想開發或維護都得看數億個0跟1,這是件非常辛苦的事,而且辛苦到難以讓軟體、遊戲、動畫等產業蓬勃發展說。
因為只有0跟1太過於艱澀難以理解,所以很快地就有電腦科學家發明組合語言(assemblylanguage)取代,例如以上的機器碼轉換成組合語言如下
addi$t2,$t2,1
共分成四個部分,所以該機器碼也可分成四個部分來看,這裡不細究組合語言與機器語言之間的聯繫,倒是已經可以看出相對機器語言的具體,組合語言已經跨出抽象化的小小一步,也就是讓機器碼變成我們直接看得懂的指令。
機器語言跟組合語言因為直接跟機器相關,因此歸類為低階語言,進一步抽象化就是用高階語言來寫程式,像上面的程式可能會是以下C程式碼的一部分
i++;
i是變數,++是運算子,這個運算子讓變數i遞增1,也就是i加上1,最後的分號;則是程式碼一行的結束符號。
只是寫C程式可能還需要規劃記憶體使用,使用變數i得先宣告(declare)型態(type),好讓編譯器(compiler)預留記憶體空間,更複雜的程式像是資料結構(datastructure)之類,需要妥善的進行記憶體管理,這還是很麻煩,所以後來的程式語言如Python、Ruby等都不讓程式設計師操心,像以下Python的程式碼
i+=1
同樣是變數i遞增1,不過Python不支援++運算子,然後使用變數前也不須先宣告,簡單說,Python的記憶體管理就交給直譯器(interpreter)處理,程式設計師不太需要關心這些細節,除非真的有效能考量的需求。
事實上現在所有高階語言寫的程式想要在數位機器上執行,都必須翻譯成該平台機器語言的機器碼才可執行,像C使用編譯器(compiler)先行編譯程式碼,Python使用直譯器(interpreter)在執行時同步翻譯程式碼。
這是進一步的抽象化,更進一步的抽象化是讓程式設計師可以依自己的需求定義需要的型態,新的型態加上其他程式碼組合成程式庫(library),這讓其他程式設計師可以直接運用裡頭的程式,無需重頭自己開發。
什麼是程式設計?
什麼是程式設計?
我們先回到這個最根本的問題,要回答這個問題,就得從什麼是程式(program)談起。
簡單講,程式的基本功能就是執行一些指令,並有如下圖的輸入(input)及輸出(output)
凡是程式一定有輸入跟輸出,輸入可能只是使用者打了啟動程式的指令,作業系統給該程式起動的訊號,然後程式執行結束再回傳作業系統結束的訊號,啟動訊號跟結束訊號就是最基本的輸入跟輸出。
像是作業系統好比一個龐大的程式,按下電腦的電源開關開機,就是傳遞啟動訊號給作業系統,執行關機程式也就是傳遞給作業系統結束的訊號。
講到作業系統有點太複雜,先以下圖的簡單程式說明輸入輸出的概念,此程式計算十個數字的平均值,因此輸入為十個數字,輸出則是一個數字
也可以改成十個任意數字,像是提供輸入介面要求使用者輸入十個數字,再由程式計算出平均值後,顯示給使用者看,如下圖
有沒有發現所謂的「程式」跟數學函數的觀念很接近,兩者都可輸入數個數字,然後輸出一個數字。
是的,程式最早就是為了計算,因此很多觀念跟用詞都直接從數學轉移過來,不過換作程式進行工作,因需求而能有不同的彈性。
知道程式設計是什麼了嗎?
早期的電腦不外是單純的算術,時至今日,大量的資料都被數位化,無論是數據、文字、圖像、聲音、影片等等,所有處理這些數位化資料全都是透過計算。
現在更是進一步把各種計算付諸各種應用,例如相機的人臉對焦,這是利用感光元件感測到的圖像資訊進行資料比對,只要該區域的圖像比對出跟人臉一樣,或相似達到一定的百分比,就會判斷那時不是人臉,再來對焦元件就跟著該人臉對焦。
實際上人臉對焦需要頗複雜的演算法(algorithm),演算法也就是固定一套的計算模式,換言之就是程式,兩者在絕大多數場合的意義並沒有差很多,我們先需要瞭解兩個詞彙大致同義即可。
該從哪一種程式語言著手?
依據TIOBE網站在2016年3月1的調查,最熱門程式語言的前兩名為
Java
跟
C
兩者就佔了三分之一強,其他依次為
C++,C#,Python,PHP,VisualBasic.NET,JavaScript,Perl,Ruby....
以上看到的程式語言都是通用型語言,也就是這些程式語言可以做任何想做的工作,當然前提是電腦能完成的。
那要挑選哪一種語言入門呢?
這是個最簡單的問題,但也可能是最難回答的問題。
如果是跟著老師學,就照著老師的吩咐去學即可,也就是說,老師教C就學C,老師教C++或PHP或Perl就跟著老師學,不管這語言的適用性如何,像是要拿C開發手機App很不容易好了,老師教C就先學C囉,因為這些通用型程式語言背後基本的道理都一樣,先要學會基本的道路,接下來才會觸類旁通,才能很快地學會其他種程式語言。
話說直接拿C開發手機App是個艱鉅的任務,雖說不是不能,相較沒有Java、Objective-C或Swift容易跟簡單,還有就是Objective-C是C的擴充,C程式可以直接放到Objective-C的環境中執行,但反之不可,所以進入Objective-C後,切記兩者不是一樣的。
換用方言的角度來看,C++、C#、Java、JavaScript、Objective-C、PHP、Swift都可看作是C的方言,因為這些語言的基本選擇、迴圈的語法都很類似,或是說幾乎完全一樣,可是方言就是已經有所不同才叫方言,像是英國、美國、澳洲、印度、加拿大、菲律賓、新加坡等等儘管都用英語當官方語言,可是英國人碰上美國人幾乎從腔調就能分辨從哪裡來,何況美國東岸、西岸已有不少不同了。
講到此點是因為很多人仍然喜歡把C/C++或C/Objective-C混在一起講,但C/C++其實是指C++,C/Objective-C指的是Objective-C,C程式若加上C++或Objective-C語法的程式,往往無法通過C編譯器的編譯。
在附錄-自學如何選擇程式語言:比較十種語言的Hello程式內,以常見的Hello程式討論入門十種程式語言的難易度。
如果是完全自學,就看手邊容易取得哪一種程式語言的資源了,像是用Mac電腦,可以下載免費的Xcode,用Xcode的環境可以學習Swift,用Linux電腦,預設安裝Python或Perl或Ruby的直譯器,就能直接執行這幾種已安裝直譯器的程式,而用MS-Windows電腦的話,也能找Visual系列的免費版,藉此學C#或Basic等等。
或是特別想先學哪一方面的應用,就挑選想學的那一方面的先學,像PHP多是做網站伺服器,JavaScript做網頁應用,Java做AndroidApp,C寫作業系統或硬體控制等等,自學的好處就是想學什麼就學什麼,就自己決定囉!以下開始談些程式語言所具有的共通元素,首先,最引人注目的就是關鍵字(keyword)了。
關鍵字
關鍵字是程式語言中語法相關的保留字(reservedword),意思就是關鍵字都有特定用途,因此關鍵字不能拿來當變數(variable)名稱或識別字(identifier)來用。
通常入門程式語言,也都是由基礎的關鍵字開始。
關鍵字分成以下六大類
常數
型態
定義
運算子
修飾詞
陳述
當然每一種程式語言細分大都不只這六大類,只是說幾乎每一種程式語言都有這六大類,所以就分這六大類來介紹關鍵字,其中定義、運算子(operator)跟陳述(statement)在下文介紹,這裡把常數、型態、修飾詞(modifier)各舉一個關鍵字當例子,然後介紹在VisualBasic、C、C++、C#、Java、JavaScript、Python、Swift適用的情況。
首先,常數舉以下的關鍵字true當例子
true
true屬於布林值(Booleanvalue),同英文意思,就是邏輯上的「真」,因此程式裡面只要出現true就代表「真」,也可用條件成立來解釋,相對「真」是「假」,採用的關鍵字為false,也就是條件不成立的意思。
VisualBasic、C++、C#、Python、Swift都把true當關鍵字,須留意在VisualBasic跟Python是首字母大寫的True,而Java、JavaScript把true當字面常數(literal)。
所謂字面常數就是直接寫出來的數值,像是12、3.56等數字,或是'c'之類的字元(character)、"abc"之類的字串(string)。
型態舉以下的關鍵字int當例子
int
int是integer的縮寫,就是整數的意思,表示這個型態是整數。
VisualBasic、C、C++、C#、Java等程式語言在使用變數前都需要先宣告(declare)變數所屬的型態,所謂宣告就是在程式中明確標示該變數的型態,像是
inti;
注意int跟變數i中間要空一格,結尾以分號結束。
至於VisualBasic的語法比較不同,它是
DimiAsInteger
Dim為dimension的縮寫,意思就是指定變數i的尺寸。
而JavaScript跟Swift則是用關鍵字var宣告,例如
vari;
var為variable的縮寫,意思同英文字面,其後指派什麼數值,該變數i就屬於所指派數值的型態。
最後Python更簡單,完全不用宣告,要用變數就直接設定就好,例如
i=0
同時Python也取消了變數的型態專屬的限制,給程式設計師更大的彈性空間。
有沒有發現以上受歡迎的程式語言,很多基礎的方面都很相似,只是寫法或是關鍵字不太一樣。
是的,以上除了C之外都是物件導向程式語言(object-orientedprogramminglanguage),而多數都是衍生自C的設計方式。
雖有其他採用不同概念設計的程式語言,但為數不多,接下來我們繼續討論的也都是這些語言的相似點。
修飾詞舉以下的關鍵字public當例子
public
public的中文是公開的意思,這主要是用來修飾物件權限的關鍵字,因為物件導向程式設計是以設計物件為主,需要詳細規範各個物件之間的關聯,也就是現在設計的物件能否被其他物件再利用,用術語來講就是繼承(inheritance)機制。
除了不是物件導向語言的C跟物件導向語言的Python外,其他都有關鍵字public,而Python沒有這個關鍵字的原因也很簡單,因為Python預設所有物件都是public的,所以相對要設定private,就採用了特殊的標記方式。
接下來繼續討論運算子的部分,除了有些關鍵字被當作運算子外,鍵盤上眾多的符號也都拿來當成運算子用。
運算子
最常見的運算子就是四則運算用的加、減、乘、除了,這些都直接採用鍵盤上的符號,例如加為
+
減為
-
乘比較特別,用的是星號
*
除也比較特別,用的是斜線
/
這四個運算子在以上八種程式語言中都相同。
也有程式語言如Basic、C++、Python直接拿關鍵字當運算子,例如布林運算中的「且」
and
換作符號則是
&&
這在C、C#、Java、JavaScript、Swift中都適用。
有些特殊用途的運算子難以用特定符號或符號組合,就直接用關鍵字來標記了,例如C有
sizeof
sizeof用來計算變數所佔的記憶體空間,其他C++、C#都沿用了這個運算子。
而Java、JavaScript因為需求也有
instanceof
instanceof用來判斷特定物件(object)是否是某個類別(class)的子類別(subclass)。
其他還有很多,這裡就不討論了,接下來繼續討論陳述,挑兩種以上八個程式語言都具有的陳述來討論,首先是選擇。
選擇
所謂的選擇(selection)就是讓程式依條件(condition)而有不同的執行選項。
我們直接以實例來說,上述八種程式語言都有以下關鍵字if
if
跟else
else
以C程式為例,簡單的例子如下
intcondition=1;
if(condition){
printf("Theconditionistrue.\n");
}
else{
printf("Theconditionisfalse.\n");
}
if後面小括弧中的變數condition就是條件,條件基本上是一個運算式(expression),if會依運算式回傳的值進行判斷,C的if陳述只會判斷條件為0或非0的數字,0就是邏輯上的假,所有非0的數字都是真。
上面的例子由於condition等於1,屬於非0的數字,因此條件為真,所以程式會執行if底下大括弧圍起來的程式碼,大括弧的範圍稱為程式區塊(block)。
反而條件為假的話,會執行else底下大括弧圍起來的程式區塊,else也是關鍵字之一,會跟if連用,代表一個程式執行分流。
如果有多個條件,C可以把else跟if放在同一行,例如
elseif(condition){
加入上面完整的if-else複合陳述,改寫成另一個例子如下
inti=5;
if(i>10){
printf("Thefirstconditionistrue.\n");
}
elseif(i<10){
printf("Thesecondconditionistrue.\n");
}
else{
printf("Allaboveisfalse.\n");
}
VisualBasic中需要額外加上Then,而elseif須連寫成ElseIf,例如
ElseIf(condition)Then
Python的elseif變成elif,條件後須加冒號,例如
elifcondition:
Python只有if-elif-else一種選擇結構,VisualBasic還有多重選擇的Select-Case,其他則有switch-case,至於細節請看實際學習哪一種語言再深入研究囉!下面繼續討論另一種常見的陳述,也就是迴圈(loop)。
迴圈
所謂的迴圈(loop)是指重複執行固定的程式區塊,這八種程式語言都有關鍵字while構成的while迴圈
while
以C程式為例,簡單的例子如下
inti=0;
while(i<5){
printf("Hello!\n");
i++;
}
此程式會印出5行Hello!,直到控制變數i遞增到5為止,屆時條件不成立,便會結束執行迴圈。
迴圈是程式設計中很重要的概念之一,因為很多地方需要迴圈,就像打開電腦後所看到的畫面,就是好幾個不斷重複執行的迴圈維持顯示在螢幕上的。
除了while迴圈外,以上八種程式語言還有for迴圈,至於for迴圈的用法不盡相同,也就留待學哪一種程式語言再深入研究囉!下面繼續討論定義方面的關鍵字,如何模組化(modularity)提供程式的重複利用。
模組化
一般而言,軟體開發用到模組(module)一詞,通常是指軟體架構中具有完整功能的元件,此元件通常是指已編入程式庫的程式檔案,至於每一種程式語言開發程式庫(library)的方式都不太一樣。
這裡,我把模組化一詞的意義縮小,僅指可重複利用的程式碼。
C的執行單位為函數(function),也就是說C程式是一個函數接著另一個函數來執行,程式執行的起點為main()函數,如下例
intmain(void){
task1();
task2();
task3();
return0;
}
程式設計用函數的英文原文跟數學用的函數英文原文相同,兩者都是function,某些作者或講師為了表彰程式設計的函數與數學的函數是不一樣的意思,所以把程式設計的function稱作「函式」,這跟沒什麼對跟錯,就不同人的習慣用詞而已。
假若執行以上的C程式,作業系統先呼叫函數main(),接著呼叫task1(),task1()執行結束後再呼叫task2(),同樣的,task2()執行結束後呼叫task3(),等到task3()執行結束,main()的最後一行用關鍵字return回傳整數0給作業系統。
由上可知task1()、task2()、task3()三個函數都可重複利用,並可依次呼叫安排執行順序。
C亦可定義陣列(array)、結構(structure)、聯合(union)等衍生資料型態,這些資料型態的定義放在函數定義以外,能被各個函數重複利用。
以下為結構定義的例子
structdemo{
inti;
intj;
};
定義結構使用關鍵字struct,結構可包含多個型態的數值,此例的demo只定義兩個int型態的整數。
如果結構中有定義指標(pointer)的話,就可讓指標指向相同識別字名稱的結構,使此結構能一個接一個,變成一種可資利用的資料結構(datastructure)。
如何定義各種資料結構是進階課程了,話說很多程式語言都有已經定義好的資料結構,讓程式設計師可以直接利用,像是Python有串列(list)
a=[1,2,3,'4',5.0]
串列的字面常數(literal)為中括弧,所有在中括弧以逗號間隔的數值都是串列的元素(element),取出或重新設定元素也是用中括弧,例如以下將a的第2個元素重新設定為123
a[1]=123
之所以為第2個元素,這是因為串列的索引(index)是從0開始的。
像串列這樣的資料型態是用關鍵字class來定義的,以中文來說就是類別(class),類別也是定義物件的藍圖,除了可定義內含的屬性(attribute)外,也可定義像是函數的方法(method)。
簡單的Python類別例子如下
classDemo:
a="9527"
defdo_something(self):
print("Hello,"+self.a+"!")
此例定義了Demo型態的類別,其具有屬性a及方法do_something(),使用例子如下
a=Demo()
a.do_something()
結果就是印出Hello,9527!囉!
屬性一詞在不同程式語言用了不同的英文詞彙,C++稱之為datamember,JavaScript、Python用attribute,C#、Swift用property,Java用field,其實這也是各自開發團隊的習慣用詞不同而已。
除了類別外,每一種語言或多或少還可訂一些額外的內容,不過這些包括類別是模組化的進一步,再進一步就是怎麼組織程式檔案為程式庫(library)了。
銜接到程式庫
無論藉由哪一種程式語言學習程式設計,熟悉基本的語法後,接下來就是學習利用程式庫裡已經定義好的內容了,像是在C用到printf()函數,這在標準程式庫(standardlibrary)中的stdio.h中,使用前要先用前置處理器指令#include引入,例如
#include
學習使用程式庫是一項基礎課程,至於學習開發程式庫則是較進階的課程,就像是學習使用工具跟學習製造工具的不同,不管怎麼樣,想要製造工具或對既有工具進行改善,得先熟練已有的工具,
其實絕大多數的功能都可在標準程式庫中找到,或是有其他的第三方程式庫,因此無論想開發什麼,不妨先從程式庫找找有沒有相對應的功能。
不同程式語言定義程式庫的方式不太一樣,以Java為例,Java用關鍵字package定義套件,編譯後每個套件的位元組碼(bytecode)都在特定的資料夾(路徑)中,例如下面定義了classdemo套件
packageclassdemo;
假設classdemo中定義了ClassDemo類別,要在其他類別檔案中重複利用ClassDemo類別,就要利用關鍵字import引入
importclassdemo.ClassDemo;
以上提到的程式語言各層面都淺嚐即止,真實開發情況可能會很複雜,最後再來談談開發囉!
開發二三事
大致上開發分成兩大類,人力銀行中找到程式設計的相關職缺大致上也分成這兩類
開發核心部分;
開發應用程式。
以遊戲為例,核心部分好比遊戲引擎,其中又包含了很多部分,像是
視覺效果引擎(renderingengine);
音效引擎(audioengine);
物理引擎(physicsengine);
人工智慧(artificialintelligence)。
裡頭又涵蓋非常多部分,基本上開發遊戲引擎就是開發一個大型程式庫,之後這個程式庫是給遊戲開發者用的。
至於應用程式部分好比遊戲的主程式,也就是遊戲的進行方式,除了美工之外,著重在玩家介面、畫面控制、遊戲進程等等,簡單講,這部分是跟使用者直接相關的,開發應用軟體或手機App也都屬於這個部分。
開發核心或應用程式,兩者有什麼不同呢?最大的差別是從事開發核心部分必須對所用的程式語言非常精熟,像是用C++的話,對C++的各個細節都得非常熟悉,因為目的是開發C++的程式庫,就必須完全用C++的思考方式工作。
反倒開發應用程式部分,所關注的焦點在使用者上頭,因此熟悉使用者介面及應用程式介面(applicationprogramminginterface)變成首要之務,例如開發Android手機遊戲,核心部分交給遊戲引擎,開發者著重在遊戲本身的內容,所以得掌握AndroidAPI或遊戲引擎所提供API的各個細節,思考方式不外就更接近API,而非特定程式語言本身了。
就像很多人說Qt雖然是C++的第三方程式庫(thirdpartylibrary),卻跟C++很不一樣,無論如何,倒是Qt還不錯用就是了。
結語
每一種語言都有很多細節需要學習,每一細節可能都有一些範例跟練習,跟著範例與練習都能寫些小程式,或是自己也能稍作修改,改成自己想要的執行結果,無論如何,會需要花不少時間跟直譯器或編譯器打交道,只要執行不如預期,程式中就有錯誤(bug),修正這些錯誤是學習程式設計重要的經驗之一。
進一步來說,每個練習最好都當成可發展的專案,也就具有完整功能的小型軟體,可自己完成或是跟同在學習程式設計的同學或同好一起完成,學習團隊合作也是程式中重要的一環喔,而之後除錯(debug)也是發展專案中的重要環節,總之,專案中的每個部分都得分開測試無誤,最後再把每個部分組裝起來變成功能完整的軟體,再進行測試,確定一切都能順利運行後就發佈囉!
討論到這裡告了一段落,總之想要自學程式語言到從事程式設計的工作只有
不斷練習
程式設計本身就是一項知識技藝,想要成就這項技藝,學習基本知識後,就只有不斷的練習,讓大腦跟雙手打程式碼時能完全同步,面對任何問題或困難才能處變不驚,深入了解問題或困難,冷靜思考應對解決的對策唷!
下一頁如何自學程式設計第二部分
回關於自學首頁
回程式語言教材首頁
中英文術語對照
布林值Booleanvalue
加法器adder
演算法algorithm
應用程式介面applicationprogramminginterface
陣列array
人工智慧artificialintelligence
組合語言assemblylanguage
屬性attribute
音效引擎audioengine
程式區塊block
位元組碼bytecode
字元character
類別class
編譯器compiler
條件condition
資料結構datastructure
除錯debug
宣告declare
元素element
運算式expression
函數function
識別字identifier
繼承inheritance
輸入input
直譯器interpreter
關鍵字keyword
程式庫library
串列list
字面常數literal
邏輯閘logicgate
迴圈loop
機器碼machinecode
機器語言machinelanguage
修飾詞modifier
模組化modularity
模組module
乘法器multiplier
物件object
物件導向程式語言object-orientedprogramminglanguage
運算子operator
輸出output
物理引擎physicsengine
指標pointer
程式program
程式設計programming
方法method
視覺效果引擎renderingengine
保留字reservedword
選擇selection
標準程式庫standardlibrary
陳述statement
字串string
結構structure
子類別subclass
第三方程式庫thirdpartylibrary
型態type
聯合union
變數variable
延伸文章資訊
- 1什麼是程式設計(Programming)?認識程式與程式語言 - ALPHA ...
程式設計(programming)又稱程式編碼(coding),透過建立指令來讓電腦執行工作。指令的建立必須按照特定程式語言的詞彙和語法編寫。
- 2如何自學程式設計第一部分
調整心態. 想要學習程式設計(programming) ,不外有兩種途徑. 學校課程、補習班、家教;; 自己找書、上網查資料、跟人討論。 第一種方式的優點是有老師教,自己有問題 ...
- 3程式設計- 維基百科,自由的百科全書
- 4程式設計/APP開發 - 博客來
達人必學Android 程式設計App Inventor 2 零起點速學指南- 最新版(第三版) - 附MOSME行動學習一點通:診斷.影音.加值. 作者:呂聰賢. 79折優惠價$356 ...
- 5C/C++基礎程式設計班 - 台灣大學資訊系統訓練班
台灣大學資訊系統訓練班以教學口碑著稱,講師群發揮質樸簡單的資工人特色,誠懇專業的教學,提供各項知名程式設計主題包含C, C++, Python, 及網頁設計前後端開發應用等 ...