為什麼一定要參與開源專案 你需要一些理由!
開發人員到底為什麼甘願為開源專案貢獻辛苦編寫出的程式碼?
我們不久之前就此進行了一次調查。受訪者們給出的答案非常簡單,當然不同受眾的反饋資訊也有所區別。我們可以比較寬泛地將貢獻者們劃分為兩種基本型別,雙方的核心差異在於其初始驅動因素:
-
已經在辦公或者環境中使用特定開源軟體的軟體開發人員與專家。
-
目前尚未使用相關應用程式,但卻出於某些理由而有意願加入開源軟體開發專案的其他人士。
下面是我們彙總出的七大主要理由:
功能特性
好的,這一條非常明確,而且同時適用於前面提到的兩類開源專案參與者。作為開發人員,大家可能出於對某種新型功能特性的需要或者修改某項功能以使其符合自身 需求的目的加入貢獻者隊伍。此外,對現有功能進行強化或者修復某項漏洞也是重要原因之一。最終,大家需要從貢獻當中獲得成果。
“也許開發人員著手進行開源專案貢獻的最常見的原因就是因為他們需要藉此獲取自己需要的成果。他們所使用的軟體可能存在漏洞或者缺少某種功能特性,而對於一部分這類問題、他們可能恰好幫得上忙。”
經驗
明智的開發人員會意識到經驗中蘊含的巨大力量——我所指的並不是長年累月的開發經歷,而是具備廣度與深度的接觸與學習機會。沒有任何一個人能夠將程式設計世界中 的全部知識融匯在自己的腦袋裡頭。很多人喜愛徜徉在全新程式碼庫當中所帶來的挑戰感受,也很清楚只有這樣不斷學習才能提高自己的技術水平。
“經驗。在這裡你可能會用到一些在日常工作中永遠無法涉及到的技能與知識。”
社交理由
從心理層面講,我們每個人都屬於社會性動物,而開源社群正是一個容納社交關係網的良好處所。大家能夠在這裡遇到才能出眾的同好、經驗豐富的開發人員並結交到 很多新朋友。程式設計師的生活有時候顯得過於孤寂,開源社群作為技術大家庭足以溫暖我們冰冷的內心。很明顯,為開源專案作出貢獻正是一種擴充交際圈並與對方分 享知識交流經驗的絕佳途徑。
“你有機會與一些真正出色的成員共事。開源社群允許你同朋友以及同事圈之外的人們建立起深厚的友誼。”
自由(免費)
為開源專案作貢獻所帶來的自由感體現在兩個方面。其一,我們能夠將自己的聰明才智轉化為真正傑出的作品,而且在這裡我們可以自由自在地使用並分享各種靈感。其二,貨幣與價格的概念都是人為創造出來的——而生命中真正美好的東西都跟金錢沒什麼關係。
在另一方面,開源當中還蘊含著另一種自由——我們可以隨意根據自己的喜好對軟體作出改動。沒有任何強制性的規則或者管理機制束縛我們完成任務的具體方式。
俗話說得好,重要的是自由而不是免費。
“我們為自己熱情所寄託的開源專案作出貢獻,而且在此過程中學習新的知識,沒有任何人能來決定我們應該如何工作!”
成就感
出色完成工作所帶來的成就感實在是種難以言喻的寶貴體驗。對於一部分人群來說,成就感正是生活當中做人做事的首要原因。那麼還有什麼更好的選擇能比加入開源專案帶來更為廣闊的施展平臺?為開源專案作出貢獻能夠讓你體會到從無到有構建成果的滿足感,並因此得到承認與感激。
“我之所以這麼做,是因為我喜歡完成任務的感覺。我希望通過實際行動證明我對這個世界是有所貢獻的。”
個人聲譽
必須承認的是,擁有開源軟體貢獻經歷能夠讓我們的簡歷變得光彩照人。不過除此之外,大家還能夠僅憑開源貢獻在軟體社群當中積累起人氣與聲望。你可能會被列入 到某款軟體的開發人員名單,而朋友們恰好都在使用這款軟體。由此帶來的激勵效果要遠遠超過每天枯燥完成的業務應用程式碼行。這種感覺很贊,真的很贊。
“我愛技術挑戰以及解決難題帶來的榮譽。我愛自己釋出且飽含著個人程式設計技巧體現的程式碼成果。”
本文譯自warewolf.io,有整理改動。
相關文章
- 為什麼一定要參與開源專案,你需要一些理由!
- 為什麼你應該參與到開源專案中
- 我參與 Seata 開源專案的一些感悟
- 如何去參與一個開源專案
- 趣說開源|為什麼要參與到開源社群中?
- 這12個最新AI開源專案,你一定要收下AI
- 你為什麼一定要學Python?Python
- 如何開始參與開源專案?
- 參與開源專案很難嗎?
- 參加開源專案的一些經驗和收穫
- 5W1H聊開源之Why——為什麼要參與開源?
- 10個你能參與並學習的Java開源專案Java
- 資訊化為什麼需要專案管理?(轉)專案管理
- Elasticsearch:是什麼?你為什麼需要他?Elasticsearch
- 你所參與的開發專案是死亡之旅(Death March)麼?
- 為什麼一定要讓你的孩子學程式設計?程式設計
- 如何為你的開源專案釋出一個版本
- 19個安全專家一定要關注的開源 GitHub 專案Github
- 從28萬個開源專案中,我們能夠學到一些什麼?
- 為什麼你應該為開源做設計
- 京東二面:為什麼需要分散式ID?你專案中是怎麼做的?分散式
- 一個檔案的開源專案,開啟你的開源之旅
- 微服務為什麼一定要用docker微服務Docker
- 微服務為什麼一定要上Docker?微服務Docker
- 為什麼越來越少的開源專案使用 GPL 協議協議
- 我為什麼把失敗的創業專案開源了創業
- 尋找在 GitHub 上參與開源專案的方法Github
- [譯] 為什麼你需要關注一下 FlutterFlutter
- 開源與標準:為什麼對待專利如何不同?
- 一文告訴你什麼是NAT,為什麼需要NAT
- 完整的設計一個專案需要什麼?
- 孩子們,為什麼我建議你一定要會介面測試?
- 討論:你的專案為什麼不迭代?
- 一個開源專案維護者的筆記:為什麼我關閉 PR筆記
- 運作開源專案的一些經驗
- 為什麼公司需要精益生產專案輔導?
- 為什麼你的專案要花這麼長時間?
- 你為什麼使用 Linux 和開源軟體?Linux