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