通常來說,判斷每個人是否都能學會編程,就如同確認一個問題究竟是“黑”或“白”同樣困難(眾所周知,所有的事情都是雙方面的)。但還是有一些規則可以用來判斷一個人的編程水平。
當然,這并不是件簡單的事,好比有些人只會理論知識而不會實踐應用一樣。其實編程更多地是取決于人們后天的刻苦努力而非天生的技能。
再就是“編程”到底是什么。透過一些對編程的定義,幾乎每個人都能編程,而有些定義,又讓人覺得幾乎沒人可以。為了更容易讓你知道什么是編程?我做了一個根據難易程度的升序列表。對于這些列表(從簡到難劃分的等級列表),除了第一條,我認為其他的都屬于編程,我是這樣定義的,編程就是做一些代理執行任務,無論那個代理是一個計算機還是一個人。
下面這個列表僅僅是把所有可能的編程方法示例出來,你很可能會不同意這樣的排序(如果是這樣,我想知道為什么!)
(0) 做一切,甚至是一些手動的重復任務
(1) 指示他人執行一個非常簡單的任務(例如泡咖啡)
(2) 設定鬧鐘
(3) 設置錄像機來記錄顯示一周的工作
(4) 利用鍵盤宏來緩解重復的數據輸入任務
(5) 靜態網站、HTML&基本的CSS
(6) 包含簡單公式的電子表格
(7) 使用梯子圖進行工業控制
(8) 指示他人執行復雜的任務(例如換一下舊汽車上的離合器)
(9) 帶宏或程序的電子表格
(10) 使用數據庫、某種形式接口、嚴格的存儲、檢索的簡單業務
(11) 簡單的智能手機應用程序
(12) 2D游戲編程
(13) 簡單的動態網站,主要是CRUD,一些簡單的業務邏輯,用戶較少
(14) 復雜的智能手機應用程序(比如:服務器端的后端)
(15) 簡單的動態網站、主要是CRUD、復雜的業務邏輯或者大用戶群
(16) 使用圖形工具包進行科學編程(如matlab)
(17) 使用微控制器進行工業控制
(18) 復雜的應用程序軟件
(19) 3D游戲編程
(20) 變化多端的編程語言
(21) 科學編程
(22) 3D游戲引擎
(23) 計算機科學探索、開發新算法
(24) 文件系統
(25) 操作系統
(26) 網絡棧
(27) 編程語言設計
你同意這樣的編程等級劃分嗎?如果不,可否分享一下呢!
更多精彩內容,敬請關注@CSDN研發頻道