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

為什么開源可以提高程序員的編程技能?

開發(fā) 前端
記住開放源代碼在你參與進去的時候效果最佳。代碼更改在大多數(shù)項目中都是受歡迎的,但是有很多出力的方法。測試開源代碼和文件錯誤報告;幫助完成文檔集;寫教程和如何做的例子;參加對話——或者僅僅只是幫助傳播。每一件事都能帶來改變,并且越多的人參與進來越好!

我已經(jīng)寫了很多年的軟件。最近我意識到,我越涉及(致力于,結(jié)合于等)開源技術(shù),我寫出來的代碼就更好。這不由地讓我疑惑起來:難道里面有什么相關(guān)性或因果關(guān)系嗎?

[[167033]]

閱讀代碼能讓你變得更優(yōu)秀

我在編程生涯的早期就明白我閱讀的代碼越多,我的代碼就能變得更好。我知道,當我不得不維護其他人的代碼時,簡單和干凈的代碼幾乎總是比花哨或復雜 的代碼好—— 即使有注釋。然而另一方面,當我花足夠的時間去理解復雜代碼的時候,我常常能夠?qū)W到新的技巧。不論怎么樣,都能讓我有所提高。

這使得我在那些沒有代碼審查的地方一再爭取。而當沒有足夠的時間來正式執(zhí)行“代碼審查”的時候,我會自己瀏覽存儲庫和閱讀代碼。當然,那時我還被受限于來自于小團隊的公司資源。

超越語法

在你不得不全力對付任意編程語言的語法時,也就是學習如何充分利用該語言最瑣碎的時刻。一門語言的語法往往是非常靜態(tài)的,并且如果你出錯了,你的編 譯器會向你控訴。更深層次的課程涉及到什么語言最適合解決什么樣的問題(“合適的工具做合適的工作”),以及如何用那種語言編寫代碼以便于使它高效和可維 護。

學習新語言有許多方法:課程,教程,導師,書籍以及等等。我通常會結(jié)合這些選項來學習一門新的語言。我注意到,當涉及到非語法元素的時候,這些方法常常非常相似。

閱讀來自于其他人的實際部署代碼會讓你收獲更多。不僅僅是常規(guī)的結(jié)構(gòu)化學習,你還需要學習模式和實踐方法。語言中所謂“正確”的做事方式并不總是效 果***的方式。你會經(jīng)歷邊緣情況,一次性事務(wù)以及意想不到的集成。你也會找到這些問題的解決方案,有好有壞,但如果你認真思考的話,那么這正是出來“推薦 做法”的地方。今天的模式就是就是明天的反面模式。

你可能對有些事情,例如“總是注釋”,“逗號放到***”,“縮進x個空格”有著自己的想法,當然你是對的。我對提到的這些及編碼的其他方面也有著自己的感受。

有時候當我閱讀其他人的代碼時,如果看到他們做錯了,我會生氣。但是隨著我代碼閱讀量的增加,我開始懂得,總會有一些情形常見于別人的代碼,但我在我自己的代碼中卻未曾遇到過的,并且我的方法沒有必要那樣執(zhí)拗。我不僅改變了我的一些觀點,而且懂得更加靈活。

開源無處不在

隨著開源運動的發(fā)展,可供閱讀和學習的代碼數(shù)量也大幅度增長。例如Gitlab,GitHub和到BitBucket這些網(wǎng)站就允許我們獲取全功能的應(yīng)用程序,不僅可以閱讀代碼,還可以擺弄。很少有我想要學習的東西是不能在開源代碼中獲取的。

我以前學習新的編程語言,會把重點放在諸如目錄結(jié)構(gòu)和命名約定這些簡單的事情上。但是,現(xiàn)在,我會找一些不同的開源項目,然后可以開始拼湊常用的方法。我很少強調(diào)以前那些類型的東西了。

