电子说
开open源
转眼间,已是毕业一年了,前些天朋友圈很多同学在刷毕业照的纪念日,回想起在校的时光,那是多么舒服,可以随心所欲做自己想做的事情,该玩的时候放肆玩,该学的时候认真学,美滋滋的生活啊~
我在大学的时候,就热爱开源这东西了,从网络中来的知识,喜欢反馈到网络中去,只是那时候很菜,没啥东西可玩的,但这个热爱我一直保持到了今天,也一直在努力~
是滴,我们今天来聊一聊我热爱的事情——开源
谈谈我的第一次
回想几年前,我刚学C语言的时候,觉得这东西很好玩,也很有兴趣,居然能让我操控电脑,虽然能做的东西不对,也就打印点字符在屏幕上,但这确实却让我喜欢上了它,也许以前没有接触过这些高大上的东西,也许以前玩电脑只会打游戏,也许是高中的时候曾有过一段时间热衷于刷机(那时候刷安卓机系统,知其然不知其所以然,但仍觉得有趣)。。。总之,接触了代码后,我确实喜欢上了它 ღ( ´・ᴗ・` )~
后面的学习过程中,接触了单片机,我发现这东西也很有趣,能做点小东西,做个时钟、小车、LED小蛮腰。。。那时候我是跟着师兄学习的,做硬件,抄电路、拉线,腐蚀pcb板子,然后再写代码,让我的大学生活充满了乐趣,毕竟我这种不听话的学生,压根就不喜欢上课,呆在实验室还比较好玩,而且认识了很多好基友,现在每天都在吹牛扯淡打游戏聊妹纸,生活也非常愉快。
在大学的时候,我一直在混论坛社区,也非常喜欢分享自己的学习、代码,总是写帖子,混着混着就成为了几个论坛的版主,虽然很水,但也乐在其中。说起来我是大二的时候就开始捣鼓这些的,当年是参加了电赛,然后分享了电赛的经验,还开源了代码,这是我第一次开源,然后从此以后就奠定了在论坛混的基础,哪段时间我发的帖子非常热门,以至于到每年的电赛前后,我的帖子依旧有人在回复。
退出论坛是进步的开始
后续,我就逐渐退出论坛了,原因有两点:
国内论坛质量太差。没有太多有技术含量的东西,到了后面基本是在水贴,感觉会浪费我太多的时间。
伸手党太多。等着喂饭的人太多了,实在是不好在论坛混。
在大三的时候,系统性学习了git相关的知识,虽说记不住太多东西,但是也已经够我日常使用了,那时候学习的操作系统,朱天龙大佬对我影响甚大(是我第一个follow的大佬),他一直在为开源做贡献,写的框架非常好,代码规范,在嵌入式领域中,这样子的大神并不多见,so,我得向大神学习,那时候就觉得,我以后也要写出点像样的代码,其实在我看来,退出论坛是进步的开始。
迈向开源社区
自此以后,就在开源的道路上越走越远,以前写的代码,几乎都使用了GPL开源协议,目的是为了让更多的人开源起来,然而比较尴尬的是,效果并不明显哈哈哈哈,国内(个人)开源的氛围确实很惨淡,这也是没办法的事情,一些很好的软件代码,几乎都是企业在维护,我曾经见过不少个人的开源项目(发布的时间是几年前的),到现在就几乎没有在GitHub上push的记录了,也就是说,这个开发者可能退出了开源社区,可能开发者事业上升了,成为了管理层,可能成家立业没有时间去维护了,但是就是这样子一个开源项目得不到维护了,这是很可惜的一件事情。我不知道我能坚持开源多久,但我希望我能一直做下去。
那我为什么会开源呢?很重要的是个人原因,我就一个行业内的小菜鸟,我开源的出发点绝大部分是为了自己,其次才是为社会贡献,毕竟我也有一个骚气的理想——“希望在赚钱的同时能为世界做一点点贡献,实在没有就算了”。
俗话说,没有目的的行为是坚持不久的,而我的热爱,我的目的,让我在开源的路上越走越好,也越走越舒服~
首先吧,开源的代码代表着别人能看到,就像你将你的内裤给别人看了,有漏洞,想要面子上过得去,那你就尽量别穿有洞的内裤是不是,那就会自觉地将代码写得更干净更标准一点,然后加点注释,如果有人给你的代码反馈了,那这就更有意义了,你会思考到用户是怎么去使用你的代码的,反馈的多了你就知道如何去将代码写得更好,更实用。其次,如果你写一个代码,那你就会去了解它的原理,然后也会参考现有代码的实现方式,阅读别人的源码,吸取他们的编程思想,这是一个非常好的学习方式,一般来说我的学习过程基本就是先看理论知识,弄懂了这个理论,再去看源码,而看源码的时候,我会查阅很多博客、书籍,在源码中更深入连接这个知识,这是我自认为更适合我自己的学习方式,而且也非常有效果。
GitHub是一个很好的展示面,如果你是要找工作的,我建议你一定要多写开源的代码,毕竟公司会很好奇你写的代码质量如何,光从面试实在看不出太多。所以很多公司会非常喜欢看你的开源项目,来评估一下你的代码质量如何。同样,如果你面试的时候告诉公司,“我有个开源项目,你们可以去看看”,这将是个不错的加分项,至少我是这么认为的,如果是我面试别人,我肯定会看一下。当然啦,做开源不是一两天就能完成的,临时抱佛脚是完全不可能的,还是需要坚持。
开源的代码,能建立起你个人的“品牌”,一个优质的开源项目,是提升你自己影响力的好方法,我并不是在自吹自擂哈,毕竟我是小菜鸟,认识我的人也不多,而且这两年以来我几乎都是小型讨论组聊技术,水群比较少,这种小讨论组能很有效提升自身的技术,毕竟能相互讨论的,都可以共同进步,而在大群聊多半是吹水居多,但是有好几次我在群里分享一些开源的代码,有些群友就发现原来他一直用的代码是我写的。哈哈哈哈,这我感觉还是很棒的,极大的满足感,如果你能写出一些很好的轮子,然后让成百上千的开发者依赖你写的代码,我想没有什么能比这更棒的事情了。
最后就是能够通过这些代码认识一些其他开发者,这些开发者是有很有水平的,毕竟能在开源上与你讨论代码的,早已不是伸手党了,这样子就能排除一部分伸手党。比如我就认识了一些大厂的人,有百度的、腾讯的、阿里的以及其他在业内排名靠前的公司的开发者等等,而且我写公众号,也认识了不少业内公众号的号主,也是时不时聊聊天,总之让我的人脉变的更广一点了,这对我来说也是很好的一件事情。而且能收到大神的点赞与认可,这是非常值得开心的事情,也让我更有自信写出更好的代码。
还有很重要的一点是,开源代码在一开始可能并不会受到大家的青睐,但是随着时间的推移,会有越来越多的开发者知道并尝试使用它,这是一个细水长流的东西,需要时间的打磨,越到后面能产生的效应也就越大,所以这总是非常nice的。
当然啦,我也非常希望自己的代码能为世界做一丢丢贡献,能点个灯也不错。
首先,相对于写公众号,我更喜欢写代码,我每天都在写代码,几乎从不间断,我最近一两年写的开源项目,我来说说消耗的时间吧,基本上是5个月能写出一个算是比较稳定的版本,一般一个开源项目最起码要提交上百次,才能算是逐步趋向稳定,后续就慢慢打磨咯,而上百次的提交,需要的时间几乎就是2-3个月,然后后面的就是不断打磨打磨,4-5个月就差不多是比较稳定的了,再往后就是修bug,迭代。当然这只是我的项目,那种大型的开源项目,需要的时间更久。
再者,自己写的代码跟现有的很多库相比,没有任何优势的,我也压根想不出优势在哪,但是做这种开源的事情,还是很有动力的,我愿意花时间去维护它,也愿意跟别人交流,我能收获的也很大,更多的是自身实力的提升,通过何种方式去提升自己的能力在我看来都不为过,而我选择的是通过开源项目去提升自己,仅因为它是一个开源项目,是我所热爱的,我愿意去维护它,愿意将我自己的时间花在这上面,不看抖音,偶尔打打游戏,小日子过得也是很舒服的,仅此而已,最后杰杰个人感觉国内嵌入式领域的开源精神远远不够,还有很长的路要走,只希望我能贡献一点力量,今天我发这个文章,其实也是想让大家如果有能力,可以为开源做点贡献。
那些看得见的进步
最直观的就是代码的水平上来了,以前的代码实在是不忍直视,放两张代码图片,分别是以前的代码与现在的代码,大家可以感受一下(图片可以向上滑动,点击图片还可以放大~):
全部0条评论
快来发表一下你的评论吧 !