開open源
轉(zhuǎn)眼間,已是畢業(yè)一年了,前些天朋友圈很多同學(xué)在刷畢業(yè)照的紀(jì)念日,回想起在校的時(shí)光,那是多么舒服,可以隨心所欲做自己想做的事情,該玩的時(shí)候放肆玩,該學(xué)的時(shí)候認(rèn)真學(xué),美滋滋的生活啊~
我在大學(xué)的時(shí)候,就熱愛開源這東西了,從網(wǎng)絡(luò)中來(lái)的知識(shí),喜歡反饋到網(wǎng)絡(luò)中去,只是那時(shí)候很菜,沒啥東西可玩的,但這個(gè)熱愛我一直保持到了今天,也一直在努力~
是滴,我們今天來(lái)聊一聊我熱愛的事情——開源
談?wù)勎业牡谝淮?/p>
回想幾年前,我剛學(xué)C語(yǔ)言的時(shí)候,覺得這東西很好玩,也很有興趣,居然能讓我操控電腦,雖然能做的東西不對(duì),也就打印點(diǎn)字符在屏幕上,但這確實(shí)卻讓我喜歡上了它,也許以前沒有接觸過(guò)這些高大上的東西,也許以前玩電腦只會(huì)打游戲,也許是高中的時(shí)候曾有過(guò)一段時(shí)間熱衷于刷機(jī)(那時(shí)候刷安卓機(jī)系統(tǒng),知其然不知其所以然,但仍覺得有趣)。。。總之,接觸了代碼后,我確實(shí)喜歡上了它 ?( ′???` )~
后面的學(xué)習(xí)過(guò)程中,接觸了單片機(jī),我發(fā)現(xiàn)這東西也很有趣,能做點(diǎn)小東西,做個(gè)時(shí)鐘、小車、LED小蠻腰。。。那時(shí)候我是跟著師兄學(xué)習(xí)的,做硬件,抄電路、拉線,腐蝕pcb板子,然后再寫代碼,讓我的大學(xué)生活充滿了樂趣,畢竟我這種不聽話的學(xué)生,壓根就不喜歡上課,呆在實(shí)驗(yàn)室還比較好玩,而且認(rèn)識(shí)了很多好基友,現(xiàn)在每天都在吹牛扯淡打游戲聊妹紙,生活也非常愉快。
在大學(xué)的時(shí)候,我一直在混論壇社區(qū),也非常喜歡分享自己的學(xué)習(xí)、代碼,總是寫帖子,混著混著就成為了幾個(gè)論壇的版主,雖然很水,但也樂在其中。說(shuō)起來(lái)我是大二的時(shí)候就開始搗鼓這些的,當(dāng)年是參加了電賽,然后分享了電賽的經(jīng)驗(yàn),還開源了代碼,這是我第一次開源,然后從此以后就奠定了在論壇混的基礎(chǔ),哪段時(shí)間我發(fā)的帖子非常熱門,以至于到每年的電賽前后,我的帖子依舊有人在回復(fù)。
退出論壇是進(jìn)步的開始
后續(xù),我就逐漸退出論壇了,原因有兩點(diǎn):
國(guó)內(nèi)論壇質(zhì)量太差。沒有太多有技術(shù)含量的東西,到了后面基本是在水貼,感覺會(huì)浪費(fèi)我太多的時(shí)間。
伸手黨太多。等著喂飯的人太多了,實(shí)在是不好在論壇混。
在大三的時(shí)候,系統(tǒng)性學(xué)習(xí)了git相關(guān)的知識(shí),雖說(shuō)記不住太多東西,但是也已經(jīng)夠我日常使用了,那時(shí)候?qū)W習(xí)的操作系統(tǒng),朱天龍大佬對(duì)我影響甚大(是我第一個(gè)follow的大佬),他一直在為開源做貢獻(xiàn),寫的框架非常好,代碼規(guī)范,在嵌入式領(lǐng)域中,這樣子的大神并不多見,so,我得向大神學(xué)習(xí),那時(shí)候就覺得,我以后也要寫出點(diǎn)像樣的代碼,其實(shí)在我看來(lái),退出論壇是進(jìn)步的開始。
邁向開源社區(qū)
自此以后,就在開源的道路上越走越遠(yuǎn),以前寫的代碼,幾乎都使用了GPL開源協(xié)議,目的是為了讓更多的人開源起來(lái),然而比較尷尬的是,效果并不明顯哈哈哈哈,國(guó)內(nèi)(個(gè)人)開源的氛圍確實(shí)很慘淡,這也是沒辦法的事情,一些很好的軟件代碼,幾乎都是企業(yè)在維護(hù),我曾經(jīng)見過(guò)不少個(gè)人的開源項(xiàng)目(發(fā)布的時(shí)間是幾年前的),到現(xiàn)在就幾乎沒有在GitHub上push的記錄了,也就是說(shuō),這個(gè)開發(fā)者可能退出了開源社區(qū),可能開發(fā)者事業(yè)上升了,成為了管理層,可能成家立業(yè)沒有時(shí)間去維護(hù)了,但是就是這樣子一個(gè)開源項(xiàng)目得不到維護(hù)了,這是很可惜的一件事情。我不知道我能堅(jiān)持開源多久,但我希望我能一直做下去。
那我為什么會(huì)開源呢?很重要的是個(gè)人原因,我就一個(gè)行業(yè)內(nèi)的小菜鳥,我開源的出發(fā)點(diǎn)絕大部分是為了自己,其次才是為社會(huì)貢獻(xiàn),畢竟我也有一個(gè)騷氣的理想——“希望在賺錢的同時(shí)能為世界做一點(diǎn)點(diǎn)貢獻(xiàn),實(shí)在沒有就算了”。
俗話說(shuō),沒有目的的行為是堅(jiān)持不久的,而我的熱愛,我的目的,讓我在開源的路上越走越好,也越走越舒服~
首先吧,開源的代碼代表著別人能看到,就像你將你的內(nèi)褲給別人看了,有漏洞,想要面子上過(guò)得去,那你就盡量別穿有洞的內(nèi)褲是不是,那就會(huì)自覺地將代碼寫得更干凈更標(biāo)準(zhǔn)一點(diǎn),然后加點(diǎn)注釋,如果有人給你的代碼反饋了,那這就更有意義了,你會(huì)思考到用戶是怎么去使用你的代碼的,反饋的多了你就知道如何去將代碼寫得更好,更實(shí)用。其次,如果你寫一個(gè)代碼,那你就會(huì)去了解它的原理,然后也會(huì)參考現(xiàn)有代碼的實(shí)現(xiàn)方式,閱讀別人的源碼,吸取他們的編程思想,這是一個(gè)非常好的學(xué)習(xí)方式,一般來(lái)說(shuō)我的學(xué)習(xí)過(guò)程基本就是先看理論知識(shí),弄懂了這個(gè)理論,再去看源碼,而看源碼的時(shí)候,我會(huì)查閱很多博客、書籍,在源碼中更深入連接這個(gè)知識(shí),這是我自認(rèn)為更適合我自己的學(xué)習(xí)方式,而且也非常有效果。
GitHub是一個(gè)很好的展示面,如果你是要找工作的,我建議你一定要多寫開源的代碼,畢竟公司會(huì)很好奇你寫的代碼質(zhì)量如何,光從面試實(shí)在看不出太多。所以很多公司會(huì)非常喜歡看你的開源項(xiàng)目,來(lái)評(píng)估一下你的代碼質(zhì)量如何。同樣,如果你面試的時(shí)候告訴公司,“我有個(gè)開源項(xiàng)目,你們可以去看看”,這將是個(gè)不錯(cuò)的加分項(xiàng),至少我是這么認(rèn)為的,如果是我面試別人,我肯定會(huì)看一下。當(dāng)然啦,做開源不是一兩天就能完成的,臨時(shí)抱佛腳是完全不可能的,還是需要堅(jiān)持。
開源的代碼,能建立起你個(gè)人的“品牌”,一個(gè)優(yōu)質(zhì)的開源項(xiàng)目,是提升你自己影響力的好方法,我并不是在自吹自擂哈,畢竟我是小菜鳥,認(rèn)識(shí)我的人也不多,而且這兩年以來(lái)我?guī)缀醵际切⌒陀懻摻M聊技術(shù),水群比較少,這種小討論組能很有效提升自身的技術(shù),畢竟能相互討論的,都可以共同進(jìn)步,而在大群聊多半是吹水居多,但是有好幾次我在群里分享一些開源的代碼,有些群友就發(fā)現(xiàn)原來(lái)他一直用的代碼是我寫的。哈哈哈哈,這我感覺還是很棒的,極大的滿足感,如果你能寫出一些很好的輪子,然后讓成百上千的開發(fā)者依賴你寫的代碼,我想沒有什么能比這更棒的事情了。
最后就是能夠通過(guò)這些代碼認(rèn)識(shí)一些其他開發(fā)者,這些開發(fā)者是有很有水平的,畢竟能在開源上與你討論代碼的,早已不是伸手黨了,這樣子就能排除一部分伸手黨。比如我就認(rèn)識(shí)了一些大廠的人,有百度的、騰訊的、阿里的以及其他在業(yè)內(nèi)排名靠前的公司的開發(fā)者等等,而且我寫公眾號(hào),也認(rèn)識(shí)了不少業(yè)內(nèi)公眾號(hào)的號(hào)主,也是時(shí)不時(shí)聊聊天,總之讓我的人脈變的更廣一點(diǎn)了,這對(duì)我來(lái)說(shuō)也是很好的一件事情。而且能收到大神的點(diǎn)贊與認(rèn)可,這是非常值得開心的事情,也讓我更有自信寫出更好的代碼。
還有很重要的一點(diǎn)是,開源代碼在一開始可能并不會(huì)受到大家的青睞,但是隨著時(shí)間的推移,會(huì)有越來(lái)越多的開發(fā)者知道并嘗試使用它,這是一個(gè)細(xì)水長(zhǎng)流的東西,需要時(shí)間的打磨,越到后面能產(chǎn)生的效應(yīng)也就越大,所以這總是非常nice的。
當(dāng)然啦,我也非常希望自己的代碼能為世界做一丟丟貢獻(xiàn),能點(diǎn)個(gè)燈也不錯(cuò)。
首先,相對(duì)于寫公眾號(hào),我更喜歡寫代碼,我每天都在寫代碼,幾乎從不間斷,我最近一兩年寫的開源項(xiàng)目,我來(lái)說(shuō)說(shuō)消耗的時(shí)間吧,基本上是5個(gè)月能寫出一個(gè)算是比較穩(wěn)定的版本,一般一個(gè)開源項(xiàng)目最起碼要提交上百次,才能算是逐步趨向穩(wěn)定,后續(xù)就慢慢打磨咯,而上百次的提交,需要的時(shí)間幾乎就是2-3個(gè)月,然后后面的就是不斷打磨打磨,4-5個(gè)月就差不多是比較穩(wěn)定的了,再往后就是修bug,迭代。當(dāng)然這只是我的項(xiàng)目,那種大型的開源項(xiàng)目,需要的時(shí)間更久。
再者,自己寫的代碼跟現(xiàn)有的很多庫(kù)相比,沒有任何優(yōu)勢(shì)的,我也壓根想不出優(yōu)勢(shì)在哪,但是做這種開源的事情,還是很有動(dòng)力的,我愿意花時(shí)間去維護(hù)它,也愿意跟別人交流,我能收獲的也很大,更多的是自身實(shí)力的提升,通過(guò)何種方式去提升自己的能力在我看來(lái)都不為過(guò),而我選擇的是通過(guò)開源項(xiàng)目去提升自己,僅因?yàn)樗且粋€(gè)開源項(xiàng)目,是我所熱愛的,我愿意去維護(hù)它,愿意將我自己的時(shí)間花在這上面,不看抖音,偶爾打打游戲,小日子過(guò)得也是很舒服的,僅此而已,最后杰杰個(gè)人感覺國(guó)內(nèi)嵌入式領(lǐng)域的開源精神遠(yuǎn)遠(yuǎn)不夠,還有很長(zhǎng)的路要走,只希望我能貢獻(xiàn)一點(diǎn)力量,今天我發(fā)這個(gè)文章,其實(shí)也是想讓大家如果有能力,可以為開源做點(diǎn)貢獻(xiàn)。
那些看得見的進(jìn)步
最直觀的就是代碼的水平上來(lái)了,以前的代碼實(shí)在是不忍直視,放兩張代碼圖片,分別是以前的代碼與現(xiàn)在的代碼,大家可以感受一下(圖片可以向上滑動(dòng),點(diǎn)擊圖片還可以放大~):
-
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7613瀏覽量
137247 -
開源
+關(guān)注
關(guān)注
3文章
3380瀏覽量
42603
原文標(biāo)題:閑談:我為什么熱愛開源
文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論