聊一聊程序员如何增加收入
亲爱的读者朋友,你好。我是高性能服务器开发公众号的作者,范蠡。一些老的读者应该知道,我有个同名 QQ 群叫高性能服务器开发(研究)群,目前两个群加在一起,也快五千人了吧。很多群友不止一次的想了解我的收入情况,粗略的算了一下,今年一年到目前为止,大概有一百万。然而,这种程度的收入在上海这样的城市,依旧是买不起房,解决不了生活的大问题,比上不足比下有余吧。
咱公众号的大多数读者应该都是从事程序开发或者相关的,你或许在北京上海深圳,或许在南京武汉广州,或许在郑州合肥,或许在其他一些二线三线城市。大多数程序员其实是单纯而又朴实的,晚上可能在骂老板抠门、产品经理SB,但明天早上依然会早起去挤地铁,认真写每一行代码,因为高堂明镜悲白发,朝如青丝暮成雪,一天天老去的父母,需要我们赡养;"笑看妻子愁何在,漫卷诗书喜欲狂”,一天天长大的孩子,需要我们去养育。哪个程序员曾经不是不为五斗米而折腰的男子,如今却不得过着李白洗尿布一样的生活?所以,尽管有时候我们有千万种不愿意,但还是不得说这言不由衷的话,做着自己不想做的事情——因为我们缺钱。
今天,我们就和大家讨论一下程序员如何提高收入,当然,由于个人经历经验有限,难免是一家之言,文中内容仅供参考,欢迎温和地提出意见和建议。
程序员们的主要收入来源
这个标题其实不言自明的,程序员们,当然对于大多数上班族,工作是收入的主要来源。看到群里很多学生讨论 offer 薪资的时候,动辄就月薪 30 k 甚至如 45 k以及更高的,虽然不排除确实存在这一类的 SP 或者 SSP offer。但是大多数人会是这类高收入者或者幸运儿吗?月薪 30 k 意味着什么?意味着在一个小城市两口之家半年多的生活费,意味着在中国广大农村一家两三年的生活成本。老板都不是傻子,你能干多少活才会给你多少钱,那么 30 k 需要干多少活呢?其他的城市我不熟悉,以我所在的上海为例吧,对于一般学校毕业的应届毕业生月薪 5 k 起步,硕士会稍微高上 3~5 k,工作两年月薪在 12k~16k 之间,工作四五年月薪在 20 k ~26 k 之间,达到 30 k 及以上,一般需要工作七八年以上。如果较短工作年限,需要达到较高收入水平的,都是技术非常好或者能力特别强的。我工作三多年时,在一家做公司做音视频实时通讯技术,月薪 26 k。但是工作内容和工作量就很大,当时负责 pc 、安卓、iOS、mac 四个端的 C++ sdk 开发和维护,同时负责这几个端的 Java sdk 开发,每天需要处理多家客户使用这些 sdk 报的各种问题。每天晚上九点下班,被项目经理看到,她会说,你今天下班真早啊。我印象深刻的是,那一年春节,从年二十五到正月初六每天早上九点,我需要准时参加公司的项目会议,汇报项目状况和进度,每天二十四小时要随时响应。
我们大多人毕业学校一般、学历也一般,而且也不是特别努力,本身存在"先天不足”。高中或者大学不努力,毕业后本来起点就比名校或者努力的同学差上一截,这一截可能不是 0.1 到 0.11 的距离,可能是 0.1 到 10 的距离。哈佛大学有句校训是这样写的:今天不走,明天要跑。这句话是很有道理的,你从前不努力的阿喀琉斯之踵,可能在短期内对你没多少影响,但是有一天生活的压力,会逼着你补救之,补救的日子里你会觉得异常辛苦。例如人到中年,上有老小,加班加点为了那点微薄的薪资,在行业或者公司不景气时,被公司无情的降薪或者裁员。然后偷偷地抹掉眼泪,整理简历,为下一份微不足道的薪水继续努力。
中国有句老话叫,失之东隅,收之桑榆。意思是说,如果你失去了早上的朝阳,那么你一定要及时抓住晚上的夕阳,它是你最后弥补的机会。既然工资是主要收入来源,那么提高职场竞争力是加薪升职的唯一途径。而对于程序员来说就是提高技术能力和开阔视野。不管你是什么原因入了此行,既然选择了这一行,凑合或者破罐子破摔在这一行是行不通的,互联网行业的特点就是变化迅速,你需要不断学习去适应新的变化。你可能并不喜欢这份职业,这就如同一场婚姻一样,你可能对你的对象不满意,但是大多数人都没有推倒重来(离婚)的勇气和资本。如果你不尝试去与你这个不满意的爱人去培养感情,你的心情只会更加恶心,生活只会更糟。所以,从现在努力,好好培养对技术的热情还来得及,这就是所谓的先结婚再恋爱。不要盲目相信网上所谓程序员 35 岁危机,真正的技术大神是不会有啥危机的。我个人的经历告诉我,30 岁之前的每个月工资多几千块少几千块,对后来的生活真的没多大影响。对于开发人员来说,影响你后期收入却是人到中年的技术实力。我自做公众号以来,因为我的号(高性能服务器开发)是以技术为主,也认识了许许多多的技术号主,但是很多号的号主其实并不是做技术的,因为我本人是个技术痴迷者,所以我对那些技术实力一般的号主都不怎么感冒,反之我会主动约一些技术实力非常好的号主线下见面。在我的了解中,这些坚持做好技术的号主,工资收入都不低,年薪基本都在 50 W+,甚至有到 150 W。当然,技术实力好的,还有许多其他的优势,例如不用担心被裁员、不用担心找不到好工作,而且可能利用自己的技术去轻松地赚一些钱(下文会详细介绍)。
说了这么多,我建议亲爱的读者,你,如果是从事开发的,那么一定要热爱技术,并努力把它学好,因为它是你吃饭的家伙。吃饭的家伙都不重视,那还能指望你有多大的提高?虽然一些人从技术成功转型了,也赚了不少钱,但是这些都是个例,不具有普适性,你觉得你会成为那个幸运的个例吗?
有读者可能会问,那如何学好技术呢?我个人觉得是肯对自己投资。很多人会愿意为自己一趟旅游、一顿大餐花许多钱,却为自己买本书、买个课程、报个学习班的几十或几百块钱而纠结半天。消费行为分为投资型消费和纯消费型消费,工作的早些年,你一定要肯为自己多一些投资型消费。例如,我月薪不过万的时候,我会为见一个技术前辈一面,从上海跑到北京,转好几次车;会在得到 App 上花 1500 块钱约某个技术大神去咖啡店聊上两个小时。很多高人或行业前辈,我们在现实生活中可能永远都没机会与他们接触,但是现在的知识付费平台,给我们提供了很多机会。或许高人前辈的一句话,一个建议或者思路就能让你受益无穷。这样的例子自古有之,我这里就不举例了。
要对自己负责,学习和提高是自己的事情。我发现现在很多的人,出了社会之后还是学生时代被老师教的思维。学校里面老师教你是因为你交了并不便宜的学费给学校,学校给老师发工资和补助。但是到了社会上,大家都很忙,别人凭什么要给你无偿提供帮助或者解决问题;别人提供了一份学习资料,你自己没保存,过几天别人删掉了,你又腆着脸让别人再分享一次;别人给你解决问题,你却说你不方便,让别人等一会儿。或者是你觉得工作太忙、孩子吵得太凶没时间学习等等。这些都是理由和借口,都没把自己的学习和提高当自己的事情。
提高技术,先解决思想上的问题,再解决行动上的问题,这样就容易的多了。其实现实生活中大多数人都不努力,或者貌似很努力,所以你只要稍微真努力一点,你就能超过 90% 的人了。不信你可以试一试。两年前加入高性能服务器开发群的,并认真听我的建议付诸行动的群友,现在年薪都 50 W 了吧。
程序员的副业
程序员有哪些副业?很多人说去接外包,但是我并不建议你去接各种外包,尤其是那些需求不是很明确或者金额达到上千的外包项目。由于外包项目一般很难有明确的需求,尤其是和非技术出身的甲方人员对接时,很多功能的界限和定义都是不明确的,例如为一个即时通讯软件做一个"发送消息功能”,这个"发送消息功能"可多可少,可轻可重。发文字发表情比较简单,发图片就不容易做了,而发语音视频尤其是发实时的语音和视频的工作的量是需要一个专门的专业团队至少花上好几个月的。需求不明确的结果就导致容易出现反复沟通和返工,这会耗费你大量的时间和精力,必然会影响你正常的工作和生活,尤其是对于本职工作本来就忙碌的程序员们来说。而最后可能因为甲方的不满意,必然导致不会按期按量付款。当然,现在很多外包平台正在改善这一状况,如码云、开源中国社区、程序员客栈,不过还是存在不少问题。
除了外包,我们再来聊一聊知识付费,知识付费主要是程序员给各大知识付费站点或平台录制或者写作技术教程。文字系列的知识付费课程,国内做的比较好的有极客时间、GitChat 和 掘金社区。由于商业的运作,很多课程的标题和内容比较容易吸引用户购买,当然内容质量也是有保证的。如果你在某些技术方面有积累或者独到之处,可以尝试在这些平台上写一些专栏课程。但是,很多人看到别人的专栏动辄几千甚至上万的购买量,加上定价都在两位数,觉得作者一定通过课程赚到一笔不少的收入。其实也未必,一般的课程在开售前都有一定的基础数量,比如某个课程可能还没开始出售,就有 100 的购买量,这类纯粹是为了吸引用户去购买的。另外,很多课程都会被平台拿去做一些商业活动,如打折优惠、会员免费学习等等,通过这个形式购买的收入,平台会拿去不少一部分,分到每个作者的并不多。最后,剩下的的终于结算给作者了,平台又会为作者缴纳不少的个人所得税(纳税光荣!纳税光荣!纳税光荣!),最后到作者这里就剩下十之三四了。
视频型的知识付费平台,以慕课网和网易云课堂为例,当然由于平台对你录制的课程有一定的质量要求,你需要花费不少时间和精力去撰写课程教案和 PPT,提前练习,保证录制的视频讲解流畅、技术娴熟、知识专业。这类对一般的程序员属于比较重量级的副业了,有一定的难度。
再来说语音型的知识付费平台,例如得到、知乎 live。这里以知乎 live 为例,在知乎举办一场 live,为了保证质量,平台需要你进行资格认证,例如你说你在某某大公司任职,那需要你提交在该公司的工牌、身份证件或者劳动合同;你说你是某方面的专家,你需要有那一方面的相关证书,另外需要缴纳 500 块钱的保证金,这个用途是,如果你不能按期按质举办你的 live,那么这个保证金将不会退还给你。知乎 live 是我比较喜欢的一种形式,主要是比较省事,举办一次,每个月都会一点收入(同样需要缴税),我在知乎上举办过三场开发方面的 live,一年多时间,所有收入加起来大概有一万块钱左右。如果你在大城市生活和工作,可能觉得这没多少钱(我就是),但是如果你在像郑州、合肥这样的二三线城市做 IT,由于这类城市程序员的收入本身就不高,一万块钱绝对至少抵得上一两个月的收入,可以让生活负担小一点。所以建议在这类城市工作的读者可以尝试一下。
再来说做公众号。做公众号赚钱吗?这不能一概而论。公众号的收入主要有三个来源,来源一是公众号的流量主,来源二是原创文章的打赏,来源三是公众号的广告收入。腾讯微信公众号是一个非常不错重视和保护原创作者权益的平台。新注册的公众号,现在只要粉丝达到 500 就可以开通流量主,流量主开通之后微信会在公众号文章的中间(文中)或者底部插入广告,当用户看到这个广告或者点击这些广告,公众号主就会有一点收入,收入多少与用户阅读这个广告的次数(曝光量)和点击量有关。我一般不开公众号文中广告,那样对读者阅读体验不好。当然,这种流量主的收入基本很少,不过如果你坚持原创的话,每天利用流量主的收入用餐时给自己加个鸡蛋或者鸡腿还是可以的。原创文章的打赏是公众号的收入的第二个来源,这类收入比较少,尤其是技术类公众号,一般很少有读者会为你打赏的。也就是说公众号的广告收入是公众号的主要来源,因为流量主和打赏实在太少了。辛辛苦苦每天写文章和排版,其实也不容易,所以希望读者在看到一些公众号发广告时可以多一点理解,少一点抨击。经常有一些号主反映只要一发广告就有读者在后台开骂。每天发文章,你也没怎么打赏,号主也要吃饭,不喜欢就取关,没必要骂的。当你的公众号平均阅读量达到一定数量时,会有广告商主动联系你,给你投放广告。按目前的市场行情,广告文的单价是根据文章平均阅读量来算的,平均下来是 0.7~1.2 元/阅读量。也就是说一篇广告文阅读量如果在四五千,那么一篇广告收入也会有四五千。当然,平均阅读量达到四五千也不容易,一般可能是十万粉丝。我个人觉得月薪三万容易,公众号三万粉丝却不容易。当然,就技术圈号主来说,大多数号还是比较良心的,不是每种广告都会接,一般理财类、美容类、保健类等等都不会接。目前不少大号的(粉丝量超过 10 W)的号主,都辞去了工作,全职做公众号。他们的理由是:既然副业收入已经超过主业(上班)了,在公司继续上班就是亏钱,不如辞职全身心做副业。当然,我自己不会走这条路的,我还想在技术上继续精进,所以会去更多公司挑战对系统要求更高的业务。所以,读者不用担心,此号会继续给大家分享高质量的后台开发技术,但是由于我有正常的全职工作,做不到每天都推送一篇高质量的原创,希望读者能理解。
基于公众号,很多号主会做一些付费增值服务,如付费知识群、专栏课程、知识星球、线下付费活动等等,这个读者可以按需选取。以知识星球为例,有些知识星球只需花少许费用,的确能让人耳目一新。
与公众号类似的平台还有很多,一些全职做自媒体的个人或者公司,他们除了运营公众号以外,还有今日头条号、百度的百家号、抖音号、简书、知乎、新浪微博等等。如果有兴趣的读者也可以试试。
另外一些就是提供一些付费咨询,例如知乎、分答的付费的咨询。
还有一类是出书,书的编写方式有"著"、"编写"和"译",其中"著"是完全原创,要求比较高;"编写"一般是原创一部分,整理撰写一部分;"译"就是翻译国外的书籍。你可以主动联系出版社沟通出书计划。大多数时候,当你在某个平台上的某个领域有一定的影响之后,会有出版社的编辑或者图书策划公司的工作人员主动联系你写书。我就是在知乎上发过一些列高性能服务器开发专题的文章,被出版社主动联系的。当然,写书是一件非常磨人的事情,写书的过程是一个很痛苦的过程,和写博客不同,作者需要小心翼翼,为自己的每句话负责,以免出现技术性错误或者造成误解(以免误人子弟)。同时需要规划书籍整体内容,要根据出版社编辑的意见反复修改,字句要反复斟酌,版面要反复优化。不过,写书也是很锻炼人的事情,你不仅可以系统性地梳理一下你在那个领域的知识体系,在和出版社老师沟通的过程中学到很多写作和排版的技巧;而且写书会让你在某个领域增加一点名气和"光环",对你将来的求职和谈薪都有一定的加成作用。很多人的可能会说写书也能得到一大笔稿费,实际情况是靠写书真赚不了多少钱。出版一本书,一般的作者只能拿到 8% 的分成,名气大一点的或者销量好一点的可以拿到 10%,也就是说一本定价 100 元的书,每卖出去一本你可以拿 8 块钱,卖出去三千本(可能很难),是 24000,然后再缴去一部分个人所得税,到手其实也不没多少。
以上介绍了一些常见的程序员的一些副业。但是我还想提醒一下读者,不要光看到别人搞公众号和在知识付费平台写专栏赚钱了,尤其是做公众号,如果你是一名初入职场或者技术不是特别好的开发人员,一定不要把重心放在这上面,一定要把学习和积累技术作为中心,否则可能会捡了芝麻丢了西瓜。我在 GitChat 上写《C/C++ 多线程编程》时,我已经使用 C++ 快 10 年了,这 10 年了利用 C/C++ 开发过大大小小的系统,有客户端也有服务器程序,所以该课程总结了是我这 10 年中 C/C++ 多线程编程最常用和实用的技术的重难点。举个例子,课程中我介绍了条件变量时只介绍了 Linux 系统上的条件变量,而没有介绍 Windows 系统上的条件变量,不是因为 Windows 系统上不存在条件变量,而是在 Windows 上使用它的场景我基本没见过,为此我翻阅过大量的源码,如金山卫士、电驴、filezilla 等。
最后,希望本文对身为开发者的你有一点启发,那就善莫大焉了。感谢阅读~