可以使你成為更優(yōu)秀程序員的5個好習(xí)慣
我們都希望能夠在我們所做的事情中得到成長,在WEB開發(fā)領(lǐng)域,我們花費(fèi)時間最多的就是編寫代碼。這可能包括HTML, CSS, JavaScript, PHP, Python, ActionScript或者任何其他你構(gòu)建WEB站點(diǎn)時選用的語言。
這篇文章中,我們將分享一些實際的步驟,使你可以擴(kuò)充技能,成為一個更優(yōu)秀的程序員。我們提出五個不同的生活習(xí)慣,它們可以使你在你所從事的領(lǐng)域變得更加優(yōu)秀。
1. 一個時間段內(nèi)只專注于一種類型的語言
如果你正在設(shè)計或開發(fā)網(wǎng)站,你將需要同時熟悉多種不同的語言。你可能會想同時學(xué)習(xí)所有的這些語言,特別是考慮到它們是如何相互關(guān)聯(lián)的。
我想,在某種程度上,這是不可避免的。但如果你真的想快速提高,我建議你專注于一個特定領(lǐng)域的專業(yè)知識。你想更好地利用CSS?把你的重點(diǎn)放在這一點(diǎn)。嘗試使用一個單一的HTML文檔只使用CSS實現(xiàn)不同的布局。CSS Zen Garden 是一個使用相同布局實現(xiàn)不同頁面樣式非常棒的例子。你也可以通過查找元素的列表,并把精力集中在里面。舉個例子來說,你熟悉CSS2,但想提升對CSS3的理解,你可以學(xué)習(xí)CSS3屬性并逐一的實現(xiàn)它們。你可以閱讀當(dāng)前的CSS3規(guī)范,還可以通過每個模塊的學(xué)習(xí)來了解它在瀏覽器上能(或不能)做什么。
對于腳本類的語言如JavaScript和PHP,你也可以用類似的方法,雖然對它們的函數(shù)進(jìn)行這樣的操作有點(diǎn)乏味。另外一種選擇是選擇一個教程來學(xué)習(xí),特別是對于你工作中需要的方面。
你想對WordPress 開發(fā)更加精通?有太多相關(guān)的教程了。想要了解更多關(guān)于服務(wù)器端圖像處理的操作嗎?也有很多的教程。找到它們,添加書簽,并逐步學(xué)習(xí)。
選擇一個,并堅持下去,直到你掌握了它,然后移動到下一個。
2. 通過注釋來寫邏輯
說到編碼,我有堅持很多原則和想法。其中一個就是,代碼中95%都是邏輯。另一個就是從人類語言到編程語言,邏輯并沒有改變。
這也就是意味著,如果你能在代碼中寫出來,也就可以用英語或者其他語言寫下來。
例如,假設(shè)我想根據(jù)一天中的時間來鎖定或者解鎖某個東西。我們可以先退一步,用簡單的英語注釋先把邏輯寫下來,而不是直接編寫函數(shù)代碼。
例子:
- // FUNCTION: Lock On Time
- // This function will accept two time values, indicating the range through
- // which it should return an unlocked status.
- // Create a new data object
- // Using the data object, get the current time
- // IF the current time falls within the range passed to the function
- // Return false – meaning that we are currently unlocked
- // ELSE
- // Return true – meaning that we are currently locked.
- // ENDIF
- // END FUNCTION
這里我們列出來函數(shù)完整的邏輯結(jié)構(gòu),這就類似于我們建造房屋時的藍(lán)圖。現(xiàn)在開始我們就可以根據(jù)注釋的引導(dǎo)來編寫實際的代碼了。
很顯然這是一個比較簡單的例子,但我在實現(xiàn)復(fù)雜的函數(shù)時也經(jīng)常使用這種技術(shù)。通過這種方式,我可以在編寫函數(shù)之前先考慮好完整的邏輯。我發(fā)現(xiàn)這是一個非常有價值的習(xí)慣,它可以使你犯更少的錯誤。
我很少會刪除注釋,在注釋中寫邏輯同時也意味著我已經(jīng)為代碼寫好了文檔,它使得別人很容易就能理解我的邏輯,甚至對于過了幾個月或幾年以后返回來查看代碼的自己也是這樣。
3. 學(xué)習(xí)模版、插件和開源的代碼
網(wǎng)絡(luò)是一個非常開放的地方,尤其是在開發(fā)社區(qū)中。這為想成為優(yōu)秀程序員的人提供了非常寶貴的資源。
例如,你剛剛接觸HTML,你可以從網(wǎng)上下載無數(shù)免費(fèi)的模版,因為這些模版通常只是純HTML(以及CSS和JavaScript),所以它們可以在本地運(yùn)行,給你提供了學(xué)習(xí)這些代碼很好的機(jī)會。學(xué)習(xí)其中的標(biāo)簽和結(jié)構(gòu)來更好的理解它們,修改下樣式表看看會發(fā)生什么。
當(dāng)然,我強(qiáng)烈建議你閱讀一些有關(guān)標(biāo)準(zhǔn)和最佳實踐的資源,你肯定不想自己養(yǎng)成壞的編碼習(xí)慣。
這對于學(xué)習(xí)JavaScript和PHP等更有用,它們的范圍和邏輯相比HTML、CSS等更復(fù)雜。
例如,WordPress這樣的內(nèi)容管理系統(tǒng),就是完全使用不同的PHP腳本編寫的函數(shù)組成的。同時,它還支持對核心函數(shù)進(jìn)行擴(kuò)展,允許你下載安裝各種非??岬牟寮?。WordPress 和它的插件的好處就是它們都是完全開源的,你可以完整的瀏覽它們的源代碼。
關(guān)于這個習(xí)慣的最后一點(diǎn)忠告:永遠(yuǎn)不要只是使用別人的代碼結(jié)構(gòu),你應(yīng)當(dāng)確保自己理解了它們,而不只是模仿別人的代碼。要考慮代碼是否符合特定語言的流程和標(biāo)準(zhǔn),這也有助于讓你避免養(yǎng)成壞的編程習(xí)慣。
4. 讀書
雖然網(wǎng)路上各種博客中都有很多有用的信息,但我仍覺得這并不如閱讀一本相關(guān)主題的書好。博客可能是關(guān)于特定主題的文章或者教程,而不像書那樣可以幫你建立起對于特定主題強(qiáng)大的基礎(chǔ)的理解。
我從上世紀(jì)90年代末到21世紀(jì)初我一直使用 table 布局,直到我厭倦了它們,那時我才意識到是時候使用 DIV 布局了。然而在那時,我只是嘗試使用正確的標(biāo)記,而沒有完全理解CSS選擇器的語法這已DIV 布局中非常重要的一部分。因此,我并不了解偽類,整個特異性和繼承的概念對我沒有意義,定位和浮動的概念也是這樣。
現(xiàn)在,我從各種博客的信息中東拼西湊慢慢學(xué)會了該語言(其實我可以花費(fèi)更少的時間),對CSS有了更全面的了解。這需要花費(fèi)很多的時間,而我又有工作要做,所以我一直在尋找一個更恰當(dāng)?shù)慕鉀Q方案。
所以我買了Charles Wyke-Smith寫的Stylin’ With CSS這本書。這是一個啟示。短短的幾章內(nèi)容就讓我理解了CSS的基本概念。所有我之前不知道的,都以很好的組織方式教會了我。大概只需要一天的時間,我就獲得了與從各種博客中需要花費(fèi)幾周甚至幾個月時間獲取到的相同的知識。
當(dāng)然,從那開始我學(xué)到了很多CSS的知識,但這本書真的我讓我學(xué)會了了CSS的入門基礎(chǔ)知識,至今我仍把它放在書架上作為參考。
如果你想從零開始學(xué)習(xí)一門新的技術(shù),通過一本書來學(xué)習(xí)肯定是最好的選擇之一。
5. 實踐
最后,我建議你養(yǎng)成的習(xí)慣就是樂趣。坐下來,看看靠你自己能夠完成什么樣的東西。
目前,CSS3是一種流行的趨勢,不同的程序員試圖推動技術(shù),你可以發(fā)現(xiàn)其真正的能力。下面是一些例子:
當(dāng)然,這些CSS有些并不完全實用,其中最著名的可能就是純CSS實現(xiàn)的Twitter fail whale illustration,這耗時間嗎?是的。這實用嗎?并不。但它肯定很有趣,并且可以證明CSS是如何的強(qiáng)大。
你可以進(jìn)行什么樣的編碼實驗?它是一個有趣和有效的方式來學(xué)習(xí)。
結(jié)語
這就是所有的可以提高你編程能力的5個習(xí)慣,可能并不是每一個都和你有關(guān),但希望你能找到至少一個吸引你的習(xí)慣。請記住,這個叫做互聯(lián)網(wǎng)的地方是在不斷成長和發(fā)展的,想成為優(yōu)秀的程序員就意味著要不斷的學(xué)習(xí)和成長。
via:sixrevisions.com,由 Specs 翻譯整理,發(fā)布在 Coder資源網(wǎng)