自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

比看書還高效,這4種提高編程技能的方式你知道么?

開發(fā) 前端
或許你已經編程多年了,但是我敢打賭你依然會碰到處理不了的難題,如果你想要擺脫這種惡性循環(huán),你需要跳出思維框架并挑戰(zhàn)自己,這里分享4種提高編程技能的方式,希望對你有所幫助。

拿破侖·波拿巴曾說過一句話:“對于戰(zhàn)爭,我們需要三樣東西,金錢,金錢和更多的金錢。”

編程學習同樣需要編程,編程和不斷編程,這是讓你的編程技能變得更好的方式。

或許你已經編程多年了,但是我敢打賭你依然會碰到處理不了的難題,你可能正在找一份工作,但卻不知道如何脫穎而出,你也可能正在參加一個大項目,但卻困難重重。如果你想要擺脫這種惡性循環(huán),你需要跳出思維框架并挑戰(zhàn)自己,這里分享4種提高編程技能的方式,希望對你有所幫助。

1. 重構現有工具

反饋不足是你編程學習最大的障礙之一,當你剛開始學編程的時候,這并不是什么大問題,你想讓你的代碼運行起來,你獲得的經驗越多,你面臨的挑戰(zhàn)就越多。你需要考慮設計模式、架構、可讀性、性能等。你會發(fā)現每個問題都有多種解決方案,你需要判斷你的解決方案是否合理。

幸運的是,有一種簡單的方法可以獲得對代碼的反饋或考慮問題的不同視角:通過重新構建現有的庫或其他工具。

你所需要做的就是找到一些工具(最好是你經常使用的工具),并了解它的功能,然后確定它的核心功能。仔細閱讀文檔,了解API,確保自己已經可以開始重構了。

你不需要重新構建所有東西,只要一個或幾個常見的用例,一般情況下,這個項目做下來需要花你幾天時間。

當你完成編程時,有趣的部分就來了,檢查分析源碼,考慮可能出現的情況和Bug。然后重新打開你創(chuàng)建的工具的源代碼,檢查你的代碼和解決這些問題的方法,你們的解決方案相似么?是更好還是更糟,為什么?嘗試去理解代碼庫背后的決策。

許多庫是由資深的程序員創(chuàng)建的,并由社區(qū)擴展的,通過檢查它們的代碼,你可以學習解決問題的新模式和方法,當你試圖解決這些問題時,將新知識應用到實踐中就會更容易。

2. 結對編程

[[375142]]

 

結對編程是一個有爭議的想法,它是一種軟件開發(fā)技術,兩個程序員一起工作,但只有一個人編寫代碼,另一個審查回顧代碼。兩人定期交換角色。

缺點很明顯:只有一個程序員編寫代碼,因此需要更多的時間來創(chuàng)建軟件,好處就是更好的軟件質量。結對編程對軟件開發(fā)的好處是有爭議的,但它對你的編程技能提升的好處是很明顯的。

當你寫代碼時,你的搭檔會發(fā)現的你模式和思維習慣,你們都需要彼此分析如何創(chuàng)建代碼。當你觀察別人寫的代碼時,你可以看到他們的模式和心態(tài),幾乎可以肯定的是,你們處理問題的方式是不一樣的,所以這是從另一個角度發(fā)現問題的方式。

結對編程有一定難度,為了更有效率,你的搭檔應該接近你的水平,如果他們資歷太淺,就會變成你在之道他們。但如果他們比你資深的多,那他們很可能很快就對你沒耐心了,或者干脆什么事情都自己做。

3. 約束自己

有創(chuàng)造力是很難的,你習慣于用一種方法解決問題,甚至不考慮其他方法,這就像自動駕駛一樣,作為一名程序員,為了變得更加有創(chuàng)造力,你有無數的方法來約束自己,諸如:

  • 避免一些語言特性(例如,寫代碼時不使用if或Switch語句)
  • 減少數據的可變性——盡量使用純函數,甚至可以用一些工具來實現不可變性,比如Immutable。
  • 使用測試驅動開發(fā)——TDD是一種強大的技術,它可以讓你的代碼變得更好,并迫使你改變思維方式。
  • 限制時間,例如給自己三天時間開發(fā)應用或參加黑客馬拉松等。

約束自己不是最重要的部分,你可以選擇看起來有趣的東西,關鍵是范式的轉變,迫使自己重新思考和完善你的方法才是你成長的加速劑。

4. 寫技術文章

[[375143]]

假如你已經編程一段時間了,并且自認為很清楚自己在干什么,但實際上并不是這樣的,當你在編程時,你就會發(fā)現自己不清楚的事情還有很多,并且經常無意識地一遍又一遍地重復這些相同的步驟。

當你用書面的形式解釋你編碼的過程,你就會開始深入考慮自己的編程方法,開始思考某些代碼是否是問題的核心部分,其他代碼是否過于冗余和復雜。寫作將使你對你的代碼有條理、有批判性地思考。你需要對其進行重構和簡化,以便為其他人創(chuàng)建有用的學習材料。要深入了解一門學科,沒有比教別人更好的方式了,好好利用這個方式,你的成長速度就會超乎你想象。

 

責任編輯:趙寧寧 來源: 程序員書庫
相關推薦

2020-09-11 06:39:29

ThreadLocal線程

2020-06-17 08:12:05

Kubernetes容器

2020-04-27 08:31:29

單例模式Python軟件設計模式

2020-06-22 07:55:31

編程語言

2021-08-07 15:29:48

區(qū)塊鏈比特幣技術

2021-05-07 16:19:36

異步編程Java線程

2025-03-26 00:35:25

2020-12-28 08:46:38

編程開發(fā)技能

2017-07-14 08:46:51

開源編程云計算

2021-03-25 15:07:50

編程技術工具

2021-11-25 07:01:57

.NET開發(fā)編程

2021-06-02 05:47:32

程序員編程開發(fā)

2019-11-12 14:18:56

PythonWord設計

2021-04-14 14:46:13

前端Chrome插件

2022-10-10 12:53:33

Python模塊

2020-03-23 08:31:13

網絡時延時延網絡

2023-10-30 11:53:37

繼承JS父類

2025-01-21 10:04:40

Java并發(fā)阻塞隊列

2021-09-02 08:24:41

TypeScript 泛型前端

2020-02-06 10:10:24

python程序代碼
點贊
收藏

51CTO技術棧公眾號