工作过的小伙伴都知道,程序员的大部分时间都是在增删改查,或者调用组件,真正需要研发和创新的项目实在是太少了。尤其是入职外包公司,那简直和流水线没有什么区别。
说白了,程序员也是一颗螺丝钉。
简单的工作重复做,可能会让你变成工匠,但是绝不会让你变成专家。如果你的编程功力不能持续提升,那么早晚都会遭遇职业生涯的天花板,甚至连 35 岁中年危机都无法避免。
正是由于日常工作的重复性,所以大部分程序员不得不利用业余时间来提升自己,比如看书看博客看视频,或者手撕开源代码,或者手撸开源项目。
如果你觉得前面两种方式比较无聊,实在缺乏耐心,那么可以试试开源项目,这是一个非常不错的选择。
在写开源项目的过程中,你会遇到很多问题,把这些问题通通解决掉,就能获得很大提升。
你的开源项目也不用很大,只要切中一个很小的需求就行,比如:
-
C/C++ 程序员可以写一个嵌入式的 mini 数据库,类似 SQLite 那种;
-
Web 前端程序员可以写一个图片轮播组件,同时支持多种动画效果;
-
PHP 程序员可以写一个数据库操作类,解决手敲 SQL 语句的麻烦。
刚开始你可能一脸懵逼,不知道从何下手。没关系,尽管查资料,问同事,或者分析别人代码,慢慢地,你就会找到切入点,并掌握不同方案的优缺点。
几个月以后,你可能就会完成第一个版本,并在自己的 Demo 中测试通过。虽然这个版本比较粗糙,健壮性和兼容性都不好,但是那又怎么样,至少你已经起步了,在路上了。
不要嫌弃自己代码丑陋,把它开源到 Github 上,接受网友们的评价和建议,慢慢积累人气吧。
接下来,就是漫长的迭代时间了,你需要修复各种 Bug,完善每个细节,同时书写 API 文档,让网友们开始使用。
在这个过程中,网友们会不断给你反馈建议,甚至帮助你补充代码,慢慢地你就会积累一些人气,认识一些大佬,提升一些逼格。
如此坚持几年以后,你的项目就会比较健壮和优雅,在某个细分领域成为响当当的存在,甚至会有一些公司会在生产环境中使用。
开源项目是一种基础组件,它的目标是被众多程序员应用到生产环境中,所以每个细节都应该追求极致,既要减少资源消耗,还要保证运行效率,同时又不能失去易用性。
求追极致是一种很高的要求,你需要学习很多基础理论和底层知识,并把它们应用到你的代码中,这对编程功力的提升是非常巨大的。
等你的开源项目成功了,你也就封神了,至少在你所研究的领域是无出其右了。
这种成就和光环,是多少程序员梦寐以求的,它闪闪发光,终生受益!
如果你的面试官恰好听说或者用过你的开源项目,那基本就是闭着眼过了,而且待遇还非常丰厚。此时再谈学历和经验,那都是吹毛求疵了,你的实力说明了一切。
总之,写开源项目有很多好处,包括但不限于:
-
提升技术实力(众目睽睽之下,你不好意思写垃圾代码)
-
扩大社交圈子(GitHub 是全球最大的程序员交友平台)
-
积累个人名气和光环(这是一种无形的资产,随时都能发光)
-
方便求职和跳槽(简历中出现优秀的开源项目,每个面试官都会眼前一亮)
-
带来经济收入(包括拿高薪、接私活、提供维护和支持等)
本文链接:http://task.lmcjl.com/news/7311.html