轉至:一種肯定能提高開發者程式設計能力的方法
將時間撥回到2023年5月,我最初寫這篇文章就是在這個時間,當時發布在了fuel your coding**上面。不幸的是,這個站點現在已經不存在了,所以考慮到以後如果有人想查閱的原因,我在這裡重新發布了這篇文章。我考慮過對文章內容進行一些修改,但它對我而言已經足夠好了。
如果你想提高編碼的能力,最容易想到的乙個方法就是編寫更多的**。每個人都知道這點。然而,另外一種我認為絕對也能提高的方法,可以說完全是這種方法的反面。我將盡可能清楚地說明這一點:
閱讀別人的**能讓你的編碼能力得到明顯的提公升。
這句話有人信,也有人不信。我覺得你應該相信。如果你願意嘗試一次,我覺得你得到的回報將會是巨大的。
本文我將會告訴你應該閱讀什麼樣的**,並且提出一些實際的建議,以幫助你怎麼樣進行閱讀。如果你已經很擅長閱讀別人的**了,那讀完此篇文章,你可能會發現新的方法。
這是乙個很重要的決定,也是乙個很難給出建議的決定。我不能只是簡單地告訴你應該閱讀這個**還是那個**,因為它真的歸結於你要做什麼事情。但是,我將提供一些指導方針,幫助你去選擇應該閱讀什麼內容。
閱讀那些你用得著的**
這一步最好從閱讀那些你已經在使用的外掛程式或者庫檔案開始。
這些都是你可以學習的非常好的例子。你已熟悉了它們的公共api,了解它們內部工作原理的障礙是較低的。此外,作為**的使用者,你有機會新增文件、實現新的功能,或者通常以某種方式給專案做貢獻。
閱讀那些你印象深刻的**
閱讀那些讓你尊敬的大師寫出來的**
如果你已經用開源軟體編碼了一段時間,可能已經有其他程式設計師贏得了你的尊重。在我的腦海中我能想到一些開發人員,他們寫的**簡直令人羨慕。
如果目前你腦海裡面沒有乙個受人尊敬的開發者,想找到乙個並不是什麼難事。他/她可能已經在前兩部分(你能用到的**,或者給你印象深刻的**)中授權了一些**。
閱讀那些能給你帶來靈感的**
如果你屬於冒險型,那麼可以考慮投身於一些大型專案,如ruby on rails框架,drupal或jquery。但是我建議暫時別接觸這樣的專案,除非你是乙個有經驗的而且已經很會閱讀別人**的開發者了。
既然你已經選擇了一些**來閱讀,那麼最好的閱讀方式是什麼呢?下面提供一些方法來最大化你的投資回報率,也就是讀的少,但是收穫多。
先看大框架
假設你至少在巨集觀層面上知道你所讀的**是如何實現的。如果沒有,我建議先閱讀專案的**、教程、文件,以及除了**之外你可以掌握的其他任何東西。
好了,如果上面的步驟完成了,那我建議你第一步就是先大致瀏覽一下專案的架構。這個階段的工作量根據你選擇的**庫大小的不同也不一樣,但是還是需要一點時間的。
這一步的目標是熟悉源**。找出哪些檔案包含/請求/載入其他檔案,其中大部分**在**,如果有的話,使用的命名空間是什麼,以及這些性質。一旦你掌握了大局,你就可以深入挖掘細節了。
記錄閱讀心得
閱讀**不應該是一種被動的行為。當你開始理解程式流時,我鼓勵你在開始時新增注釋,記錄你的假設和結論。當你第一次開始的時候,你的記錄大概會是這樣的:
邊閱讀邊測試,例如luke
希望你所選擇的專案有乙個測試套件。如果沒有,您可以完全跳過這部分(或者找到乙個)。
當你閱讀別人的**時,測試是乙個很好的起點,因為他們記錄了**應該完成的任務。有些測試比其他測試更有意義,但是不管編寫得多麼好,你經常會發現程式設計師在測試中的意圖比在實現中發現的要容易得多。在閱讀時,試著讓測試套件成功執行。這將確保您的開發環境得到適當的配置,並使您在進行更改時更加自信。
親自動手做
誰說閱讀**時雙手就得閒著?只有當你把所有的東西都打亂了,然後自己試著重新拼裝好時,才能在這個過程中真正理解。還記得那些通過的測試嗎?想辦法讓它們失敗,新增更多,或者嘗試更改實現的邏輯而不破壞它們。嘗試新增乙個你認為很酷的小功能,或者設定專案範圍的日誌記錄,這樣就可以在**的不同階段列印輸出。這還是在閱讀嗎?當然,但在這一點上,就得取決於自己的選擇了,看你是把它當作冒險來看,還是把他當作一本神秘的**來看了。這是一件好事!
清除再重複
一旦讀完了乙個**庫,再選乙個,然後重新開始這個過程。**讀的越多,你就能從閱讀中獲取更好的資訊,你花的時間就越少。我認為你會發現投資回報增長很快,而且這是一種非常有趣的學習方式。
在我閱讀**的過程中,帶給我影響力最大的因素就是github。這個**讓你很容易找到新的專案和優秀的程式設計師,如果你還沒有利用它,我覺得你就是在傷害自己。我建議先從github開始,然後直到找到乙個你認為可以從中學習的專案,再轉移到其它**閱讀。接下來可以先從git clone
入手開始閱讀!
一種肯定能提高開發者程式設計能力的方法
原文 one sure fire way to improve your coding 翻譯 vincent 將時間撥回到2010年5月,我最初寫這篇文章就是在這個時間,當時發布在了fuel your coding 上面。不幸的是,這個站點現在已經不存在了,所以考慮到以後如果有人想查閱的原因,我在這...
軟體開發者如何提高程式設計能力?
程式設計能力是乙個比較大的概念,是利用計算機程式語言實現軟體開發的能力的統稱。這個能力主要包括邏輯思維,學習能力。程式設計能力是軟體開發者的軟實力,可以靈活應用到其他任何地方。從上向下 學習,指從計算機高階語言開始學習到底層系統以及硬體的學習路徑。從下往上 路線剛好和 從上往下 相反。其實無論從 學...
成功軟體開發者的9種程式設計習慣 7
8.確認buffer 要時時確認對設定的排列或變數的大小,以避免資料混亂或導致系統出問題。請看下面使用者輸入資料的例子 char city 10 為都市名稱的排列 printf enter a city name scanf s city printf city is s n city 在這裡,都市...