SlideShare a Scribd company logo
1 of 31
高榮章| 微軟 MVP
關於講師
• 元智大學 資訊管理所 畢
• 微軟MVP
• 緯創軟體 架構師 2012迄今
• 全家便利商店 平台架構師
• 華經資訊 主任
• 新加坡商麥迪實公司 主任
專長
• .NET程式設計
• 多層式系統架構設計
• 物件導向
• 雲端系統設計
• 電信交換機系統設計
專案經驗
• 台哥大 新世代客服系統
• HTC 退換貨管理系統
• 全家便利商店 新POS系統建置
• 署立/市立醫院 醫療系統
內容大綱
• 程式設計對我們有何幫助?
• 認識程式語言發展史
• 讓我們寫一個好程式,以C#為例
程式設計對我們有何幫助?
程式設計是甚麼?
• 程式設計,或說寫程式,是指如何
對電腦下指令以完成某些動作。如
果從來沒寫過程式,可想像在 App
中點擊過某些按鈕,這些 App 正
是由許多程式碼組成,透過程式碼
告訴電腦如何展示介面、要在哪裡
取得數據以及如何回應使用者的點
擊。
現代企業利用資訊來營運
• 便利商店的貨架
– 貨架上的商品是根據歷史紀錄擺放
– 一天最高會換三次貨架位置,訂貨也
分時段訂,比如學校下課時間,會多
準備麵包供學生購買
– 每家店備貨都不盡相同,社區型會備
婆婆媽媽常買的,工業區以早午餐類
為主
– POSE機上有天氣預報,雨天可進
較多的傘,天氣熱則進冰品
國外趨勢
• 新加坡總理李顯龍在Facebook上分享了他自己以C++撰寫的數
獨解題程式,除了要求網友幫他除錯外,還出了個小考題。
• 2015 年 歐巴馬簽署教育法案,將資訊
科學納入通識課程
• 2014 年 歐盟數碼事務專員Neelie Kroes
和教育專員Androulla Vassiliou在7月
25日致函28個成員國的教育部長,
呼籲提高青年的科技教育工作,並建
議各國在中小學課程設立程式語言課。
• 愛沙尼亞、英國、法國、奧地利、丹
麥、波蘭等,均將程式設計納入課綱
台灣現狀
• 由國家教育研究院規劃的107學年
課綱草案,預計等到新政府上路後,
教育部將會重組「課審會」進行審
議。
• 根據既定草案內容,程式設計屬於
科技領域的一部分,國中、高中階
段列為必修課程,在國小階段,則
可依照學校資源條件與學生特性,
進行融入性的教學規劃,也可成立
社團提供學生學習。
未來就業優勢
根據美國CNN Money及PayScale網站一項針對成長幅度與薪資皆令人滿意的「百大
最佳工作」調查,以及104資訊科技線上的各項調查,綜合整理出2015年的12大搶手
職務(不按名次排列),抓住工作趨勢,成為職場上炙手可熱的專業人才絕非難事
未來最搶手的12大職業:
1 軟體架構師
2 資深軟體設計工程師
3 電玩程式設計師
4 使用者經驗設計師
5 產品企畫開發人員
6 文創經紀人
出處: http://topic.cheers.com.tw/issue/2015/master/article/article11.aspx
• 程式是國際語言
– C#, JAVA, C++, Object C .. 到每一國都通用
• 我是非本科系學程式有幫助?
根據Stackoverflow調查
有 41.8% 的程式開發者是自學
Coding 的!而且參與調查的兩
萬多人裡,有近一半的程式開
發者沒有電腦科學領域學位。
出處:
http://www.inside.com.tw/2015/04/14/stackove
rflow-2015-dev-survey
認識程式語言發展史
第一個程式設計師
• 愛達·勒芙蕾絲(Ada Lovelace)
是大家公認的首位電腦程式設
計師,也開創了世上首上程式
語言,她為巴貝奇發明的電腦
分析機撰寫了一個計算白努利
數的程式。
• 從 1843 年至今,程式語言的發
展至今已近 170 年的歷史了,
在美國現今約有 120 萬以上的
相關從業人員,程式也發展出
不同的語言。
1957 至1959 年
• FORTRAN、LISP 與 COBOL 是這時期誕生的程式語言,也是目前仍在使用的老一輩
程式語言,這類的高階程式語言是為科學家、數學家與大型商業電腦所設計的,其
主要的使用族群為大型超級電腦、AI 人工智慧與商業軟體。NASA 美國太空總署、
信用卡與 ATM 自動櫃員機都用過這類的程式語言。
• Cobol 的部分原始程式碼曾出現在電影《魔鬼終結者(Terminator)》中機械終結者
的視覺螢幕中,做為其啟動使用的特效效果。
1972 年 C
• 著名的 C 語言是在這年誕生的,由貝爾實驗室的丹尼斯·里奇(Dennis
Ritchie)所開創出來的,是為了在早期的電腦上執行 UNIX 系統所開創
出來的,並做為通用開發的低階程式語言。C 語言有著眾多分支版本,
且都相當的知名且使用者多,如 C#、Java、Javascript、Perl、PHP 與
Python 等均是。其主要運用在跨平台的應用程式、系統程式、UNIX 程
式與遊戲軟體的開發上,使用相當廣泛,早期 WWW 網際網路伺服器
也是以 C 語言在 1973 年重新撰寫的 UNIX 上運作的。
1983 年 C++
• C++ 早期被稱之為「C with Classes(包含型別的 C 語言)」,同樣由
貝爾實驗室的比雅尼·史特勞斯特魯普(Bjarne Stroustrup)發明,其後
才另命名為 C++,其「+」表示為增強之意,C++ 屬中階程式語言,
加強了 C 語言中的 Classes(型別)、虛擬函式、模版等功能。它也被
廣泛的使用在應用軟體、嵌入式軟體、伺服器軟體與電視遊樂器中的
遊戲開發中,從 Adobe、Google Chrome、Mozilla、Microsoft Internet
Explorer(IE)等,使用的都是 C++。
1983 年 Objective-C
• Objective-C 同樣是洐生至 C 語言的程式語言,由 Stepstone 公司的創辦人布萊德·
考克斯(Brad Cox)與湯姆·勒(Tom Love)共同發明,屬於通用、高階的程式語
言,其並加入了物件導向與 Smalltalk 語言的訊息傳遞風格。Objective-C 最早由蘋
果公司創辦人 Steve Jobs 另創的 NeXT 公司買下授權並做為 NeXTSTP 系統的使用
者界面與開發的環境的基礎。
• 在 NeXT 被蘋果併購後,NeXTSTEP 的架構成為 OS X 與行動裝置上的 iOS 的核心
後,Objective-C 也就成了蘋果公司開發軟體的主要程式語言,iPhone/iPad 於市場
熱銷下,Objective-C 的知名度與使用者也大幅增加。
1995 年 Java
• 與咖啡同名的 Java,其名字也真的來自咖啡,只因昇陽工程師詹姆斯·高斯林
(James Gosling)覺得在開發此一程式語言時需要耗掉大量的咖啡。其實 Java 本
來要命名為 Oak,只不過名稱已被先行註冊,只好更名為 Java。
• Java 一開始是為了互動電視的專案而開發,是一個高階通用型的程式語言,其跨平
台的特性是最大的特色,在網路程式、Web 應用軟體開發、使用者圖形界面開發
等應用都有被採用。為網路而設計的 Java 目前在瀏覽器上的地位式微,不過在
Android 採用了 Java 為系統並做為應用軟體開發平台下,Java 反而成為目前最受歡
迎的開發程式語言。
1995 年 JavaScript
• JavaScript 是屬於高階語言,是由網景 Netscape 的布蘭登·艾克(Brendan Eich)為
了添增網頁功能而設計而發明的,可用在動態網頁中提交、確認表格資料,創造互
動、動畫,或是追踪使用者行為。除了動態網頁的開發外,PDF 文件、瀏覽器與桌
面小工具都可利用 JavaScript 來開發。Gmail、Adobe Photoshop 與 Mozilla Firefox
等產品中都有用到 JavaScript。
• JavaScript 雖然名字中也有 Java 的名稱,但其語法結構與出身其實與 Java 一點關係
都沒有,只是單純的當初想讓他外表的樣子如同 Java 一般,其原始開發時的代號
名稱其實是 Mocha 及 LiveScript。
2000年
• 原Borland公司的首席研發設計師安德斯·海爾斯伯格(Anders Hejlsberg)在微軟開
發了Visual J++ 1.0,很快的Visual J++由1.1版本升級到6.0版。2000年6月26日微軟在
奧蘭多舉行的「職業開發人員技術大會」(PDC 2000)上,發表新的語言C#。
2014年
• 2010年7月,蘋果開發者工具部門總監克里斯·拉特納開始着手 Swift 編程語言的設
計工作,以一年時間,完成基本架構後,他領導了一個設計團隊大力參與其中。
Swift大約歷經4年的開發期,2014年6月發表。
• Swift取消了Objective-C的指標及其他不安全存取的使用,並捨棄Objective C早期套
用Smalltalk之語法,全面改為句點表示法(dot-notation)。
程式發展史
1843 1940 1950 1960 1980 1990 現今
• 愛達.勒芙蕾
絲伯爵夫人被
認為是世界第
一位程式設計
師,她為巴貝
奇發明的電腦
分析機撰寫了
一個計算白努
利數的程式。
• Plankalkül
• ENIAC
• C-10
• Fortran
• LISP
• COBOL
• BASIC
• C
• Pascal
• Ada
• C++
• Perl
• VB
• Python
• JAVA
• Delphi
• Javascript
• PHP
• JSP
• ASP.NET
• C#
• VB.NET
• Object C
• Swift
大型主機 伺服器 網際網路
APP
雲端
PC
.以裝置區分
手機
安卓-JAVA, C#(Xmarine)
蘋果-Oject C,Swift,C#(Xmarine)
微軟-C#
網頁
JAVA
JAVA SCRIPT
C#
VB.NET
PHP
IOT
Python
C++
C#
程式語言使用分佈
讓我們寫一個好程式,以C#為
例
BMI計算器
• BMI公式
BMI=體重(公斤) / 身高2(公尺2)
• 評量
步驟
• 新增專案, 選visual c#/windows 桌面/Windows form 程式
• 新增四個Label, text分別輸入:身高, 體重, BMI, 建議
• 新增兩個txtbox, 命名為 txtWeight,txtHeight
• 新增兩個Label, 命名為 txtBMI,lblSuggestion
• 新增一個Button, text輸入”計算”
LIVE DEMO
初探程式語言設計以C#為例