可用的代碼是如此之多,但質(zhì)量卻良莠不齊。當我們想要學習的時候,常常搞不清楚哪個好哪個不好。那就保持閱讀代碼吧,慢慢地你會學會如何區(qū)分。閱讀 “壞”的代碼可以幫助你理解為什么它是“壞”的。關(guān)鍵是不要害怕嘗試任何你覺得看上去正確的東西,并且當你走錯路的時候能夠承認錯誤,并改正問題,然后繼 續(xù)前行。

壞的代碼就壞的,是這樣的嗎?

有人會說“壞的代碼比好的代碼要更多更明顯”。sub-reddit致力于壞的代碼。

在這些年里,我寫了很多好的代碼和壞的代碼。當我看到我以前寫的代碼時,我的***想法就是我怎么會寫這樣的垃圾代碼。這實際上意味著我還在學習中。如果我看到我以前的代碼,覺得它看上去非常偉大,那么說明我并沒有提高。

那么,我們怎么才能從壞的代碼中學到東西呢?

你閱讀的壞代碼越多,那么你就越擅長發(fā)現(xiàn)壞的代碼

當你在學習和搜索例子的時候,你會發(fā)現(xiàn)和使用大量不能工作的代碼。請記住,僅僅因為它不適合你的情況,并不能說明它就是壞的代碼。學習如何讓它工作能夠使得你變得更優(yōu)秀。

你怎么知道它是壞的代碼?

人們喜歡批評。閱讀評論,如果你看到很多“WTF(什么玩意)”,那么可能你看到的正是壞的代碼,試著指出為什么不好的原因。不要只留下“這代碼真 爛”這樣的評論。不要裝得你好像懂得壞代碼的所有需求,要知道,總有一個它之所以被這樣寫的正當理由。如果你知道它為什么是壞代碼的原因,那么不妨留下一 個有建設(shè)性的評論?;蛘?hellip;…

讓它變成好的代碼

放一個能讓代碼變得更好的pull請求。修正語法,使用更好的方法,添加注釋或修改縮進:這些都是改進代碼的偉大方式。加一個為什么你推薦改變代碼的解釋。

我發(fā)現(xiàn)當我?guī)椭鷦e人學習的時候能學到更多。如果我認為我理解了一個新的主題,那么我會找個人來試著向他解釋,這能讓我更深刻地理解和記住它,并且讓我快速發(fā)現(xiàn)我是否寫了壞的代碼。

回報

記住開放源代碼在你參與進去的時候效果***。代碼更改在大多數(shù)項目中都是受歡迎的,但是有很多出力的方法。

測試開源代碼和文件錯誤報告;幫助完成文檔集;寫教程和如何做的例子;參加對話——或者僅僅只是幫助傳播。每一件事都能帶來改變,并且越多的人參與進來越好!

資源

這里有一些可以幫助你開始的鏈接。有些我自己用過,有些我還沒來得及深入了解。如果你發(fā)現(xiàn)一些有用的東西——或者這篇文章中有什么需要改正的地方,請不要猶豫和我們分享。

 

責任編輯:王雪燕 來源: 碼農(nóng)網(wǎng)
相關(guān)推薦

2014-10-13 10:36:15

程序員職場價值技巧

2021-06-02 05:47:32

程序員編程開發(fā)

2014-07-23 09:55:11

程序員

2016-04-20 09:39:33

程序員提高開發(fā)技能

2015-07-20 09:21:19

程序員非程序員技能

2019-04-08 09:37:30

國內(nèi)程序員美國程序員996.ICU

2014-06-13 11:03:19

程序員

2015-07-01 09:10:20

2011-04-19 09:59:47

工資程序員

2015-07-20 10:11:08

程序員幸福

2015-03-13 09:45:27

2018-07-11 10:39:11

程序員效率工具

2011-08-11 14:52:59

2015-09-24 09:04:36

程序員

2011-09-18 09:42:08

程序員

2013-10-29 10:24:31

程序員漫畫

2015-06-05 14:15:13

程序員難升職

2014-08-15 11:07:09

程序員

2011-12-20 09:01:25

.NET

2012-09-06 10:30:58

點贊
收藏

51CTO技術(shù)棧公眾號