基本上程序員都知道開源(open source)而且日常工作中也會用到開源的技術,通過對一些厲害的開源技術的學習可以提高個人的編程水平。那么開源跟提高編程技能之間有什么相關性么?
學習其他人的源碼能讓你變得更出色
在編程工作中閱讀的代碼越多,自己的代碼就能變得更好,這就好像是讀書一樣,一個人讀的書越多,寫出來的文章會越好。在你去維護其別人的代碼時候,簡潔的代碼幾乎總是比花哨或復雜的代碼好—— 即使有注釋。然而另一方面,當你花足夠的時間去理解復雜代碼的時候,在重構的時候常常能夠學到新的技巧。不論怎么樣,都能讓你自身的技術水平有所提高。
超越語法之上
在你火力全開去學習編程語言的語法時,也就是學習如何充分利用該語言瑣碎的時刻。一門語言的語法往往是固定的,如果寫的代碼出錯了,你的編譯器會向你控訴。更深層次的課程涉及到什么語言適合解決什么樣的問題以及如何用那種語言編寫代碼以便于使它效率高和可維護。
學習一門語言有許多方法:視頻,書籍,文檔等等。通常會結合這些資源來學習一門新的語言。當涉及到非語法元素的時候,這些方法往往非常相似。
閱讀和學習其他人的源碼會讓你收獲更多知識。不僅僅是常規的結構化學習,你還需要學習模式和實踐方法。語言中所謂“正確”的做事方式并不總是效果zui佳的方式。你會經歷邊緣情況,一次性事務以及意想不到的集成。你也會找到這些問題的解決方案,有好有壞, 但如果你認真思考的話,那么這正是出來“推薦做法”的地方。今天的模式就是明天的反面模式。
你可能對有些事情,例如“總是注釋”,“逗號放到最后”,“縮進x個空格”有著自己的想法,當然你是對的。提到的這些及編碼的其他方面也有著自己的感受。
開源無處不在
隨著開源運動的發展,可供閱讀和學習的代碼數量也大幅度增長。例如Gitlab,GitHub和到BitBucket這些網站就允許我們獲取全功能的應用程序,不僅可以閱讀代碼,還可以擺弄。很少有我想要學習的東西是不能在開源代碼中獲取的。
可用的代碼是如此之多,但質量卻良莠不齊。當我們想要學習的時候,常常搞不清楚哪個好哪個不好。那就保持閱讀代碼吧,慢慢地你會學會如何區分。閱讀“壞”的代碼可以幫助你理解為什么它是“壞”的。關鍵是不要害怕嘗試任何你覺得看上去正確的東西,并且當你走錯路的時候能夠承認錯誤,并改正問題,然后繼續前行。
壞的代碼就壞的,是這樣的嗎?
有人會說“壞的代碼比好的代碼要更多更明顯”。致力于壞的代碼。
當你閱讀的壞代碼越多,那么你就越擅長發現壞的代碼
當你在學習和搜索例子的時候,你會發現和使用大量不能工作的代碼。請記住,僅僅因為它不適合你的情況,并不能說明它就是壞的代碼。學習如何讓它工作能夠使得你變得更出色。
動力節點的JAVA老師說,幫助別人學習的時候能學到更多。如果你認為你理解了一個新的主題,那么你就找個人來試著向他解釋,這能讓你更深刻地理解和記住它。
回報
記住開放源代碼在你參與進去的時候效果更好。代碼更改在大多數項目中都是受歡迎的,但是有很多出力的方法。測試開源代碼和文件錯誤報告;幫助完成文檔集;寫教程和如何做的例子;參加對話——或者僅僅只是幫助傳播。每一件事都能帶來改變,并且越多的人參與進來越好!