More Related Content

Similar to 初探程式語言設計以C#為例

DevOps的神鬼奇航
DevOps的神鬼奇航DevOps的神鬼奇航
DevOps的神鬼奇航Edward Kuo
 
Building Chatbot With Huggging Face
 				Building Chatbot With Huggging Face 				Building Chatbot With Huggging Face
Building Chatbot With Huggging FaceKo Ko
 
Appcan介绍自己的应用开发平台
Appcan介绍自己的应用开发平台Appcan介绍自己的应用开发平台
Appcan介绍自己的应用开发平台MOBINODE
 
20170108 微軟大數據整合解決方案- cortana intelligence suite
20170108 微軟大數據整合解決方案- cortana intelligence suite20170108 微軟大數據整合解決方案- cortana intelligence suite
20170108 微軟大數據整合解決方案- cortana intelligence suiteMeng-Ru (Raymond) Tsai
 
行動與雲端科技在圖書館的應用
行動與雲端科技在圖書館的應用行動與雲端科技在圖書館的應用
行動與雲端科技在圖書館的應用皓仁 柯
 
中華民國科技管理個案競賽 Motivate our taiwan
中華民國科技管理個案競賽 Motivate our taiwan中華民國科技管理個案競賽 Motivate our taiwan
中華民國科技管理個案競賽 Motivate our taiwan孟賢 顏
 
