碼農 駭客 程式設計師 開發者和電腦科學家的區別

csdn發表於2014-01-14

  在日常生活中,常常會聽到:“我想學程式設計”,看似簡單的一句話,仔細分析,其中的奧妙可不少。你想學什麼樣的程式設計,是一個簡單的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時,瀏覽器到底做了些什麼,原理是什麼?如果你想成為一名木匠,你就想了解樹是如何長成,如何挑選好的木材;如果你想成為一名賽車手,你就想知道引擎的工作原理;亦或者是,如果你想成為一名管道工,你就必須知道水源。

  你弄清“我想學習編碼”的真正含義了嗎?

  問題的根本所在是你到底想從事哪方面的程式碼編寫?網站開發、網站設計、還是編寫移動應用程式、還是想編寫一個小工具、這些都是完全不同的終點,並且它們都會有很好的入門教程,如果你想深入進去。

  • 對Web開發感興趣?

  任何相關“Learn to Code”的網站都非常不錯

  • 對硬體感興趣?

  可以考慮Raspberry PiArduino

  • 對你每天所使用的程式碼/歷史程式碼很感興趣?

  可以去閱讀Charles Petzold的“Code”

  • 已經通曉一定的技術但想走的更遠?

  訂閱http://learncodethehardway.org

  • 想成為一名很好的多面開發者?

  閱讀Mike Gunderloy的“Coder to Developer”

  寫在最後

  對於想學程式設計的人,他們完全可以從Web程式設計開始,學一點JavaScript然後開始編寫Web應用程式。但如果你的興趣愈加濃厚,你也可以鑽研一些不同的程式設計領域,給自己增加更多鍛鍊的機會和發展空間。

  來自: hanselman.com

相關文章