編程就如一種超能力。通過它,你可以創(chuàng)造出成千上萬的人們可以看到的東西;你可以改變?nèi)藗兊男袨榉绞?、思想方式及與他人交互的方式。這棒極了,但是,我也見過好多人,他們認(rèn)為這是一種他們力所不能及的能力。我也見過很多非技術(shù)出身的人,他們似乎以為這種超能力只會賦予那些足夠幸運的人——他們在很小的時候就擁有了這種能力。
在高中,我曾學(xué)習(xí)了兩門計算機(jī)技術(shù)的課程,所以在大學(xué)時我才有充分的信心去面對編程。如果在此之前沒學(xué)過這些課程,編程可能會成為我大學(xué)中的一個噩夢。我最欽佩的就是那些在大學(xué)前沒有編程經(jīng)驗的同學(xué),他們?nèi)匀豢梢詫W(xué)的很好。
我的大學(xué)以外的幾個朋友也和我同樣感受。他們希望自己早些認(rèn)識到編程的重要性,現(xiàn)在還能有多少機(jī)會可以打開“技術(shù)”的大門,并且期待著自己能學(xué)會代碼。這直接的表達(dá)出他們對代碼的渴望同時他們也認(rèn)識到現(xiàn)在為時太晚,他們的年齡在24,25左右。
人們很容易認(rèn)為這為時已晚,因為看到很多人用了大學(xué)四年的時間來學(xué)習(xí)編程。但這四年里我只學(xué)習(xí)了計算機(jī)科學(xué)嗎?前兩年我一直在尋找主修專業(yè),后兩年我陸續(xù)學(xué)習(xí)了八門課程,但其中很多都與以應(yīng)用程序為中心的編程無直接關(guān)聯(lián),當(dāng)時我認(rèn)為這些課程都大部分人希望選修的。在大學(xué)整整四年里,我只學(xué)了一門與應(yīng)用程序開發(fā)有關(guān)的課程。剛開始,我沒有 HTML 和 CSS 的實踐知識,但是我和其他兩位同樣沒有經(jīng)驗的同學(xué)共同努力用 MySQL,PHP 和 HTML/CSS 共同開發(fā)一個 Web 應(yīng)用程序。
人們很容易認(rèn)為這為時已晚,因為已經(jīng)有很多技術(shù)大牛了。但是,最重要的是要記住每個開始接觸編程的人都是一個初學(xué)者,如何才能成為技術(shù)大牛,就要肯去開始,肯去鉆研。
所以如果你內(nèi)心想“真希望我已學(xué)會了編程”,那為什么不開始學(xué)著呢?當(dāng)你開始學(xué)時,請牢記下面幾個提醒:
1. 它很困難。做一件事,起初可能需要花費更多的時間,但以后會越來越容易。當(dāng)然,有些人更傾向于編程所需要的邏輯思維,但我認(rèn)為大部分情況下,大家并不認(rèn)為他們?yōu)榇俗龊昧藴?zhǔn)備。當(dāng)然了,讓大家相信編程“很困難”以及普通人一般都“不是絕頂聰明的”,可能會稍稍安慰一下我們的自尊,讓我們感到我們是具有高智商精英團(tuán)隊中的一員。
2. 在心理上對未來將面臨的困難做好準(zhǔn)備。我經(jīng)常會想我是不是受到了什么詛咒,因為我每次嘗試新東西(如新的開發(fā)環(huán)境、工具、庫等)時,總會出錯。花了好幾年時間,我終于意識到針對各種不同操作系統(tǒng)、軟件版本等的說明文檔不是過時,就是很難理解。
3. 你確實很喜歡編碼嗎?不要想它是否太難。想想你是否對它感興趣?當(dāng)你花了好幾個小時調(diào)試了一個程序,最終它可以按預(yù)期地運行時,你會十分興奮嗎?你希望花幾個小時去完成一件事嗎?這些都是軟件吸引我的原因——我從來不擔(dān)心我是否能把它開發(fā)出來。