Geo science cafe 如何找到一份满意的工作
Geo science cafe 如何找到一份满意的工作Geo science cafe 如何找到一份满意的工作
Geo science cafe 如何找到一份满意的工作kewuc
 
2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设Tianwei Liu
 
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)My own sweet home!
 
Appcan移动应用开发平台介绍120409
Appcan移动应用开发平台介绍120409Appcan移动应用开发平台介绍120409
Appcan移动应用开发平台介绍120409zhengyiwuxian
 
如何使用微軟Power系列服務的看法
如何使用微軟Power系列服務的看法如何使用微軟Power系列服務的看法
如何使用微軟Power系列服務的看法Edward Kuo
 
Appcan平台介绍
Appcan平台介绍Appcan平台介绍
Appcan平台介绍36Kr.com
 
Introduction Hugging face.pdf
Introduction Hugging face.pdfIntroduction Hugging face.pdf
Introduction Hugging face.pdfKo Ko
 
App狂潮來襲!你做好準備了嗎?
App狂潮來襲!你做好準備了嗎?App狂潮來襲!你做好準備了嗎?
App狂潮來襲!你做好準備了嗎?Ryan Chung
 
HTML5 生态系统和应用架构模型
HTML5 生态系统和应用架构模型HTML5 生态系统和应用架构模型
HTML5 生态系统和应用架构模型Tom Fan
 
History of share
History of shareHistory of share
History of shareaido Cho
 
