程式麻瓜一學就上手–你也該懂的20個關鍵字!

看完前面的篇章,你可能會想:讀了那麼多有什麼用?我還是不會寫程式啊!我們想說的是,在這個時代裡,就算你不會寫程式、不是軟體工程師,工作上還是免不了要跟工程師溝通。為了讓彼此溝通更順暢,這些基礎知識,你一定要知道!

1. 演算法
解決問題明確且有限的步驟,好的演算法可以讓運算速度更快。

2. 資料結構
探討如何將資料更有組織地存放到電腦記憶體中,以提升程式執行效率的學問。

3. 程式語言
用來定義電腦程式的形式語言,透過程式語言,可以對電腦發出指令。到目前為止,程式語言已經超過上千種,例如PHP、JavaScript、C語言、C++、Python等。

4. 前端工程
大多處理資料或畫面的呈現。負責這項工作的人為前端工程師,多半需要懂HTML、CSS、Javascript。

5. 後端工程
抓取或處理資料給前端呈現,包括資料庫操作和存取等伺服器上的運算。負責這項工作的人是後端工程師,使用的語言包含PHP、Ruby、Python等。

6. debug
「bug」是軟體執行過程中,因為程式有錯導致不能正常運作、當機、資料遺失等狀況,而debug就是發現和減少程式錯誤的過程。

7. 軟體框架(software framework)
提供並實現最基礎的軟體架構和體系,開發者可依據特定框架,實現複雜的商業運用。常見框架包含PHP的codeigniter、Ruby的Rail等。

8. 物件導向程式設計
程式開發方法之一。強調每一個物件都可以被視為小型機器,提升了程式的靈活性。

9. 編譯器
將人以高階電腦語言如C、C++等寫出的原始碼程式,翻譯成電腦讀得懂、可以執行的低階機器語言程式。

10. 註解
在企業中,程式不會永遠一個人寫,適度、適時出現的註解,可以提高程式碼的可讀性,方便後來接手的人繼續作業。

11. 資料庫
儲存紀錄的地方,使用者可以針對檔案裡的資料執行不同操作,例如新增、擷取、更新、刪除等。

12. 敏捷式開發(Agile Development)
1990年代開始引起關注的新型軟體開發方式,強調以人為核心、循序漸進,可以應對快速變化需求。

13. 機器學習(Machine Learning)
運用統計學、機率論、逼近論等學科,設計出可讓電腦自動學習的方法。靠著從數據分析得出的規律,讓程式對未知數據做出預測。

14. 深度學習(Deep Learning)
機器學習中的一支,近年很受重視。今年3月,Google以深度學習開發的圍棋程式AlphaGo就在比賽中擊敗南韓棋王李世乭。

15. 資料加密
例如Netscape在1994年推出HTTPS支援(安全HTTP連線),透過可驗證信任關係的SSL憑證和端點到端點的加密來保障網站連線安全,避免帳號或密碼等資料外洩。

16. APT
進階持續性滲透攻擊(Advanced Persistent Threat),常見的網路攻擊型態。攻擊者通常是駭客集團,並經過長期且持續性的情報蒐集和監控。

17. 開放原始碼(open source)
指軟體散佈模式,包括自由再散布、必須允許程式以原始碼形式散布、必須允許他人修改原程式並允許散布修改後程式等。

18. Github
2008年上線,目前已經是全球最大的代碼存放網站和開源社群。利用Git進行版本控制、專門用來存放軟體代碼和內容。

19. Stack Overflow
2008年上線的程式設計領域問答網站,用戶可以在網站上提問、回答,累積到一定程度後,還可以針對問題或答案加分、扣分或修改。

20. 社群
軟體工程師互相交流、切磋技術的地方,有些社群是針對特定語言如JavaScript、Python、Ruby,也有些是針對資安、開源等領域。

*更多精彩內容請見《數位時代》8月號
http://www.bnext.com.tw/article/view/id/40349
*尊重智慧財產權,如需轉載請註明資料來源:《數位時代》第267期
http://www.bnext.com.tw/