导读:从事编程这个事能够作到,彻底靠本身的手艺、不依赖任何人或公司去生活的。但道理我都懂,怎么作才是关键。本文摘自陈皓(左耳朵耗子)在极客时间 App 开设的付费专栏“左耳听风”。程序员
程序员用本身的技术变现,实际上是一件天经地义的事儿。写程序是一门“手艺活儿”,那么做为手艺人,程序员固然能够作到靠本身的手艺和技能养活本身。shell
然而,如今不少手艺人程序员却说本身是“码农”,编码的农民工,在工做上被各类使唤,各类加班,累得像个牲口。在职业发展上各类迷茫和彷徨,彻底看不到将来的但愿,更别说能够成为一个手艺人用本身的技能变现了。编程
从大学时代帮人打字挣点零花钱,到逐渐经过本身的技能帮助别人,由此得到相对丰厚的收入,我在很早就意识到,从事编程这个事能够作到,彻底靠本身的手艺、不依赖任何人或公司去生活的。后端
这对于程序员来讲,本就应该是件天经地义的事,只是好像并非全部的程序员都能意识到本身的价值。这里,我想结合个人一些经从来跟你聊聊。固然,个人经历有限,也不必定全对,只但愿能给你一个参考。网络
我是 1994 年上的大学,计算机科学软件专业。在 1996 年上大二的时候,由于五笔学得好打字很快,我应征到教务处帮忙,把一些文档录入到电脑里。打了三个月的字,学校按照每千字 10 元,给了我 1000 元钱。架构
因为个人五笔越打越快,还会用 CCED 和 WPS 排版,因而引发了别人的注意,叫我帮忙去他的打字工做室,一个月收入 400 元钱。个人大学在昆明,这至关于当地收入的中上水平了。并发
后来,1997 年的时候,我帮一个开公司的老师写一些 MIS 软件,用 Delphi 和 PowerBuilder 写一些办公自动化和酒店管理的软件。一年后,老师给了我 2000 元钱。app
由于动手能力比较强,当时系上的老师要干个什么事都让我帮忙。并且,由于当时的计算机人才太少太少了,因此一些社会上的人须要开发软件或是解决技术问题也都会到大学来。基本上老师们也都推荐给我。高并发
还记得 1997 年老师推荐一我的来找我,问会不会作网页?5 个静态页,10000 元钱。当时学校没教怎样作网页,我去书店找书看,结果发现书店里一本讲 HTML 的书都没有,只好回绝说“不会作”。一年后,我才发现原来这事简单得要命。性能
到了 1998 年,我毕业参加工做,在工商银行网络科。因为能够拨号上网,因而我作了一个我的主页,那时超级流行我的主页或我的网站。我一边收集网上的一些知识,一边学着作些花哨的东西,好比网页上的菜单什么的。
在 2000 年时,被《电脑报》的编辑看上了,写来邮件约我投稿。我就写了一些如何在网页上作菜单之类的小技术文章,每月写个两三篇,每月有个 300 元左右的稿费,当时个人月工资 600 元。
如今经过文章标题还能找到一两篇,好比《抽屉式菜单的设计》,已是乱码一堆了。大学时代被人请去作事的经历对我影响很大,甚至在潜意识里彻底影响了我如何规划本身的人生。虽然当时我还说不清楚,只是一种强烈的感受——我彻底能够靠本身的手艺、不依赖任何人或公司去生活。
我想这种感受,我如今能够说清楚了,这种潜意识就是——我彻底没有必要经过打工听人安排而活着,而是反过来经过在公司工做提升本身的技能,让本身能够更为独立和自由地生活。
于是,在工做当中,对于那些没什么技术含量的工做,我基本上就像是在学生时代那样交做业就行了。我想尽一切方法提升交做业的效率,好比,提升代码的重用度,能自动化的就自动化,和需求人员谈需求,简化掉需求,这样我就能够少干一些活了……
这样一来,我就能够有更多的时间,去研究公司里外那些更为核心更为有技术含量的技术。
在工做中,我老是能被别人和领导注意到,老是有比别人更多的时间去读书,去玩一些高技术含量的技术。固然,这种被“注意”,也不全然是一种好事。
2002 年,我被外包到银行里作业务开发时,由于我完成项目的速度太快,因此,没事干,成天在用户那边看书,写别的代码练手,而被用户投诉“游手好闲”。我固然对这样的投诉置之不理,仍是我行我素,由于个人做业已交了,用户也就是说说罢了。
同年,我到了一家新的颇有技术含量的公司,他们在用 C 语言写一个能够把一堆 PC 机组成一个超级计算机,进行并行计算的公司项目。
当我作完第一个项目时,有个公司里的牛人和我说,你用 Purify 测试一下你的代码有没有内存问题。Purify 是之前一个叫 Rational 的公司(后来被 IBM 收购)作的一个神器,有点像 Linux 开源的 Valgrind。
用完之后,我以为 Purify 太厉害了,因而把它的英文技术文档通读了一遍。经理看我很喜欢这个东西,就让我给公司里的人作个分享。我认真地准备了个 PPT,结果只来了一个 QA。我在一个大会议室就对着她一我的讲了一个半小时。这个 QA 对我说,“你的分享作得真好,条理性很强,也很很楚,我学到了不少东西”。
有了这个正向反馈,我就把关于 Purify 的文章分享到了个人 CSDN 博客上,标题为《C/C++ 内存问题检查利器—Purify》(登陆极客时间 App 看外链)。可能由于这个软件是收费的,用的人很少,这篇文章的读者反响不大。
可是,2003 年的一天我很意外地接到了一个电话,是一个公司请我帮忙去给客户培训 Purify 这个软件。IBM 的培训太贵了,因此代理这个软件的公司为了成本问题,想找一个便宜的讲师。
他们搜遍完整个中国的互联网,只看到个人这篇文章,便经过 CSDN 找到个人联系方式,给我打了电话。最终,两天的培训价格税后一共 10000 元钱,而我当时的月薪只有 6000 元钱,仍是税前。这件事儿让我在入行的时候就明白了一些道理。
如今回想一下,技术和知识变现这件事儿,在 15 年前我就明白了,哈哈!随后,我在 CSDN 博客上发表了不少文章,有谈 C 语言编程修养的文章,也有一些 makefile/gdb 手册性的文章,还有在工做中遇到的各类坑。
由于我分享的东西比较系统,也是独一份,因此,搜索引擎天然是最优化的(最好的 SEO 就是独一份)。个人文章常常由于访问量大被推到 CSDN 首页。所以,引来了各类培训公司和出版社,还有一些别的公司主动发来的招聘,以及其余一些程序员想伙同创业的各类信息。了解到,出书做者收入过低(做者的收入有两种:一种是稿费,一页 30 元;一种是版税,也就 5% 左右),而培训公司的投入产出比明显高不少后,我开始接一些培训的事(频率不高),一年有个七八次。当时需求比较强的培训主要是在这几个技术方面,C/C++/Java、Unix 系统编程、多层软件架构、软件测试、软件工程等。
我喜欢作企业内训,还有一个主要缘由是,能够走到内部去了解各个企业在作的事和他们遇到的技术痛点,以及身在其中的工程师的想法。这极大地增长了我对社会的了解和认识,这对我来讲是很是重要的。而同时,让我这个本来不善表达的技术人员,在语言组织和表达方面有了极大的提高。
其间也有一些软件开发的私活儿,但我基本所有拒绝了。最主要的缘由是,这些软件开发基本上都是功能性的开发,我从中没法获得成长。并且后期会有不少维护工做,虽然一个小项目能够挣十几万,但为此花费的时间都是我人生中最宝贵的时光,得不偿失。
25~35 岁是每一个人最宝贵的时光,应该用在刀刃上。
由于有了这些经历,我感觉到了一我的知识和技能的价值。我开始把个人时间投在一些主流、高级和比较有挑战性的技术上,这可让我保持两件事儿:一个是技术和技能的领先,二是对技术本质和趋势的敏感度。
所以,我有强烈的意愿去前沿的公司经历和学习这些东西。好比,我在汤森路透学到了人员团队管理上的各类知识和技巧,而亚马逊是让我提高最快的公司。虽然说,亚马逊也有不少很差的东西,可是它的一些理念,的确让个人思惟方式和思考问题的角度有了质的飞跃。
我开始对外输出的不只仅是技术了,还有一些技术价值观上的东西。而从亚马逊到阿里巴巴是我在互联网行业的工做经历,这两段经历让我对这两家看似相似但内部彻底不一样的成功大公司,有了更为全面的了解和见解。
这两种彻底不同甚至有些矛盾的玩法让我时常在思考着,大脑里就像两个小人在扳手腕同样,这多是我从小被灌输的“标准答案”的思惟方式所致。其实,这个世界原本就没什么标准答案,或是说,一个题目原本就能够有若干个正确答案,并且这些“正确答案”还很矛盾。
因而,在我把一些价值观和思考记录下来的同时,我天然又被不少人关注到了,还吸引不少不一样的思路在其中交织讨论。而从另一方面来讲,这对我来讲是一个很好的补充,不管别人骂我也好,仍是教育我,都对我有帮助,大大地丰富了我思考问题的角度。
这些经历从质上改善了个人思考方式,让我思考技术问题的角度都随之有了一个比较大的转变。而这个转变让我有了更高的思惟高度和更为开阔的视野。
多是由于我有一些“独特”的想法,并且经历比较丰富,基础也比较扎实,使得我对技术人的认识和理解会更为透彻和深刻。因此,也有了一些小名气。来找我作咨询和帮助解决问题的人愈来愈多,而我也开始收费收得愈来愈贵了。这里须要注意的是,我彻底是被动收费高的。
由于父亲的身体缘由,我没有办法全职,因此成了一个自由人。而也正因如此,我才得以有机会能够为好多公司解决技术问题。2015 年,有家公司的后端系统一推广就挂,性能不足,请我去看。
我花了两天时间跟他们的工程师一块儿简单处理了一下,直接在生产线上重构,性能翻了 10 倍。虽然这么作有点 low,但当时彻底是为了救急。公司老板很高兴,以为他投的几百万推广费用有救了,一下给了我 10 万元。我说不用这么多的,1 万元就行了,结果他说就是这么多。我欣然接受了,当时内心有一种技术被尊重的感动。
2016 年,某个公司须要作一个高并发方案,大概须要 2000 万 TPS,我给他们作了一个。可是他们只能实现到 1200 万 TPS 左右,又把我请去了。
我花了两天时间作调研,分析性能缘由,而后一天写了 700 多行代码。由于不想进入业务,因此我主要是优化了网络数据传输,让数据包尽可能小,确保一个请求的响应在一个 MTU 内就传完。
测试的时候,达到了 2500 万 TPS。因而老板给了我 20 万。
这样的例子还有不少。上面的例子,我连钱都没谈就去作了,原本想着,也就最多 1 万元左右,没想到给个人酬劳大大超出了个人指望。
这里,我想说的是,并非社会不尊重程序员,只要你能帮上大忙,就必定会赢得别人的尊重。
因此,我和一些人开玩笑说,咱们可能都是在写同样的for(int i=0; i<n; i++)
语句,可是,你写在那个地方一文不值,而我写在这个地方,这行代码就值 2000 元。 不要误会,我只是想用这种“鲜明的方式”来增强个人观点。
我不算是聪明的人,经历也不算特别成功,但一步一步走来,我认为,我能作到的,你必定也能作到,并且应该还能作得比我更好。
仍是那句话,本质上来讲,程序员是手艺人,有手艺的人就能作出别人作不出来的东西,而付费也是一件很天然的事了。那么,这个问题就成了,如何让本身的“手艺”更为值钱的问题了。
第一,千里之行,积于跬步。任何一件成功的大事,都是经过一个一个的小成功达到的。因此,你得确保你有一个一个的小成功。
具体说来,首先,你得让本身身边的人有求于你,或是向别人推荐你。这就须要你可以掌握大多数人不能掌握的技能或技术,须要你更多地学习,并要有更多的别人没有的经验和经历。
一旦你身边的人开始有求于你,或是向别人推荐你,你就会被外部的人注意到,因而其余人就会付费来获取你的帮助。而一旦你的帮忙有效果的话,就会产生效益,不管是经济效益仍是社会效益,都会为你开拓更大的空间。
你也会由于这样的正向反馈而鼓励本身去学习和钻研更多的东西,从而获得一个正向的循环。并且这个正向循环,一旦开始就停不下来了。
第二,关注有价值的东西。什么是有价值的东西?价值实际上是受供需关系影响的,供大于求,就没什么价值,供不该求,就有价值。这意味着你不只要看到市场,还要看到技术的趋势,可以分辨出什么是主流技术,什么是过渡式的技术。当你比别人有更好的嗅觉时,你就能起动得更快,也就比别人有先发优点。
关于市场需求。要看清市场,就须要看看各个公司在作什么,他们的难题是什么。简单来讲,如今的每家公司不管大小都缺人。是真的缺人吗?中国是人口大国,不缺写代码搬砖的,真正缺的是有能力可以解决技术难题的人,可以提升团队人效的人。因此,从这些方面思考,你会知道哪些技能才是真正的“供不该求”,这样可让你更有价值。
关于技术趋势。要看清技术趋势,你须要了解历史,就像一个球运动同样,你要知道这个球将来运动的地方,是须要观察球的已经完成运动的轨迹才知道的。所以,了解技术发展轨迹是一件很重要的事。要看一个新的技术是否顺应技术发展趋势,你须要将一些老技术的本质吃得很透。
所以,在学习技术的过程必定要多问本身两个问题:“1. 这个技术解决什么问题?为何别的同类技术作不到?2. 为何是这样解决的?有没有更好的方式?”另外,还有一个简单的判断方法,若是一个新的技术顺应技术发展趋势,那么在这个新的技术出现时,后面必定会有大型的商业公司支持,这类公司支持得越多,就说明你越须要关注。
第三,找到能体现价值的地方。在一家高速发展的公司中,技术人员的价值能够达到最大化。
试想,在一家大公司中,技术架构和业务已经定型,基本上没有什么太多的事能够作的。并且对于已经发展起来的大公司来讲,每每稳定的重要性超过了创新。此外,大公司的高级技术人员不少,多你一个很少,少你一个很多,因此你的价值很难被体现出来。
而刚起步的公司,业务尚未跑顺,公司的主要精力会放在业务拓展上,这个时候也不太须要高精尖的技术,因此,技术人员的价值也体现不出来。
只有那些在高速发展的公司,技术人员的价值才能被最大化地体现出来。比较好的成长路径是,先进入大公司学习大公司的技术和成功的经验方法,而后找到高速成长的公司,能够实现本身更多的价值。固然,这里并不排除在大公司中找到高速发展的地方。
第四,动手能力很重要。成为一个手艺人,动手能力是很重要的,由于在解决任何一个具体问题的时候,有没有动手能力就成为了关键。这也是我一直在写代码的缘由,代码里全是细节,细节是魔鬼,只有了解了细节,你才能提出更好或是更靠谱的并能够落地的解决方案。而不是一些笼统和模糊的东西。这过重要了。
第五,关注技术付费点。技术付费点基本体如今两个地方,一个是,能帮别人“挣钱”的地方;另外一个是,能帮别人“省钱”的地方。也就是说,可以帮助别人更流畅地挣钱,或是可以帮助别人提升效率,能节省更多的成本,越直接越好。并且这个技术或解决方案最好仍是大多数人作不到的。
第六,提高本身的能力和经历。付费的前提是信任,只有你提高本身的能力和经历后,别人才会对你有必定的信任,才会以为你靠谱,才会给你机会。而这个信任须要用你的能力和经从来填补。好比,你是一个很知名的开源软件的核心开发人员,或是你是某知名公司核心项目的核心开发人员,等等。
第七,找到有价值的信息源。信息社会,若是你比别人有更好的信息源,那么你就能够比别人成长得更快。对于技术人员来讲,咱们知道,几乎全部的技术都源自西方世界,因此,你应该走到信息的源头去。
若是你的信息来自朋友圈、微博、知乎、百度或是今日头条,那么你完蛋了。由于这些渠道有价值的信息很少,有养分的可能只有 1%,而为了这 1%,你须要读完 99% 的信息,太不划算了。
那么如何找到这些信息源呢?用好 Google 就是一个关键,好比你在 Google 搜索引擎里输入“XXX Best Practice”,或是“Best programming resource”……你就会找到不少。而用好这个更好的信息源须要你的英文能力,所以不断提高英文能力很关键。
第八,输出观点和价值观。真正伟大的公司或是产品都是要输出价值观的。只有输出了更先进的价值观,才会得到真正的影响力。可是,你要能输出观点和价值观,并非一件容易的事,这须要你的积累和经历,而不是一朝之功,须要长期积累。所以,若是想要让你的技能变现,这本质上是一个厚积薄发的过程。
第九,朋友圈很重要。一我的的朋友圈很重要,你在什么样的朋友圈,就会被什么样的朋友圈所影响。若是你的朋友圈比较优质,那么给你介绍过来的事儿和活儿也会好一些。优质的朋友圈基本上都有这样的特性。
这些人都比较有想法、有观点,经验也比较丰富;
这些人涉猎的面比较广;
这些人都有或多或少的成功;
这些人都是喜欢折腾喜欢搞事的人;
这些人都对现状有些不满,并想作一些改变;
这些人都有必定的影响力。
最后有个关键的问题是,物以类聚,人以群分。若是你不作到这些,你怎么进入到这样的朋友圈?
总之,就一句话,会挣钱的人必定是会投资的人。我一直认为,最宝贵的财富并非钱,而是你的时间,时间比钱更宝贵,由于钱你不用还在那里,而时间你不用就浪费掉了。你把你的时间投资在哪些地方,就意味着你将来会走什么样的路。因此,利用好你的时间,投到一些有意义的地方吧!
个人经历有限,只能看到这些,还但愿你们一块儿来讨论,分享你的经验和心得,也让我能够学习和提升。