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