雲端行動商務發展趨勢 V1.2
雲端行動商務發展趨勢 V1.2雲端行動商務發展趨勢 V1.2
雲端行動商務發展趨勢 V1.2yaohung
 
苦集滅道:透過開發客製 Sketch Plug-in 改善產品設計流程
苦集滅道:透過開發客製 Sketch Plug-in  改善產品設計流程苦集滅道:透過開發客製 Sketch Plug-in  改善產品設計流程
苦集滅道:透過開發客製 Sketch Plug-in 改善產品設計流程Weizhong Yang
 

Similar to 初探程式語言設計以C#為例 (20)

DevOps的神鬼奇航
DevOps的神鬼奇航DevOps的神鬼奇航
DevOps的神鬼奇航
 
Building Chatbot With Huggging Face
 				Building Chatbot With Huggging Face 				Building Chatbot With Huggging Face
Building Chatbot With Huggging Face
 
Appcan介绍自己的应用开发平台
Appcan介绍自己的应用开发平台Appcan介绍自己的应用开发平台
Appcan介绍自己的应用开发平台
 
20170108 微軟大數據整合解決方案- cortana intelligence suite
20170108 微軟大數據整合解決方案- cortana intelligence suite20170108 微軟大數據整合解決方案- cortana intelligence suite
20170108 微軟大數據整合解決方案- cortana intelligence suite
 
行動與雲端科技在圖書館的應用
行動與雲端科技在圖書館的應用行動與雲端科技在圖書館的應用
行動與雲端科技在圖書館的應用
 
中華民國科技管理個案競賽 Motivate our taiwan
中華民國科技管理個案競賽 Motivate our taiwan中華民國科技管理個案競賽 Motivate our taiwan
中華民國科技管理個案競賽 Motivate our taiwan
 
Geo science cafe 如何找到一份满意的工作
Geo science cafe 如何找到一份满意的工作Geo science cafe 如何找到一份满意的工作
Geo science cafe 如何找到一份满意的工作
 
2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设
 
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
 
Processing 基礎教學
Processing 基礎教學Processing 基礎教學
Processing 基礎教學
 
Appcan移动应用开发平台介绍120409
Appcan移动应用开发平台介绍120409Appcan移动应用开发平台介绍120409
Appcan移动应用开发平台介绍120409
 
如何使用微軟Power系列服務的看法
如何使用微軟Power系列服務的看法如何使用微軟Power系列服務的看法
如何使用微軟Power系列服務的看法
 
Appcan平台介绍
Appcan平台介绍Appcan平台介绍
Appcan平台介绍
 
Introduction Hugging face.pdf
Introduction Hugging face.pdfIntroduction Hugging face.pdf
Introduction Hugging face.pdf
 
App狂潮來襲!你做好準備了嗎?
App狂潮來襲!你做好準備了嗎?App狂潮來襲!你做好準備了嗎?
App狂潮來襲!你做好準備了嗎?
 
HTML5 生态系统和应用架构模型
HTML5 生态系统和应用架构模型HTML5 生态系统和应用架构模型
HTML5 生态系统和应用架构模型
 
History of share
History of shareHistory of share
History of share
 
Android工作坊
Android工作坊Android工作坊
Android工作坊
 
雲端行動商務發展趨勢 V1.2
雲端行動商務發展趨勢 V1.2雲端行動商務發展趨勢 V1.2
雲端行動商務發展趨勢 V1.2
 
苦集滅道:透過開發客製 Sketch Plug-in 改善產品設計流程
苦集滅道:透過開發客製 Sketch Plug-in  改善產品設計流程苦集滅道:透過開發客製 Sketch Plug-in  改善產品設計流程
苦集滅道:透過開發客製 Sketch Plug-in 改善產品設計流程
 

初探程式語言設計以C#為例

Editor's Notes

  1. 1
  2. Note the "LOG" statement at the bottom, that is a developer-created message from within the web application (more on those later). Unfortunately, if the JS code is minified, clicking on the blue text won't help much (and IE11 does not support sourcemaps).
  3. Note the "LOG" statement at the bottom, that is a developer-created message from within the web application (more on those later). Unfortunately, if the JS code is minified, clicking on the blue text won't help much (and IE11 does not support sourcemaps).
  4. Note that since "window" is the default context, generally you can simply use: `console.log(...)` without `window.` in front
  5. Note that since "window" is the default context, generally you can simply use: `console.log(...)` without `window.` in front
  6. Note that if the method does not "return" anything you will see "undefined" in the output