天天看點

為什麼我要為開源社群做貢獻|你也應該這樣做

客座文章最初由Sysdig進階軟體工程師Marky Jackson(@markyjackson5)在Upshot上發表

我有一個艱難的童年。我從一個男孩的家轉移到另一個男孩的家,幾乎無法控制自己的生活。但我很堅強,也很聰明,我在很小的時候就獲得了自由,這讓我在十幾歲的時候就開始按照自己想要的方式生活。

孩子們需要穩定的環境才能長大,而我通過編寫代碼為新的現實奠定了基礎,進而彌補了寄養家庭所提供的不穩定性。我非常擅長電腦程式設計,我童年的逃避最終成為了我職業生涯的基石。在某種程度上,程式設計給了我一種掌控感,就像是我的生活中所缺少的。

靈感來自一位火箭科學家

我九歲的時候,我的世界徹底改變了。放學後,我去拜訪一位朋友,他的父親正在一台TRS-80電腦上玩遊戲。那是在家用電腦還很新奇的時候。TRS-80很原始,和你放在随身聽裡存儲的錄音帶一樣,但我被迷住了。

我朋友的父親在螢幕上炸坦克。

我記得我問,“你在玩什麼遊戲?”

“我還沒給它起過什麼名字呢,”他回答。我不明白他的意思。

他為什麼要叫它什麼呢?然後他解釋說,這是他自己用BASIC語言寫的。

我的大腦爆炸。我喜歡電腦遊戲,但我不知道人們可以自己開發遊戲。還沒等我反應過來,我朋友的爸爸就開始教我如何用BASIC程式設計了,于是我開始用錄音帶建立自己的軟體庫。

幾年後,我發現這個人以寫軟體為生。他在美國宇航局的噴氣推進實驗室工作,編寫了控制航天飛機反應控制系統的程式。這些推進器提供了姿态控制,這是航天器在軌道上調整和保持位置的方式。

“你爸爸是個火箭科學家?”幾年後,當我意識到他父親的工作時,我問我的朋友。我沒有意識到我在編碼方面受到了一個從事太空項目的人的指導。

我對開發的大膽嘗試

這門課一直持續到我上大學的時候,我已經是一個十足的電腦迷了。我在加州大學洛杉矶分校和麻省理工學院學習計算機科學,然後在茉莉多媒體出版社實習了14個月。

我在學校的時候認識了茉莉多媒體的CEO Jay Samit。他認為我有潛力,并提出每小時付給我15美元來寫軟體。那是一份相當不錯的薪水,我在公司的時間幫助我鞏固了我的技能,尤其是在C++方面,那是20世紀90年代中期最熱門的程式設計語言。

我認為在那裡的時間是我的天堂和地獄之年。主要是因為我參與的項目。

我剛剛結婚,我被配置設定到一個項目,我可以最好地描述為有一個兄弟會的氛圍。很好玩,但不适合家庭生活。然後我轉到另一個項目,叫做梵蒂岡内部。至少可以說,這是一種完全相反的遊戲。這是一張互動CD光牒,由彼得·烏斯季諾夫爵士叙述,并與天主教會合作制作。

這是一個美好的時間,在電腦工作。網際網路正在騰飛,我們正在尋找新的方式,将真人視訊和電腦圖像結合到多媒體故事中。

不幸的是,茉莉多媒體被公司買斷了,我隻好另找工作。

17年的朝九晚五

我的職業生涯開始了。我的技能非常搶手,我為一系列知名機構工作,包括一家保險公司、幾家銀行和國防部。我喜歡軟體工程師的工作,但我的勞動成果是公司的。我不像我朋友的父親那樣,把我置于他的庇護之下。

我不高興,但與此同時,我的嶽父一直告訴我,如果我百分之百地喜歡我的工作,我就會付錢在那裡工作。他告訴我,除了經濟上的回報,工作不需要提供任何東西,我的經曆也證明了他的觀點。

我的雇主在推銷産品,讓股東和董事會成員滿意。這就是世界的方式。為更大的善做貢獻是你在業餘時間或退休後做的事。辦公室裡沒有地方可以幫助别人,對吧?

在賽門鐵克和雅虎改變了我的看法

他們說你不會有第二次獲得幸福的機會,但當我開始在賽門鐵克工作,然後在雅虎工作時,就發生了這種情況。這兩家公司的管理者都是真正的信徒,他們把一切都投入到改善客戶和使用者的生活中。

大多數人不會花很多時間考慮網絡安全、電子商務、電子郵件和搜尋功能,但他們每天都在使用這些技術。如果我們的指尖沒有這些力量,我們會在哪裡呢?

