碼農 駭客 程式設計師 開發者和電腦科學家的區別
在日常生活中,常常會聽到:“我想學程式設計”,看似簡單的一句話,仔細分析,其中的奧妙可不少。你想學什麼樣的程式設計,是一個簡單的Hello World,還是開發移動應用呢?本文作者Scott Hanselman把這個問題比喻成選傢俱,是去宜家還是從種樹開始呢?並且與大家探討了碼農、黑客、程式設計師、開發者和電腦科學家之間的區別?下面是筆者對原文的翻譯。
最近有朋友向我提問:說他想學如何編寫程式碼,但不知道該如何下手以及該從哪裡起步?
學習如何編碼——是去宜家還是從種樹開始?
好比想當木工,你可以選擇從種樹開始,然後砍樹、打磨,最終制作傢俱。或者,你也可以直接去宜家,也可以介於這兩者之間。
直接修改WordPress主題就好比是去宜家,自己動手編寫一個Web框架就好比種樹,通常都是因為沒有自己喜歡或者現成的“樹”。無論是自己“種樹”還是直接選擇現成的,你都必須決定自己想要的傢俱。
好吧,該從哪裡開始?
每當我聽到有人想學程式設計時,我都非常高興,下面這些網站都是非常不錯的學習資源:
- Codecademy.com
- KhanAcademy.org/cs
- Code.org
- learncodethehardway.org
- Udacity
- CodeSchool
- Harvard's CS50x at edX
- CoderByte
碼農、黑客、程式設計師、開發者和電腦科學家的區別?
你可以認為這些詞的意思都一樣。也許你還聽過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 Pi或Arduino
- 對你每天所使用的程式碼/歷史程式碼很感興趣?
- 已經通曉一定的技術但想走的更遠?
訂閱http://learncodethehardway.org
- 想成為一名很好的多面開發者?
閱讀Mike Gunderloy的“Coder to Developer”
寫在最後
對於想學程式設計的人,他們完全可以從Web程式設計開始,學一點JavaScript然後開始編寫Web應用程式。但如果你的興趣愈加濃厚,你也可以鑽研一些不同的程式設計領域,給自己增加更多鍛鍊的機會和發展空間。
來自: hanselman.com
相關文章
- 碼農、駭客和2B程式設計師之間的區別程式設計師
- 開發人員、程式設計師與電腦科學家三者之間的區別程式設計師
- 碼農與程式設計師的區別程式設計師
- 【科普】碼農是程式設計師嗎?碼農與真正程式設計師的區別是啥?程式設計師
- 優秀程式設計師與普通碼農的區別程式設計師
- 碼農 黑客和2B程式設計師之間的區別黑客程式設計師
- 哪些事情是普通人並不知道的,只有程式設計師和電腦科學家知道?程式設計師
- 細說駭客和普通程式設計師的十大區別程式設計師
- 電腦科學家釋出不會被黑的加密程式碼加密
- 學習程式設計 vs 學習電腦科學程式設計
- 程式設計師的精神家園——碼農餐廳(二)程式設計師
- 程式設計師or碼農程式設計師
- 電腦科學和Python程式設計導論week1Python程式設計
- 低階程式設計師和高階程式設計師的區別程式設計師
- 碼農Coder、開發人員developer、程式設計師和軟體工程師有什麼區別?Developer程式設計師軟體工程工程師
- 軟體工程師和程式設計師的區別軟體工程工程師程式設計師
- 中國程式設計師與美國程式設計師寫程式碼的區別分析程式設計師
- 每日安全資訊:電腦科學家釋出不會被黑的加密程式碼加密
- 電腦科學和Python程式設計導論(二 ) Python簡介Python程式設計
- 卓越程式設計師和優秀程式設計師有哪些區別?程式設計師
- 資料科學家與機器學習工程師的區別? - kdnuggets資料科學機器學習工程師
- 程式設計師科學熬夜指南程式設計師
- 電腦科學和Python程式設計導論(六) 測試與除錯Python程式設計除錯
- Web設計師和Web開發者之間的區別是什麼?Web
- 程式碼不等於電腦科學:為什麼所有人都應該學習程式設計程式設計
- 電腦科學和Python程式設計導論(一) 計算機相關理論Python程式設計計算機
- 電腦科學和Python程式設計導論(三) 一些簡單的數值程式Python程式設計
- 程式設計師_區別01程式設計師
- 碼農很多,但程式設計師並不多......程式設計師
- Reddit網友談資料分析師和資料科學家的職業區別資料科學
- 程式設計師和程式藝術家程式設計師
- 不懂產品的碼農不是好程式設計師程式設計師
- 致那些自嘲碼農的苦逼程式設計師程式設計師
- 架構師與程式設計師的區別架構程式設計師
- 程式設計師與架構師的區別程式設計師架構
- 碼農何苦為難碼農:談談程式設計師面試那些事程式設計師面試
- 碼農和程式設計師之間的5個關鍵差異程式設計師
- 低學歷不適合做程式設計師?專科與本科程式設計師之間有什麼區別?程式設計師