編程是當今社會最為實用的技能之一。從能夠創造一個公司網站到知道怎么修復一個重定向錯誤,這些技能帶來的價值,不管是對雇主還是對程序員自身,都是無法估量的。
但是,保持你當前的狀態,停滯不前,那你永遠無法成為一個非常優秀的程序員。所以,請認真閱讀下文,我總結了一些提升編程能力的小方法。
Step 1
清晰地分析問題。
如果在解決問題前不能先清楚問題,了解具體狀況,那在解決問題時,會很容易卡殼或導致局面更加混亂。
Step 2
再三考慮如何解決問題。
整理解決方法,並再三考慮這些方法的可靠性,不建議盲目行動。
Step 3
總結完整的需求。
花一點時間寫下產品需要達到的最終目標,並明確你的產品使用群體。在這個階段有一個清晰的認知,會節省之后的大量時間。
Step 4
寫一個完善的執行方案或搭建完整模型。
對於一些小項目,這一步你只需要畫一個簡單的流程圖或者寫一個簡單的方程式。
對於一些更大的項目,你得把你的工作划分成一個個小模塊,並思考以下問題:
● 每個模塊需要完成的任務是什么
● 模塊之間的數據如何流通
● 在每個模塊里數據如何應用
雖然收集和計划需求這一步非常乏味,並且比直接寫代碼少了很多的樂趣。但是,如果沒處理好這一步,之后花費數小時去Debug會更加的乏味。
花時間預先去設計項目的流程和結構,你在寫下第一行代碼前就會發現,這對於實現你的最終目標,非常有幫助。
Step 5
隨時注釋你的代碼。
如果你覺得你的代碼需要被解釋,那么就大膽寫下你的注釋吧。每一個函數都需要一兩行注釋去解釋參數和返回結果。
注釋應該更加注重表達原因,而不是單純解釋作用。更新代碼的時候請注意更新注釋。
Step 6
對變量使用一致的命名規范。
這有助於幫你追溯變量類型,並了解變量的目的。這意味着你要寫的代碼不能僅僅是簡單的x = a + b * c了。
當然,規范的變量可以使你的代碼更容易調試和維持。目前流行的命名法是匈牙利命名法(駝峰式命名),變量名的前綴是它的類型。
比如,對於整數變量,你可以用intRowCounter命名,而字符串則可以用strUserName.
但不管你的命名規則是什么,一定要保證它的一致性,和變量名的可解釋性。
Step 7
組織好你的代碼。
用可視化的結構來表明你的代碼結構。比如,在條件語句或者循環語句下縮進一個代碼塊。
在變量名和運算符間(加減乘除等)記得要空格,這是為了讓代碼看起來更美觀,易讀。
Step 8
測試每一處。
用輸入和值來測試每個模塊,然后嘗試輸入那些可能出現又不太常見的輸入值。這會清理掉任何隱藏的bug。測試的藝術在於,你能夠通過練習,逐漸鍛煉出自己的測試能力。
測試的例子如下:
● 極端值:對於正數值,使用0和超出預期的最大數值來測試;對於文本值,則用空字符串測試;對每一個參數用null來測試。
● 無意義的值:即便你不相信你的用戶會輸入亂七八糟的東西,也請輸入來測試一下。
● 不正確的數值:用0來測試那些會被用來做除法的值;當要求輸入一個正數或者用來計算平方根的數時,你可以輸入負數;當要求輸入一個字符串時,你可以嘗試輸入一個數值。
Step 9
練習,練習,練習。
編程不是一個停滯不前的訓練過程。總有新的東西需要學習,當然,更為重要的是,要不斷復習那些舊的知識。
Step 10
隨時准備好做出改變。
在現實的工作環境中,需求總是變化的。只要你一開始就對需求和所執行計划足夠了解,那中途的變動也很少會導致糟糕的結果。
在開始編程前,你可以通過呈現需求文檔或者執行計划來提升進程的清晰度。這會幫助你隨時確認所做的事是符合要求的。
Step 11
從簡單到復雜。
當你需要處理復雜的事情時,你可以先從構造簡單的模塊開始。比如說,你想在屏幕上創造一個可以跟隨鼠標方向移動,且根據鼠標移動速度不斷變化形狀的圖形。
你可以按照下方的步驟操作:
● 從呈現一個正方形開始,讓它跟隨鼠標移動,先解決移動路徑問題。
● 然后,讓正方形的大小和鼠標速度關聯起來,解決速度與形狀間的關聯。
● 最后,創造出你本來需要的圖形,並將三個元素關聯起來。
● 這個方法導向模塊化代碼編寫,每個元素有其內部的完整模塊。這對代碼的重復使用非常有用,並且也會簡化調試過程。
大家如果覺得以上的內容太過抽象,不妨來點實際的。
實驗樓官網為想學習編程的同學提供了完善的虛擬操作環境,和從基礎到進階,再到高級的編程課程。
在這里,我們更強調的是個人實踐和動手寫代碼。
想要開始學習編程的同學或者希望能找題練手的同學們,都可以登錄實驗樓,選擇適合你的課程。
▲實驗樓精選課程:
《基於 Vue.js、Node.js 和 MongoDB 開發 DoraCMS》
《 Kubernetes 進階(二):控制器、存儲與網絡 》
本文為譯文,原文為How to Improve Your Skills as a Programmer,鏈接https://www.wikihow.com/Improve-Your-Skills-as-a-Programmer
翻譯:實驗樓