我謙卑地意識到,我的工作又一次帶來了改變,重新喚起了最初吸引我從事軟體工程的沖動。但我想做更多。

在SysDig幫助其他使用Kubernetes叢集和容器化DevOps的程式員

從TRS-80上用BASIC語言編寫程式,到使用Kubernetes與基于雲的容器化DevOps環境一起工作,這是一條漫長的道路,而我現在就在使用Kubernetes。

我最近在Sysdig找到了一份系統工程師的工作。我們提供監視、故障排除、可見性和安全工具來捕獲、過濾和解碼系統調用和其他OS事件。

在Sysdig,我正在建構幫助其他開發人員簡化和保護他們的管道的工具。我感覺我終于要回饋社群的程式員了,他們張開雙臂歡迎我,幫助我在過去的幾十年裡建立了一個利潤豐厚的職業生涯。

通過Jenkins Prometheus和GitHub回饋

Sysdig利用開源工具來建構我們的商業産品。他們的基礎是基于開發人員社群的衆包智慧,是以我們将我們的工具重新釋出到開源生态系統中。

除了在Sysdig的日常工作之外,我還在GitHub維護Jenkins Prometheus插件的開源版本。此Jenkins附加元件是一個系統監視和警報工具,用于記錄和編譯實時端點資料,進而提供關于Jenkins伺服器的有價值的性能名額。

我沒怎麼多想這個插件。這是一個有趣的副業,就像我朋友的父親在我小時候開發的坦克遊戲一樣。然而,Jenkins有一個龐大的使用者群,成千上萬的公司使用這個平台來自動化他們的CI/CD管道。他們也在使用我的Jenkins Prometheus工具來監控他們的DevOps環境。

其中一家公司雇傭我來修正他們的Jenkins部署與我的插件的工作方式。這是一件大事,因為我的寵物項目在他們的全球營運中發揮了巨大的作用,我很自豪能幫助他們解決所有問題。那是我第一次意識到我的志願者工作的影響。

去年,我在舊金山DevOps World | Jenkins World的Jenkins/Jenkins X社群攤位工作時,一個完全陌生的人走過來,要求和我一起自拍。他在一家财富100強公司工作,這家公司使用我的Jenkins Prometheus插件從生産線上擷取資料。

那家夥吓壞了,說他的老闆不相信他沒有帶照片的證據就見過我。這是我的搖滾明星時刻。我以為我是一個匿名的程式員,這個來自世界上最著名的公司之一的家夥想和我合影。

開源可以改變世界

開源社群就是關于包容的。我們歡迎大家貢獻自己的力量,并對他們的辛勤工作表示感謝。來自世界各地的開發人員、編碼人員和工程師合作推進我們的行業,這種團結和歸屬感無人能及。

我們不隻是業餘愛好者。GitHub和其他開源項目建立了線上和真實世界的空間,IT專業人員可以在這裡分享他們的專業知識。例如,CloudBees的從業人員為Jenkins提供了世界上最好的商業實作,他們是Jenkins開源版本的定期貢獻者。

就像我在雅虎和賽門鐵克的同僚一樣,他們是真正的信徒,希望每個人都能從Jenkins的CI/CD流水線自動化工具中受益,而不管他們的财力如何。這就是開源的美妙之處。我們把人們聚集在一起,我們正在消除技術障礙。我們改變世界是為了樂趣和利潤。

指導下一代程式員

回饋的最好部分是幫助下一代程式員。幾個星期前,一位年輕的同僚請求我資助他成為Kubernetes社群的一員。我很自豪能幫助他加入我們的小組,并被他的熱情和承諾所感動。畢竟,我們沒有人會是以而得到報酬。

我還輔導了谷歌Summer of Code的一名學生,他能夠将自己的實習轉化為一份全職工作。為了表達他的感激之情,他現在是開源社群的一員,并幫助其他年輕的程式員建立成功的職業生涯,這在履歷上看起來也很不錯。

保持開源社群的發展需要大量的時間和精力。我們大多數人都是下班後工作來完成工作,我們需要幫助——很多的幫助。人們認為你必須是一個專業的程式員才能加入我們,但事實并非如此。參加的方式有很多。你可以送出錯誤報告、編寫技術文檔,甚至贊助應用程式。提供支援的方式有很多。問問你能做什麼。

我繞了一圈。這個從火箭科學家那裡學會了程式設計的男孩現在是一名進階軟體工程師,他正在幫助年輕人學習程式設計的訣竅,以便他們能夠挑戰計算機科學的邊界。

我朋友的父親對我産生了積極的影響,改變了我的生活。全世界無數人都在通過為開源社群做出貢獻而産生影響。今天你如何改變世界?

點選文末<<閱讀原文>>進入網頁了解更多。