我现在是一名独立开发者,1979年,今年已经42了。
自2001年参加工作以来一直从事软件开发行业,到今年已有20年了。软件开发中的各种职位:程序员、项目组长、项目经理、部门经理、技术总监、公司副总,甚至甲方CIO都任职过;软件开发中的各个工种:开发、测试、实施顾问、销售也工作过。
2013年突然意识到我的打工之路已经走到了尽头,所以下来自己写软件产品,到现在已经写了6-7个软件产品,收入比我打工的时候赚的多些,但是跟国内大厂动辄百万年薪还是没法比。不过咱也有自知之明:
一是学历不如,大厂员工清一色985、211的高材生,我只是一介专科生;
二是精力不如,大厂员工可以996甚至007,我朝九晚五都觉得是束缚;
三是年龄不如,大厂底层员工过了35岁就不招了甚至直接辞退,我都42了,投的简历HR看都不会看;
以我目前的年龄和对打工的态度,如果再去投简历就是石沉大海、自取其辱,所以我基本上也死了那份心了。当然除了上面的几点劣势,我这种也有自己的优势:
一是工作时间、地点相对自由。没有朝九晚五这些硬性的时间约束,只要有网,到哪儿都能办公。平时基本在家,有事情了就忙一下,没事想干嘛就干嘛,孩子寒暑假想去哪玩根本不用请假,什么KPI考核见鬼去吧,自己对自己的时间负责;
二是基本实现半被动收入。经过几年时间的开发与完善,我现在的软件系统基本实现了下载、试用、教程、购买、授权全自动化,正常情况不需要人工参与,基本上会上网的用户都能自己搞定,说白了就是天天睡觉也会有收入。当然也不完全是一劳永逸,软件系统还需要维护升级,还需要处理一些客户咨询,所以我把它称为半被动收入。后面我计划再结合软件开发智能客服,如果把客户咨询也能用软件系统来替代,就基本可以成为被动收入了。毕竟理财、房租也都是要维护和打理的。
有人看到这里,会问?不是说C#和Java吗,说这么多的你自己干嘛呢?
我说这些,是给后面的内容做铺垫。因为国内很多码农,过了40岁都会面临像我现在一样的问题:
再找开发类工作竞争力急剧下降,可能都不只是降薪的问题,而是还有没有人要你的问题;换行业就要从头开始,辛苦是一定的,收入肯定不如做开发;
离退休还有20年,而且可能还得延时退休,正是上有老下有小、家庭中流砥柱、甚至背负巨额房贷的时候,如果失业影响的就不只是自己了;
如果到了40岁再来考虑这些,可能就有点晚了。我之前也回答过类似的问题,有网友看了说很羡慕,但是你们可曾想过:我是在35岁的时候意识到了这个问题,经过2年时间的摸索与积累选择了正确的道路,基本达到了收支平衡;又经过了2年时间的完善改进让整个系统实现了半自动化,我可以从繁重的客户咨询、授权等无脑操作中解脱出来,有时间有精力优化系统;再经过2年的时间优化与改造,让它变得更加容易维护;后面可能还需要几年的时间,才能让我的系统变得更省力,更具拓展性。所以方向性的事情都需要提前谋划与布局,你现在的决定会影响你5年后甚至10年后的生活。
所以我觉得任何一个过了30岁的码农,都应该提前布局,利用空暇时间自己单干,给自己的未来多创造一份可能。
自己单干有两种路径:一是做项目,二是做产品。
做项目来钱快,但是不稳定,比较累,一个人很难接大项目,但是大项目风险也高,人多了成本就高,验收和收款比较难;
做产品见效慢,但一旦做成就会比较稳定。
我个人建议是先从小项目做起,看看有没有把项目产品化的可能,逐渐积累自己的经验,最终还是要做产品。
然而如果你想做自己一个软件产品,你会发现,Java的生态优势立刻就没了。
之前我有发表过一篇文章,单纯就说C#与Java历史和当下的环境和后面一个粗浅的判断,说得比较浅,引起了很多Java粉们的吐槽,无外乎就说Java的生态如何的好,是C#无法比拟的。在当下,确实Java比较容易找工作,因为企业应用用Java比较多。比如航天信息的税控系统就是Java开发的,说实话,太烂了,如果不是必须用,立马会卸了它。
但是如果你跳出企业应用,来到个人市场,你会发现个人用Java几乎很难生存。
当你想做一款付费软件产品时你会发现,真正能让用户产生付费意愿的只有两种:一是生产力工具,二是游戏。其他像我们常用的那些社交、购物、聊天、拍照等等的,都不是个人开发者能够玩得起的。
所谓生产力工具,就是提高工作效率,这是PC端的天下,PC端的大屏和键鼠是手机端那种戳来戳去的方式无可比拟的。而PC端windows系统占据了90%的市场份额,C#开发的Winform程序又好又快,Java在windows下运行动辄就占几百M的内存,真的就是垃圾。
游戏毫无疑问现在是Unity的天下,unity用的也是c#。
剩下的一点空间可以留给Java粉们来发挥,我个人是不大看好。
你可以继续替Java站岗,在Java生态下吹嘘它有多么的伟大,但一旦脱离了那个环境,你会发现自己是那么的弱小,原来你认为的强大都是别人的,它从来都不属于你。
当你像我一样大龄,需要独自解决个人生活问题的时候,C#是可以给你续命的。比如说我现在想做一个自动选股软件,采集数据、技术分析、图形显示、模拟盈亏等等,考虑到性能和开发效率,肯定首选C#而不是Java。个人工具C#实用,这就是它的优势。
如果你想成为一名独立开发者,开发自己的软件产品,关注我可以了解到更多的干货。