在日常生活中,常常會聽到:“我想學編程”,看似簡單的一句話,仔細分析,其中的奧妙可不少。你想學什么樣的編程,是一個簡單的Hello World,還是開發移動應用呢?本文作者Scott Hanselman把這個問題比喻成選家具,是去宜家還是從種樹開始呢?并且與大家探討了碼農、黑客、程序員、開發者和計算機科學家之間的區別?下面是筆者對原文的翻譯。
最近有朋友向我提問:說他想學如何編寫代碼,但不知道該如何下手以及該從哪里起步?
學習如何編碼――是去宜家還是從種樹開始?
好比想當木工,你可以選擇從種樹開始,然后砍樹、打磨,最終制作家具。或者,你也可以直接去宜家,也可以介于這兩者之間。
直接修改WordPress主題就好比是去宜家,自己動手編寫一個Web框架就好比種樹,通常都是因為沒有自己喜歡或者現成的“樹”。無論是自己“種樹”還是直接選擇現成的,你都必須決定自己想要的家具。
好吧,該從哪里開始?
每當我聽到有人想學編程時,我都非常高興,下面這些網站都是非常不錯的學習資源:
碼農、黑客、程序員、開發者和計算機科學家的區別?
你可以認為這些詞的意思都一樣。也許你還聽過Geek、nerd和dweeb,但知道他們的不同還是非常重要的。了解這些不同你就可以清楚地知道你到底所屬哪一個層次:
如果你已經接近其中的一個層次,你可以想想今后應該朝哪個方向邁進。
假設是Web編程?
在幾年前,如果有人告訴你想學編程,你可能會編寫個Hello World程序,或者安裝下Visual Basic,拖一個Button控件,然后用消息框彈出個Hello
World。
這或許就是大家在入門時遇到的第一個程序,作為JavaScript和Web Service入門,我認為這是很好的開端。但關鍵是,并不是所有的應用程序都是Web應用程序。應用程序會使用來自服務端的數據、發送通知、文本、Email和Tweets等信息,甚至是一個非常小的應用程序,它也有可能從Web服務器上調用一些數據。每個應用程序都會實現相應的功能,并且應用在相應的地方。所以你要搞清楚,你所說的編程是指Web編程還是其它編程。
現在,如果你想成為一名程序員,或者更加精準地說,你想成為一名高效的Web程序員,那么你就想弄清楚,當用戶在網頁里輸入twitter.com時,瀏覽器到底做了些什么,原理是什么?如果你想成為一名木匠,你就想了解樹是如何長成,如何挑選好的木材;如果你想成為一名賽車手,你就想知道引擎的工作原理;亦或者是,如果你想成為一名管道工,你就必須知道水源。
你弄清“我想學習編碼”的真正含義了嗎?
問題的根本所在是你到底想從事哪方面的代碼編寫?網站開發、網站設計、還是編寫移動應用程序、還是想編寫一個小工具、這些都是完全不同的終點,并且它們都會有很好的入門教程,如果你想深入進去。
任何相關“Learn to Code”的網站都非常不錯
可以考慮Raspberry Pi或Arduino
可以去閱讀Charles Petzold的“Code”
訂閱http://learncodethehardway.org
閱讀Mike Gunderloy的“Coder to Developer”
寫在最后
對于想學編程的人,他們完全可以從Web編程開始,學一點JavaScript然后開始編寫Web應用程序。但如果你的興趣愈加濃厚,你也可以鉆研一些不同的編程領域,給自己增加更多鍛煉的機會和發展空間。
來自: hanselman.com