我們需要更多的程序員,而不是更好的工具
《30個(gè)糟糕的程序員抵不過(guò)一款好工具》這篇文章引起了我的注意。仔細(xì)閱讀之后,對(duì)于該作者提出的觀點(diǎn),我表示強(qiáng)烈反對(duì)。
我和他的年紀(jì)差不多,并且有著相似的初始經(jīng)驗(yàn)——在TRS-80、TI-99/4A、然后是Windows PC上用BASIC編程。所以,我覺(jué)得我有這個(gè)資格對(duì)他的文章發(fā)表一些我的看法。
他在文中這樣寫道:
時(shí)不時(shí)地我們可以聽到有人在說(shuō),我們需要更多的程序員。現(xiàn)在的孩子應(yīng)該在學(xué)校里就學(xué)習(xí)編程。編程的地位就應(yīng)該像曾經(jīng)的寫作文一樣。
……
如果你硬是要將更多的人塞到某一行業(yè)中去,那么唯一會(huì)流動(dòng)的群體只會(huì)是那些平庸的甚至是更低水平的人群。但是這樣一來(lái),最終只會(huì)降低該行業(yè)的平均技能水平。
如果按照作者的想法,我們可以推論出世界上每個(gè)編程能力“高于平均水平”的人已經(jīng)都是程序員了。因此,再走進(jìn)來(lái)一個(gè),才能保證他的水準(zhǔn)一定低于平均水平,才能必然降低整體技術(shù)水平。
但是這在現(xiàn)實(shí)世界明顯是不可能的。編程是一個(gè)不怎么性感的技能,還有厭女癥和年齡歧視等眾所周知的問(wèn)題。很多人可能有著令人難以置信的天賦,但卻從 來(lái)沒(méi)有寫過(guò)代碼,因?yàn)樗麄儾环?ldquo;白人/亞洲人/印度人”這種人為貼上去的標(biāo)簽。普及編程才能讓更多的人發(fā)現(xiàn)他們喜歡和擅長(zhǎng)的東西。所以,“我們需要更多 /更好的程序員”,這是***點(diǎn),也是非常重要的一個(gè)論據(jù)。
幾乎每個(gè)人都會(huì)認(rèn)為隨著時(shí)間的推移工具變得好多了。事實(shí)真的如此嗎?
……
想象一下,如果這樣的情況發(fā)生在今天。給一個(gè)14歲的從未使用過(guò)計(jì)算機(jī)的人一臺(tái)還在包裝盒中的電腦,看看他需要多少時(shí)間才能寫出自己的***個(gè)程序。我猜啊,他要么只需要幾周時(shí)間要么就根本完不成。
好吧,比如說(shuō)我們要寫一個(gè)簡(jiǎn)單的井字游戲,需要安裝javascript、瀏覽器和文本編輯器(還有教程,告訴你如何操作)。的確,這有點(diǎn)復(fù)雜。
哦,等等。哈哈,原來(lái)這些在PC/Mac/Linux機(jī)子上都已經(jīng)安裝好了。
JavaScript在很多方面都遠(yuǎn)遠(yuǎn)優(yōu)于BASIC。當(dāng)你和HTML互動(dòng)時(shí),可以免費(fèi)獲取更多的圖形表現(xiàn)。只需點(diǎn)擊右鍵(view source)就可以擁有成千上萬(wàn)個(gè)其他JavaScript程序的源代碼。這是一個(gè)簡(jiǎn)單的編程入門,如果那個(gè)14歲的少年喜歡的話,他還可以朝著匯編語(yǔ) 言、編輯器、數(shù)據(jù)庫(kù)和注冊(cè)工具等等等等方面擴(kuò)展。
而這僅僅只是一個(gè)開始。試想一下,如果給你一個(gè)這樣的挑戰(zhàn):請(qǐng)為嵌入式設(shè)備創(chuàng)建一個(gè)易于安裝的視聽?wèi)?yīng)用,并且此嵌入式設(shè)備一方面需要能與觸摸傳感器交互,另一方面還可以傳送壓縮的聲音數(shù)據(jù)到設(shè)備的音頻驅(qū)動(dòng)程序中。有木有毫無(wú)頭緒的趕腳?
我在幾年前開始學(xué)習(xí)如何在Android上寫程序。先將我的手機(jī)通過(guò)USB與計(jì)算機(jī)相連,下載SDK,參考了一些示例代碼,然后在大約4小時(shí)之后,我寫出了一個(gè)能在我的手機(jī)上運(yùn)行的原型音板app。這再次印證了我們需要更多/更好的程序員。
如果這個(gè)世界每個(gè)人都有編程天賦,那么《30個(gè)糟糕的程序員抵不過(guò)一款好工具》一文的作者的確言之有理,但是首先我想問(wèn)的是,現(xiàn)在我們到達(dá)那個(gè)美好彼岸了嗎?