現在非常多的人都想涉足開源的,但不知道從什麼地方入手。這裡有幾種方法可以幫幫忙,即使你缺乏信心,但仍然能夠讓你挑起技術大樑。
開源軟體改變了計算乃至整個世界,也許你也想為這樣一件事做出貢獻。但不幸的是,很多人認為參與這樣的專案具有很高的門檻。我經常聽到人們說,他們很樂意貢獻但不能的原因有三個:
「我不是乙個很優秀的程式設計師。」
「我沒有太多的時間投入進去。」
「我不知道什麼專案值得去努力。」
從開源**的新手中觀察到最有害的想法是,想要做一名優秀的有貢獻的開源程式設計人員必須具有極高的天賦,這顯然是不正確的。當然,還有那些在開源世界誰被認為是搖滾明星的,他們可能確實是天才程式設計師。然而,我們中的絕大多數都不是,但我們仍然為改變世界做著自己的貢獻。
開始聽在開源**的一切涉都及到其他人。如果你想加入乙個團隊,這意味著了解社會,了解它是如何工作的。進入乙個專案中,並說:「這是我認為這個專案應該做的事」,這通常不視為一件好事。有些專案可能會喜歡這樣的想法,但是如果專案已經執行了一段時間,那這種態度被接受的可能性就很小。聽是要知道這個專案需要以什麼樣加入方式為最佳。
1.加入郵件列表
對於許多專案,郵件列表都是關於專案開發溝通的主要渠道。在大型專案中,有許多郵件列表可供選擇。例如,postgresql的專案有不少於12個面向使用者的列表和6個開發人員的郵件列表。我建議主要從面向使用者的列表和核心開發者的郵件列表開始聽。
2.關注部落格
由核心開發人員維護的部落格往往會給出在將來的版本當中出現的一些資訊,以及什麼時候能夠得到那些資訊等等。
3.加入乙個irc頻道
很多開源專案都有專門的網際網路中繼聊天(irc)的渠道,開發人員和使用者掛出問題以及討論專案的進展等等。
入門工作
**是任何開源專案的核心,但編寫**並不是幫助入門的唯一途徑。**以及周圍**系統的維護通常都容易被忽視,這些地方不僅能修正錯誤而且能夠創新功能,可以從這些地方入手來參與乙個專案。比如,參加一場程式設計大賽:
4.診斷錯誤
診斷和篩選乙個錯誤可以幫助開發人員節省更多的時間來找出問題的細節。如果使用者反映到,「當我做x工作的時候軟體不工作」,那麼這時候你應該檢查這個問題的細節。是否這個問題是重複的,如果是你可不可以建立一組解決這類問題的步驟,將此類問題縮小。即使你不知道是什麼原因造成的問題,你可以把問題的範圍縮小從而減少其他人員解決問題的時間。
5.關閉修復的錯誤
錯誤往往是固定在**庫的,清理這些東西可能非常的耗費時間,但是對整個專案非常有價值。檢查專案發布的更改日誌,看看錯誤是否是固定的,如果是可固定的,注意版本號並將其關閉。
處理**
所有有經驗的程式設計師都可以在整個專案的**當中起到很大的作用,你不必認為只有天賦異稟的程式設計師才能對專案起到作用。每個專案都有自己的工作流程,所以在提交**之前詢問清楚如何做。當你修改**時,請確保你作為專案當中的一員,並保持你的**風格和**庫的其他**是相匹配。例如android apk漏洞檢測工具:
6.測試乙個測試版或發布乙個候選版
任何專案執行在多個平台都可能遇到各種各樣的相容性問題。當測試版或候選版發布後,該專案負責人希望它會由很多不同的人在不同的平台進行測試,你可以負責這個工作來幫助專案能夠順利的完成。
7.修正bug
這通常都是**工作者剛開始想從事的工作,這很簡單:在interesting-sounding系統中找到錯誤並且嘗試修復**,並檢查**的放置是否合適。同時新增測試的套件來測試那些固定的**。有些專案需要bug修正並且測試。
8.編寫乙個測試
大多數專案都有乙個測試套件的測試**,但很難想象乙個測試套件不能附加給它更多的測試。使用類似於
safe.ijiami
或者c的測試工具來檢測到未通過測試套件的源**領域,然後新增乙個測試套件來掩蓋它。
9.無聲的編譯器警告
構建許多以c為基礎的專案往往會在螢幕上出現奇怪的編譯器警告標誌。這些警告通常是沒有問題的指向的,這時你應該檢查是否該**實際上有隱藏的錯誤。
當你開發過的**你感到疑惑時,別人也可能在同樣的地方感到疑惑。此時你應該記錄這樣的**同時提交乙個補丁。
使用文件
文件在乙個專案中往往是遭到冷遇的一部分。文件可能是以熟悉專案的角度來編寫的,而不是以乙個剛接觸專案的角度。因此很多專案的試用文件並沒有被重視起來。
11.建立乙個示例
沒有乙個專案有太多的示例,無論是web api,還是乙個gui應用程式都沒有使用的較好的示例,也沒有可以更明顯和迅速解釋正確使用的程式的示例。對於乙個api或庫,建立乙個使用的示例程式,這甚至可以從你寫的**提取出來。因此我覺得建立乙個使用的示例是非常必要的。
成為程式設計高手的軍規
1.大學生活豐富多彩,會令你一生都難忘,但難忘有很多種,你可以學了很多東西而難忘,也會因為什麼都沒學到而難忘!2.計算機專業是乙個很枯燥的專業,但即來之 則安之,只要你努力學,也會發現其中的樂趣的。3.記住 萬丈高樓平地起!基礎很重要,尤其是專業基礎課,只有打好基礎才能學得更深。4.語言是基礎,很重...
成為程式設計高手的基礎素養
成為程式設計高手的基礎素養 世界上並沒有成為高手的捷徑,但一些基本原則是可以遵循的。1 紮實的基礎 資料結構 離散數學 編譯原理,這些是所有電腦科學的基礎,如果不掌握它們,很難寫出高水平的程式。程式人人都會寫,但當你發現寫到一定程度很難再提高的時候,就應該想想是不是要回過頭來學學這些最基本的理論。不...
11種方法助你成為開源程式設計能手
現在非常多的人都想涉足開源的,但不知道從什麼地方入手。這裡有幾種方法可以幫幫忙,即使你缺乏信心,你但仍然能夠讓你挑起技術大樑。開源軟體改變了計算乃至整個世界,也許你也想為這樣一件事做出貢獻。但不幸的是,很多人認為參與這樣的專案具有很高的門檻。我經常聽到人們說,他們很樂意貢獻但不能的原因有三個 我從開...