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