碼農 駭客 程式設計師 開發者和電腦科學家的區別
在日常生活中,常常會聽到:“我想學程式設計”,看似簡單的一句話,仔細分析,其中的奧妙可不少。你想學什麼樣的程式設計,是一個簡單的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
相關文章
- 碼農與程式設計師的區別程式設計師
- 【科普】碼農是程式設計師嗎?碼農與真正程式設計師的區別是啥?程式設計師
- 程式設計師or碼農程式設計師
- 好程式設計師Java學習路線之springboot和ssm開發的區別程式設計師JavaSpring BootSSM
- 電腦科學家釋出不會被黑的加密程式碼加密
- 電腦科學和Python程式設計導論week1Python程式設計
- 現在的你,是開發工程師、程式設計師還是碼農?工程師程式設計師
- 電腦科學和Python程式設計導論(二 ) Python簡介Python程式設計
- 好程式設計師web前端分享移動前端開發和web前端開發的區別程式設計師Web前端
- 低學歷不適合做程式設計師?專科與本科程式設計師之間有什麼區別?程式設計師
- 中國程式設計師與美國程式設計師寫程式碼的區別分析程式設計師
- [駭客說]一個新的程式設計師交流平臺程式設計師
- 電腦科學和Python程式設計導論(六) 測試與除錯Python程式設計除錯
- UI設計和前端開發的區別UI前端
- 紅客、駭客、駭客有什麼區別?駭客守則注意事項!
- 資料科學家與機器學習工程師的區別? - kdnuggets資料科學機器學習工程師
- 電腦科學和Python程式設計導論(一) 計算機相關理論Python程式設計計算機
- 電腦科學和Python程式設計導論(三) 一些簡單的數值程式Python程式設計
- 碼農很多,但程式設計師並不多......程式設計師
- 低程式碼開發和零程式碼開發有哪些區別
- 不懂產品的碼農不是好程式設計師程式設計師
- Reddit網友談資料分析師和資料科學家的職業區別資料科學
- 每日安全資訊:電腦科學家釋出不會被黑的加密程式碼加密
- 程式設計師:我終於知道post和get的區別程式設計師
- 碼農何苦為難碼農:談談程式設計師面試那些事程式設計師面試
- 從碼農到設計者,從單例模式入手設計程式碼單例模式
- 幽默:程式設計師與軟體工程師的區別程式設計師軟體工程工程師
- java程式設計師入門先學什麼開發者工具Java程式設計師
- GPU程式設計--CPU和GPU的設計區別GPU程式設計
- 好程式設計師Java培訓分享Java和HTML的區別?程式設計師JavaHTML
- 好程式設計師Java培訓分享int和Integer的區別程式設計師Java
- 好程式設計師Java培訓分享treeset和hashset的區別程式設計師Java
- 電腦科學的學科分類
- 幽默:全棧程式設計師與前後端程式設計師區別全棧程式設計師後端
- 程式設計師的桌面(家)程式設計師
- 碼農深耕 - 35歲的程式設計師何去何從?程式設計師
- 駁“低程式碼開發取代程式設計師”論 為什麼專業開發者也需要低程式碼?程式設計師
- 程式設計師必備技能-科學砍需求程式設計師
- 生物病毒和電腦病毒的區別