从事IT行业有这么久了,谈不上是什么大牛,却也因为兴趣也捣腾了不少东西。从大学时代的Asp.net,到实验室Kinect,到Unity3D虚拟现实,毕业后做iOS开发,自己抽时间也在看看Android,前端,后端。捣腾了这么多,最近自己发现活得好累。期间曾做过一些开源尝试,不过都一一死掉。细细数来,行业里面无名小卒一个。本文从在自身角度出发反思。
重复造轮子
曾经听过前辈说过:“在开发中,你现在遇到的问题,别人早就已经遇到了。如果为了研究可以自己搞,如果考虑进度,还是去google吧!”
平时开发,相信大部分程序员以项目为单位开发吧,如果说通俗一点,其实大部分程序员都是业务工程师,很少去涉及到一些底层的知识。就拿iOS开发
为例,平时开发中涉及到底层,比如runloop,runtime,unix信号,其实很少,用得最多的也就是用一些runtime常用的。
个人觉得如果技术不能为业务服务,那么这项技术基本上就没什么价值了。于是拿来主义成了软件开发中很重要的一个环节。毕竟公司不是给你来研究代码的,而是要你产生商业价值的,所以是否要自己重复造轮子就很值得考究。
onevcat有一篇文章中写道他的同事
所以在实际开发中肯定要用第三方的轮子。由于现在的轮子已经能够满足需求了,所以自己就没必要去重复造。有时候真的很反感业内某些人的做法。比如一个图片浏览的第三方,已经被许许多多开源过了,轮子已经很多了。还在造相同的轮子,更为让人不爽的是,好多人是直接把别人的代码改一改就变成自己的开源项目了。
如果要造轮子要不在原有的轮子做比较大的改进,要不就新建项目解决另外的需求。没必要为了
start
而造重复的轮子。好多人是为了开源而开源,看看最近github
上iOS最近的行情就知道。
时间
如果你和我一样,国庆节也没有停息下来,反而在网上都会撸一撸代码的,那么就应该会有一定的时间来做开源项目的事情了。但是大部分同学是没有这种激情的,自己这样也是有特定背景的。
说来说去其实我们能够利用的时间就上班和放假。上班的首要任务是完成项目开发需求。自己在公司也时常忙里偷闲搞搞自己的东西,可是这样的效果比较零散。最好的也就是下班之后如果认为都完成就可以玩玩自己项目了。
利用周末的时间来写代码,这并不是一件好事情。但是时间就那没多,有舍必有得,所以还是得有自己衡量。有些人是技术宅,而有些人是做不下来的。这样的同学遇到了不少。
之前自己也没有把时间规划好,公司的项目完成之后马上又来新需求,所以上班时间做自己的开源项目有些不现实,但是回到家里再写代码也很不好。反正及时在断断续续的过程中,开源代码就永远死在了文件夹里面。
总结
好吧,瞎写了几百字,算是对开源路途上的一个反省吧!。对自己而言我感觉可以从简单的一些方面开始自己的开源之旅。大致如下:
- 1.先从给项目提
Bug
开始 - 2.checkout 代码看每个版本的变化
- 3.关注项目主要人员的博客
- 4.分析项目源码
- 5.尝试pull resquest
- ...
具体可以参考这篇文章如何参与一个GitHub开源项目?