尚學堂【官網】-西安Java培訓|c++培訓|Android培訓|安卓培訓|java視頻教程|軟件工程師|-西安雁塔尚學堂計算機學校
常見問題  尚學堂首頁新聞公告常見問題

開源(Github)對程序員的影響

www.mdxlln.live 發布人:java  |  來自:本站  |  發布時間:2017-03-22 14:04:06  |  點擊次數:235542

到了2017年,我們已經生活在開源的世界里了,進入了軟件開源的時代。

下面兩件事,可以讓你真切地感受到開源時代的到來:

微軟曾經是閉源私有軟件的典型代表、反對開源的圣斗士,如今已經全心全意地擁抱開源軟件,成立了 .Net 基金會(紅帽是其中的一員) 并且加入 Linux 基金會。.Net 現在已經作為開源項目進行開發。

GitHub 已經成為了一個奇特的社交網絡,它把問題跟蹤(issue tracking)和分布式代碼控制捆綁在一起。

對那些主要是擁有閉源軟件背景的軟件開發者來說,他們還沒真正了解到開源時代的到來。開源對他們來說就,等同于“用你的空閑時間來進行免費工作”。

但是,對我們這些使用十年時間來建立一個價值10億美元開源軟件公司的人來說,我們并不是使用空余時間來免費為開源軟件工作。而且,為開源工作的好處和結果是顯而易見的:你建立的聲譽是你自己的,而且你可以在換工作時把它帶到新的公司里。GitHub 是一個社交網絡,你所有的提交和對任何技術的研究、交流這些資產都是屬于你自己的,它和你正在工作的公司沒任何關系。

聰明人會利用 GitHub 的這個優點來建立自己的資產:向他們日常使用的語言和框架進行提交補丁、問題(issue)、評論。比如,TypeScript、.NET、Redux。

他們同樣會盡可能地提倡并安排他們的工作以開源的形式來完成,即使他們的提交顯示都是私有的提交。

GitHub 是一個很好的均衡器。你雖然不能從印度找到一份澳大利亞的工作,但你能夠在印度利用 GitHub 與澳大利亞人進行工作。

在過去的十年里,從紅帽公司獲取一個工作機會的方式已經顯而易見了:你只需與紅帽公司的工程師一起合作開發他們的一些開源項目,然后只提交一些有價值的提交并且得到他們的認可,你就會得到這份工作。否則不會提供工作機會給你。

現在紅帽公司依然提供同樣的求職方式給求職者,不過僅限于技術職位。如今是開源的時代,這種求職方式在世界各地開始流行起來了。

在 2 月中旬的一次訪談中,Linux 和 git 的發明者 Linus Torvalds (他在 Github 中擁有將近 5 萬粉絲)說到:

你需要為開源項目提交大量的小補丁,直到項目的維護者信任你,到了那時你就會成為一個在這個項目中值得信賴的人,而不僅僅是一個提交補丁的人。

在信任網絡中,你的聲譽代表這你的地位。當你換公司時,你之前的聲譽就會有所丟失并且減弱。如果你生活在一個小鎮里并且在那待了很久,那么那里的人都會對你有所了解。但如果你去了其他國家生活,無論你去哪個國家,你之前的聲譽都已經歸零了。你最終會到一個沒人了解你的地方,更糟糕的是,那里沒人知道誰了解你。

你可能是第一次、第二次,或者更糟糕的是你已經是第三次這樣丟失了與你的信任網絡的聯系。除非你已經通過在研討會或者大型會議進行演講建立個人品牌,否則你與其他人共事時建立的信任,以及提交到企業內部倉庫的代碼都會不復存在。

但是,如果你的工作是在 GitHub 上完成的,它就不會消失。它是可以看得見的。你之前與別人建立的信任網絡的聯系是可以從 GitHub 里直接看的到的。

在 GitHub 開源社區中將要發生的一件事就是,學生、剛畢業的學以及移民者這些相對弱勢的群體可以利用 GitHub 這個優勢到澳大利亞找份工作。

并且 GitHub 會改變開發者社區現有的樣貌。一些之前比較有權威的開發者將會突然地發現他們的信任網絡被破壞了。因為在開源中有個原則叫精英領導(meritocracy?)——擁有最好想法的人勝出、擁有提多提交的人勝出、擁有最多通過測試的人勝出、擁有最佳實現的人勝出,等等。

這不是一個完美的原則(沒有任何東西是完美的)。并且會讓你很難成為一個可以一起共事的好同事。在紅帽公司里,我們解雇過一些明星工程師(rock star engineers ),僅僅因為他們不能和其他同事和睦相處。而那些“其他工程師”會經常在 GitHub 里與其他代碼提交者進行交流。

GitHub 不是簡單地作為一個代碼倉庫和原始提交者的成員列表, 一些人把這看成是稻草人謬誤( strawman arguments)。GitHub 是一個社交網絡。我覺得:

重要的不是你提交到 GitHub 上的代碼,是其他人對你 GitHub 上的代碼的評論

那是你可以隨身攜帶的聲譽。并且在之后的12到24個月里,是否在 GitHub 里為開源項目貢獻代碼會有明顯的區別。就好像有郵件和沒有郵件(現在所有人都有郵件了)、有手機與沒手機(現在任何人都有手機)的區別。到最后,大多數人將會以開源的方式來進行工作,并且會基于各種因素提供相對公平的競爭環境。

但如今,程序員的職業發展空間已經被 GitHub 打亂了。

當前文:開源(Github)對程序員的影響
上一頁:【西安尚學堂】Android內存優化
下一頁:volatile和synchronized區別
在線報名(*為必填項)
2019刘佰温白小姐一马一肖