闲谈:我为什么热爱开源。

hello!公众号的兄弟姐妹们大家好,我们今天来聊一聊我热爱的事情——开源

回想几年前,我刚学C语言的时候,觉得这东西很好玩,也很有兴趣,居然能让我操控电脑,虽然能做的东西不对,也就打印点字符在屏幕上,但这确实却让我喜欢上了它,也许以前没有接触过这些高大上的东西,也许以前玩电脑只会打游戏,也许是高中的时候曾有过一段时间热衷于刷机(那时候刷安卓机系统,知其然不知其所以然,但仍觉得有趣)。。。总之,接触了代码后,我确实喜欢上了它 ღ( ´・ᴗ・` )~

后面的学习过程中,接触了单片机,我发现这东西也很有趣,能做点小东西,做个时钟、小车、LED小蛮腰。。。那时候我是跟着师兄学习的,做硬件,抄电路、拉线,腐蚀pcb板子,然后再写代码,让我的大学生活充满了乐趣,毕竟我这种不听话的学生,压根就不喜欢上课,呆在实验室还比较好玩,而且认识了很多好基友,现在每天都在吹牛扯淡打游戏聊妹纸,生活也非常愉快。。。

在大学的时候,我一直在混论坛社区,也非常喜欢分享自己的学习、代码,总是写帖子,混着混着就成为了几个论坛的版主,虽然很水,但也乐在其中。说起来我是大二的时候就开始捣鼓这些的,当年是参加了电赛,然后分享了电赛的经验,还开源了代码,这是我第一次开源,然后从此以后就奠定了在论坛混的基础,哪段时间我发的帖子非常热门,以至于到每年的电赛前后,我的帖子依旧有人在回复。

后续,我就逐渐退出论坛了,原因有两点:

  1. 国内论坛质量太差。没有太多有技术含量的东西,到了后面基本是在水贴,感觉会浪费我太多的时间。

  2. 伸手党太多。等着喂饭的人太多了,实在是不好在论坛混。

在大三的时候,系统性学习了git相关的知识,虽说记不住太多东西,但是也已经够我日常使用了,那时候学习的操作系统,朱天龙大佬对我影响甚大(是我第一个follow的大佬),他一直在为开源做贡献,写的框架非常好,代码规范,在嵌入式领域中,这样子的大神并不多见,so,我得向大神学习,那时候就觉得,我以后也要写出点像样的代码。。。

自此以后,就走在了开源的道路上,以前写的代码,几乎都使用了GPL开源协议,目的是为了让更多的人开源起来,然而比较尴尬的是,效果并不明显哈哈哈哈,国内(个人)开源的氛围确实很惨淡,这也是没办法的事情,一些很好的软件代码,几乎都是企业在维护,我曾经见过不少个人的开源项目(发布的时间是几年前的),到现在就几乎没有在GitHub上push的记录了,也就是说,这个开发者可能退出了开源社区,可能开发者事业上升了,成为了管理层,可能成家立业没有时间去维护了,但是就是这样子一个开源项目得不到维护了,这是很可惜的一件事情。。。我不知道我能坚持开源多久,但我希望我能一直做下去

那我为什么会开源呢?很重要的是个人原因,我就一个行业内的小菜鸟,我开源的出发点绝大部分是为了自己,其次才是为社会贡献,毕竟我也有一个骚气的理想——“希望在赚钱的同时能为世界做一点点贡献,实在没有就算了”。

我喜欢开源的原因无非以下几点:

  • 首先吧,开源的代码代表着别人能看到,就像你将你的内裤给别人看了,有漏洞,想要面子上过得去,那你就尽量别穿有洞的内裤是不是,那就会自觉地将代码写得更干净更标准一点,然后加点注释,如果有人给你的代码反馈了,那这就更有意义了,你会思考到用户是怎么去使用你的代码的,反馈的多了你就知道如何去将代码写得更好,更实用。其次,如果你写一个代码,那你就会去了解它的原理,然后也会参考现有代码的实现方式,阅读别人的源码,吸取他们的编程思想,这是一个非常好的学习方式,一般来说我的学习过程基本就是先看理论知识,弄懂了这个理论,再去看源码,而看源码的时候,我会查阅很多博客、书籍,在源码中更深入连接这个知识,这是我自认为更适合我自己的学习方式,而且也非常有效果。

  • GitHub是一个很好的展示面,如果你是要找工作的,我建议你一定要多写开源的代码,毕竟公司会很好奇你写的代码质量如何,光从面试实在看不出太多。所以很多公司会非常喜欢看你的开源项目,来评估一下你的代码质量如何。同样,如果你面试的时候告诉公司,“我有个开源项目,你们可以去看看”,这将是个不错的加分项,至少我是这么认为的,如果是我面试别人,我肯定会看一下。当然啦,做开源不是一两天就能完成的,临时抱佛脚是完全不可能的,还是需要坚持

  • 开源的代码,能建立起你个人的“品牌”,一个优质的开源项目,是提升你自己影响力的好方法,我并不是在自吹自擂哈,毕竟我是小菜鸟,认识我的人也不多,而且这两年以来我几乎都是小型讨论组聊技术,水群比较少,这种小讨论组能很有效提升自身的技术,毕竟能相互讨论的,都可以共同进步,而在大群聊多半是吹水居多,但是有好几次我在群里分享一些开源的代码,有些群友就发现原来他一直用的代码是我写的。哈哈哈哈,这我感觉还是很棒的,极大的满足感,如果你能写出一些很好的轮子,然后让成百上千的开发者依赖你写的代码,我想没有什么能比这更棒的事情了

  • 最后就是能够通过这些代码认识一些其他开发者,这些开发者是有很有水平的,毕竟能在开源上与你讨论代码的,早已不是伸手党了,这样子就能排除一部分伸手党。比如我就认识了一些大厂的人,有百度的、腾讯的、阿里的以及其他在业内排名靠前的公司的开发者等等,而且我写公众号,也认识了不少业内公众号的号主,也是时不时聊聊天,总之让我的人脉变的更广一点了,这对我来说也是很好的一件事情。而且能收到大神的点赞与认可,这是非常值得开心的事情,也让我更有自信写出更好的代码。

  • 还有很重要的一点是,开源代码在一开始可能并不会受到大家的青睐,但是随着时间的推移,会有越来越多的开发者知道并尝试使用它,这是一个细水长流的东西,需要时间的打磨,越到后面能产生的效应也就越大,所以这总是非常nice的。

  • 当然啦,我也非常希望自己的代码能为世界做一丢丢贡献,能点个灯也不错。

当然,相对于写公众号,我更喜欢写代码,我每天都在写代码,几乎从不间断,我最近一两年写的开源项目,我来说说消耗的时间吧,基本上是5个月能写出一个算是比较稳定的版本,一般一个开源项目最起码要提交上百次,才能算是逐步趋向稳定,后续就慢慢打磨咯,而上百次的提交,需要的时间几乎就是2-3个月,然后后面的就是不断打磨打磨,4-5个月就差不多是比较稳定的了,再往后就是修bug,迭代。。。当然这只是我的项目,那种大型的开源项目,需要的时间更久。。。


 上一篇
关于Linux进程你所需要知道的一切都在这里!! 关于Linux进程你所需要知道的一切都在这里!!
进程简单了解进程在进入正题之前,我们不打算像其他书籍一样,讲一大堆原理,而是希望想通过实验现象来引导读者了解进程相关的知识,紧接着再来补充进程相关的知识点。 首先在虚拟机中打开一个终端(相信读者能阅读到此处,就已经了解什么是终端了,而由于作
2020-06-04
下一篇 
【libuv高效编程】libuv学习超详细教程10 —— libuv stream 流句柄解读 【libuv高效编程】libuv学习超详细教程10 —— libuv stream 流句柄解读
libuv系列文章 【libuv高效编程】libuv学习超详细教程1——libuv的编译与安装 【libuv高效编程】libuv学习超详细教程2——libuv框架初窥 【libuv高效编程】libuv学习超详细教程3——libuv事件循
2020-04-24
  目录