在日常生活中,常常會(huì)聽(tīng)到:“我想學(xué)編程”,看似簡(jiǎn)單的一句話,仔細(xì)分析,其中的奧妙可不少。你想學(xué)什么樣的編程,是一個(gè)簡(jiǎn)單的Hello World,還是開(kāi)發(fā)移動(dòng)應(yīng)用呢?本文作者Scott Hanselman把這個(gè)問(wèn)題比喻成選家具,是去宜家還是從種樹(shù)開(kāi)始呢?并且與大家探討了碼農(nóng)、黑客、程序員、開(kāi)發(fā)者和計(jì)算機(jī)科學(xué)家之間的區(qū)別?下面是筆者對(duì)原文的翻譯。 最近有朋友向我提問(wèn):說(shuō)他想學(xué)如何編寫(xiě)代碼,但不知道該如何下手以及該從哪里起步? 學(xué)習(xí)如何編碼——是去宜家還是從種樹(shù)開(kāi)始? 好比想當(dāng)木工,你可以選擇從種樹(shù)開(kāi)始,然后砍樹(shù)、打磨,最終制作家具?;蛘撸阋部梢灾苯尤ヒ思?,也可以介于這兩者之間。 直接修改WordPress主題就好比是去宜家,自己動(dòng)手編寫(xiě)一個(gè)Web框架就好比種樹(shù),通常都是因?yàn)闆](méi)有自己喜歡或者現(xiàn)成的“樹(shù)”。無(wú)論是自己“種樹(shù)”還是直接選擇現(xiàn)成的,你都必須決定自己想要的家具。 好吧,該從哪里開(kāi)始? 每當(dāng)我聽(tīng)到有人想學(xué)編程時(shí),我都非常高興,下面這些網(wǎng)站都是非常不錯(cuò)的學(xué)習(xí)資源: · Code.org · Udacity 碼農(nóng)、黑客、程序員、開(kāi)發(fā)者和計(jì)算機(jī)科學(xué)家的區(qū)別? 你可以認(rèn)為這些詞的意思都一樣。也許你還聽(tīng)過(guò)Geek、nerd和dweeb,但知道他們的不同還是非常重要的。了解這些不同你就可以清楚地知道你到底所屬哪一個(gè)層次: · 碼農(nóng):通常是發(fā)現(xiàn)問(wèn)題并解決的人,但解決方案并不完美; · 黑客:通常是底層專(zhuān)家,技術(shù)過(guò)硬,曾深入某領(lǐng)域研究,并且非常精通; · 程序員:寫(xiě)代碼并了解算法,經(jīng)常獨(dú)自專(zhuān)注地工作; · 開(kāi)發(fā)者:是真正厲害的多面手,熟悉多種系統(tǒng)和語(yǔ)言,可以熟練交叉使用。知識(shí)廣泛的專(zhuān)業(yè)人士,有良好的溝通和團(tuán)隊(duì)協(xié)作能力; · 計(jì)算機(jī)科學(xué)家:知道并了解計(jì)算機(jī)的工作原理,精通理論層面,數(shù)學(xué)達(dá)人。 如果你已經(jīng)接近其中的一個(gè)層次,你可以想想今后應(yīng)該朝哪個(gè)方向邁進(jìn)。 假設(shè)是Web編程? 在幾年前,如果有人告訴你想學(xué)編程,你可能會(huì)編寫(xiě)個(gè)Hello World程序,或者安裝下Visual Basic,拖一個(gè)Button控件,然后用消息框彈出個(gè)Hello World。 這或許就是大家在入門(mén)時(shí)遇到的第一個(gè)程序,作為JavaScript和Web Service入門(mén),我認(rèn)為這是很好的開(kāi)端。但關(guān)鍵是,并不是所有的應(yīng)用程序都是Web應(yīng)用程序。應(yīng)用程序會(huì)使用來(lái)自服務(wù)端的數(shù)據(jù)、發(fā)送通知、文本、Email和Tweets等信息,甚至是一個(gè)非常小的應(yīng)用程序,它也有可能從Web服務(wù)器上調(diào)用一些數(shù)據(jù)。每個(gè)應(yīng)用程序都會(huì)實(shí)現(xiàn)相應(yīng)的功能,并且應(yīng)用在相應(yīng)的地方。所以你要搞清楚,你所說(shuō)的編程是指Web編程還是其它編程。 現(xiàn)在,如果你想成為一名程序員,或者更加精準(zhǔn)地說(shuō),你想成為一名高效的Web程序員,那么你就想弄清楚,當(dāng)用戶在網(wǎng)頁(yè)里輸入twitter.com時(shí),瀏覽器到底做了些什么,原理是什么?如果你想成為一名木匠,你就想了解樹(shù)是如何長(zhǎng)成,如何挑選好的木材;如果你想成為一名賽車(chē)手,你就想知道引擎的工作原理;亦或者是,如果你想成為一名管道工,你就必須知道水源。 你弄清“我想學(xué)習(xí)編碼”的真正含義了嗎? 問(wèn)題的根本所在是你到底想從事哪方面的代碼編寫(xiě)?網(wǎng)站開(kāi)發(fā)、網(wǎng)站設(shè)計(jì)、還是編寫(xiě)移動(dòng)應(yīng)用程序、還是想編寫(xiě)一個(gè)小工具、這些都是完全不同的終點(diǎn),并且它們都會(huì)有很好的入門(mén)教程,如果你想深入進(jìn)去。 · 對(duì)Web開(kāi)發(fā)感興趣? 任何相關(guān)“Learn to Code”的網(wǎng)站都非常不錯(cuò) · 對(duì)硬件感興趣? 可以考慮Raspberry Pi或Arduino · 對(duì)你每天所使用的代碼/歷史代碼很感興趣? · 已經(jīng)通曉一定的技術(shù)但想走的更遠(yuǎn)? 訂閱http:// · 想成為一名很好的多面開(kāi)發(fā)者? 閱讀Mike Gunderloy的“Coder to Developer” 寫(xiě)在最后 對(duì)于想學(xué)編程的人,他們完全可以從Web編程開(kāi)始,學(xué)一點(diǎn)JavaScript然后開(kāi)始編寫(xiě)Web應(yīng)用程序。但如果你的興趣愈加濃厚,你也可以鉆研一些不同的編程領(lǐng)域,給自己增加更多鍛煉的機(jī)會(huì)和發(fā)展空間。 |
|
來(lái)自: guli3057 > 《職業(yè)感想》