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