中国特色程序猿的「钱途」
今天在微博看到一篇文章,程序猿转型书商 年交易额千万元,作为一个合格的中国特色的码农,忍不住想写点儿什么。程序猿的「钱途」在那里?
从出版业说起
网络作品排到靠前的,都不会太难看,一般人不爱看某部作品也是由于不喜欢这个类型,而此人也不会全不喜欢这些网络作品。究其原因,是由于网络作品都是让人先白看的,看的好了才出了头。而纸质作品就不一定了,排行榜靠前的,有好作品,也有垃圾。
很多大牛都是写了博客,后来出了书。这些书也都不次,可能有人让为不好,是由于技术书不像小说,小说在读故事,技术书是在学知识或温习知识,有些技术书读得可能非常违背某人的学习习惯,就感觉不好了。
所以说网络是块奇妙的空间,非常能造就高手,而网络高手是绝对不能小瞧的。
建筑工程
建筑工程不乏豆腐杂,但比起软件工程来说,豆腐杂的概率还是非常小的。做软件,非常可能某程序猿在开发阶段一天没干一点正事,但在建筑行业,除非是收尾阶段,否则绝对不可能一个工人一天没干一点活儿。建筑工人还是非常较挣钱的,但绝对是血汗钱。程序猿还真不一定是血汗钱,由于软件工程沒有建筑业成熟,经常由于分配不当,非常多程序猿每天在干无用功。建筑工人的门槛相对低一些,但也并不是easy达到熟练水平,就算那个最低等的搬砖推灰的小工,至少想达到这个水准,你得身体力气跟得上,一月沒有一天歇息你得熬得住,想想都不easy。
中国软件的用处
软件不一定验收了就是实用的,在我看来,一款软件要想达到实用,至少实现下面功能之中的一个:
1,为使用者节省了时间
2,为使用者节省了人力
3,为使用者带来了方便
4,为使用者带来了知识
5,使使用者能做到某种难以实现的事情
6,为使用者带来了快乐(比方游戏)
7,为使用者节省了资源
8,辅助使用者做出了推断
9,为使用者攻克了某些问题
10,为使用者提供了资源
而有非常多软件做出来以后,使用者不用吧已花了钱了,用吧什么也没带来,还得为学习这款软件而费时费力,得不偿失。
但有一个非常悲观的消息,除了网络软件之外(包含站点),凡实用的软件中国人都习惯白去使用。而花了一大笔钱的软件,往往带来的优点不多。不是一点沒有,是性价比太差。所以现状是:实用的软件没市场,有市场的软件用处有限。多尴尬的事。
而以上的一切带来的现状是:除了网络性软件外,中国的软件挣钱不easy。
程序猿的被动
假设程序猿做的东西要不挣不了钱,要不挣了钱反而让客户感觉不值,这种话,程序猿的价值就减少了。这样,建筑工人灌一天的水泥往往没白干,而程序猿开发一周的工作往往白干,这是常事儿。
这使程序的技术定位非常尴尬,在中国,说句实话,不是每一个程序猿都能天天用到内存管理,就连最基础的算法也都被高级语言封装好了,当然也有非常多低层的程序猿,所以大家不用跟我争这个,最基本的是,高级语言、业务需求、工期决定了有非常多编码与操作系统、算法、内存等等越来越脱节,这种话,非常多程序猿干了若干年,特定业务熟悉了非常多,但编程最基础的知识反而渐渐忘去。这就出现了,让市面上非常多程序猿去做个基本的数据结构与算法(比方有向图,再比方好像是老赵说的排序),反而不会。这找谁说理去?还不如建筑工人呢,人家说会刷涂料真还做的不错。
有些公司,销售、行政、甚至实施人员都比程序猿有优势,他们眼中这群天天如高僧般坐在那儿的人,占公司大半人数,反而做的贡献不多,反而让他们辛苦开拓的客户群都在谩骂。
程序猿,好被动。
不按套路出牌的中国人
中国到处都有不按套路出牌的现象:不用正版,不守时,造假,山寨,不排队,地沟油,不按合同办事,以次充好,没服务。这是种坏氛围,以至于每天每一个人都习惯了这样规律,反而麻木了,不觉得这是不正确的,就如同我(我也不敢说你也是)每天白看人家的书白用人家的软件,而沒有感觉自己有多少罪恶感。
中国程序猿的出路
中国程序猿也有做好的,尽管其最棒的那些拿到国际上什么也不是,但毕竟能达到不被动,能用自己的努力使生活美好起来的还是非常多的。总结一下,有例如以下几种:
1,教育型,主要是学知识,写书,讲课。
2,自由型,主要是为自己打工,做好的小团队软件,以积累用户而达到做实用的软件,挣有价值的钱。
3,业务人际型,一般都走向偏管理的路子,用高级语言,对数据库、报表、server和某个业务领域精通。
4,高级白领型,以进入国际大公司做核心项目为主,由于待遇好,属于打工仔里的高富帅。
5,创业型,当老板,也许这个已不是纯粹的程序猿了,所以这个仅仅能算半个。
以上几种路都能够走,但大多数程序猿都还不在这5类之中,都是在某些公司不温不火的为生存努力着。
读技术书籍未必就真是无敌之出路
我常爱说,会中国经常使用的三千字写不了个好文章的话,学会中国八万汉字也未必就能写出来。相同,市面上的程序猿假设去实现个初期的Facebook大多数还是能做到的,但你会这些知识还不能做出一个像Facebook一样实用的软件,那么你再精读了操作系统、设计模式、代码大全、算法导论......也还是照样做不出来。所以我非常反感网上列的程序猿必读书目,一列就是五十大本, 你花十年啃完这五十本,你还能写代码吗?
从环境入手,找到自己所缺少的知识与资源,突破再突破
个人感觉程序猿首先应该定位目标,然后界定目标所涉及的环境圈,在环境圈的范围内捕捉问题,界定自己的知识与资源范围,有目标的展开学习与环境方面的突破,这样更适合程序猿。
也就是说,你要是教育型的,你在你所涉及的知识范围里要细到知识点;但你是自由型的话,还不是必需都细到点,否则你天天不是在开发了,而是在学习了。假设是业务人际型,可能你对操作系统、网络什么的不必要了解太细了,但业务得精纯。
尽可能缩小范围,持之以恒是关键
事实上无论是技术还是人际,所涉及的学问是无边的,假设都要学精再去做事,我想这种话就沒有做事的机会了。所以尽可能缩小知识领域的范围,比方上面我分5类人才,就是缩小了一层范围,可是这还是非常粗的。假如你是教育型的,你想教会大家用设计模式,那尽可能先不要去学习WPF,先把设计模式搞到专家地步再说。此间道理,我想大家是能够理解的。
结束语
写了这么多,事实上我并不是在教育谁,我沒有这个资格。 网上高人一把一把的,怎么能轮到我来说教。目的唯独一个,想找到程序猿的出路,想让程序猿不那么民工(或码农)。大家是拍砖也好,送花也罢,这都是对我有帮助的,毕竟我也是在摸索其中。我不喜欢那些写类似《怎样让程序猿成为百万富翁》而自己连十万都沒有的作者,但我确不反对作者们抛砖引玉。