李建盛:大家好!我分享的題目看起來有點學術化,理解起來很容易,要想學習一個東西,尤其是開源,進去學就好了。
關于我
X-Lab開放實驗室是上海同濟大學跟華東師范大學聯合辦的一個創新實驗室,我是開源社教育工作組負責人,我自己寫博客。
為什么我會研究這個題目?
我把自己定義為開源信徒,我們去了解開源的歷史,會發現從黑客到OpenStack提出來,這一段歷史中可以看到道德倫理或跟商業技術上相互平衡的過程,也會看到有的黑客對錢比較敏感,以及加上我個人的經歷。
2018年,TODO Group+ The New Stack聯合起來做開源治理的調查。
紅帽企業開源調查2019,調查100多個公司是跟紅帽關系比較好的,占據69%的數字,這些企業都擁抱開源。
GitHub 2018年發布的報告,中國開發者從2014年-2017年,已經迅速攀升到全球第二大開發者,如果用國民基數或從業者角度說,軟件從業者非常多。
組織隊伍,前十的隊伍從微軟到一些高校,中國高校是為0的,國內大廠也是不怎么樣的,跟這個比,20都進不來。
比較這些數據主要想證明一個理論,現在的開源產業,無論是企業界還是從業人數,都產生主流的一個形勢。
個人經歷。
我們組織一些線下活動,照片上這些人提出一個最嚴重的問題,你說開源,我們參加不進去。當然原因有很多。
我們在做一個功夫編程的平臺,也遇到學習的技能要么脫節,要么過時,在企業里隔三差五會看一看理想中的職位值多少錢,現在看到很多職位描述,不管是傳統的行業還是新興的互聯網公司,基本后面的項目都是參與過什么開源項目優先、有代碼提交優先,要不然把GitHub帳號給我等,開源的技能成為衡量能力非常重要的選項。
舉例,目前最火爆的項目——Kubernetes。
兩張截圖:
1.排名前十公司,Google和紅帽兩家已經占到70%-80%,華為、微軟占據剩下部分。
2.按國家分,如圖黃色、橙色是中國。
今天從四個角度給大家講一下:
一、名詞解釋
二、開源的性質
三、技能形成
四、如何實踐
一、名詞解釋
什么是技能形成?
技能解釋為個體運用已有的知識經驗,通過練習而形成的一定的動作方式或智力活動方式。
現代企業的主要構成就是這些擁有技能的人,比如編程技能、系統管理技能、人際關系協調技能、商業業務技能等等。
企業擁有一定數量所需要技能的人才,我們稱之為技能形成。
做中學(Doing by Learning)
做中學是由美國著名的教育學家約翰·杜威在《民主與教育》提出。
實踐。比如你要學騎自行車,不能天天學理論,要騎自行車摔兩跤,如果學游泳的話,就要進泳池。編程技能是非常注重實踐的一個領域。
學徒制。學徒制并沒有丟失,雖然本土的學徒制由于一些原因有一些斷代,但是在歐美或日本做汽車的行業,有些技能、技巧去作出一個東西,是不可言說的,用語言或文字是很難描述出來的,必須師父親自去做,云服務器,徒弟去學的過程。
什么是貢獻中學習?
志愿者文化。在開源社區里倡導的是貢獻的文化,顯而易見的就會涉及到志愿者。我們經常做一些活動,其實志愿者就是在你沒有經驗和足夠能力情況下,用時間和自己一些學習的態度去換取技能,這叫志愿者。
其實在很多情況下,開源項目是由這些志愿者去完成的,當然現在這個事情越來越少了。
要在開源里做貢獻,是否需要一位導師。
二、開源的性質
開源不止是代碼或不是一個靜態實踐的技術,開源面從問題的提出到最終實際解決,以及協作的方式,很多溝通,最后如何做決策,當遇到嚴重沖突時如何做到平衡,如何解決,社區是否更加重要,總而言之,大家提到的Open Source更多背后是生產軟件的流程。
從技術的掌握出發。
“開源”這個詞匯經過二十年的發展,今年已經21歲了,已經逐漸在各種各樣的詮釋下大家都承認一個標準的東西,即開源是開發者創新最好的一種方式。
理解代碼,需要找到現實的實際的意義。一個人不可能無緣無故去看代碼,或為了看代碼而看代碼。代碼所有人都能看到,所以它才是最終的決勝者,評估一個開發者的好壞,優秀或拙劣,最終體現在代碼上。如果這個人要寫的代碼和要達到的意思不一致,就是很爛的程序員。