关于我们这个行业
我承认我已经没法抵挡“绝味”的鸭脖和鸭肠的诱惑了,尤其是鸭肠,就着这些美味,抿完一听啤酒,感觉很不错。今天,我也来吐个槽。已经不止一次地听到某些人评论.NET的种种不是,抑或是大环境怎么怎么不利,甚至有人说做这一行如何如何没有出路,凡此种种,我只想到了一个词(bullshit),没错,个人看来那就是胡说八道,就是扯淡。
且不说编程语言怎么样,只需看看我们所从事的这个行业,曾经诞生了多少金领和白领,对当前的社会产生了多么深远的影响,这么一个蓬勃发展的行业,难道就容不下我们的那个小小的心么?这个时候,我们得思考一下,是这个行业变了,还是我们太浮躁了呢。
言归正传,我们来说说编程语言。其实,归根结底,编程语言只是我们针对具体问题提供解决方案的一种工具,一种媒介,个人认为,语言本身并无好坏,各语言都有自己最擅长的应用场景,撇开场景讨论编程语言的优劣的人,我想引用时下很流行的一个词汇——真的是蛋疼到家了 。我想没有人愚蠢到要用C#去写操作系统,用C/C++去做Web应用,用python去写硬件驱动吧。诸如某种语言如何好其他语言如何差的讨论,我只能当作是某些人在失去创造力和工作热情之后,以此来寻找一些优越感聊以自慰的阿Q精神的体现。
学习编程语言不是大姑娘出嫁,谁也没有跟特定的语言绑定在一起,不必从一而终,只是在我们工作的领域中,会有所侧重。你完全可以同时体验C#的强大高效、JAVA的正统严谨以及Python的简捷优雅,真的,只要你有足够的精力和时间。这里引用一下园子里的这篇文章—
《通才还是专才》,文中的一些观点我也是很赞同的。在我们漫长的程序人生中,怎么可能只学习一种语言、只会用一种工具呢?
好了,关于语言的优劣,这个话题肯定还会经久不衰地讨论下去,随它去吧。接下来说说,我们IT男们为什么会觉得苦逼。以下几点是我个人的看法,仅代表我个人的观点:
1. 产品迭代过程中,该优化的没优化,该重构的没重构
就我个人的经历而言,开发人员对于做新项目,有苦逼感觉明显是少数。产品上线后,更多的是维护工作,然后在功能迭代和bug修复的过程中,苦逼的事情就出现了。如果最初的开发团队有统一的规范还好,若是没有,那后期的维护极有可能更是没有章法,你很难想象一些人会在源码中加入什么。对于功能改进,就像是打补丁,随着时间的推移,项目肯定会变得越来越累赘、越来越庞大。其实这种时候,往往代表着产品架构应该做出调整了,开发人员应该对产品进行必要的重构了。但是很悲催的是,我们必须承认,现实之中拥有这种能力的开发人员并不多。
于是随着补丁越打越多,项目就像是一部叮当作响的老爷车,没错,它的一切运转良好,但是接下来接管项目的人,便成为苦逼IT男中的一员。不可否认,我也碰上过这样的项目,出于工作原因,我肯定也是认真负责地去维护并完成项目,只是在修改或重构代码的时候,对于那些将杂乱无章的代码写进项目的人,我会在心里骂娘:“杂碎,你到底想做什么!”,尽管我甚至都不知道他们是谁。当然,我只是对事不对人。我一直认为,开发人员的工作是让这个世界更快捷高效地运转,任何增加项目复杂度的想法或做法,都是有罪的 。
2. 固步自封,不愿意尝试和使用新技术
关于这一点,我觉得作为一个开发人员来说,多少是有点可悲的。因为新技术往往代表的更快更高效更强大的生产力,而我们若持上述观点的话,自己就把自己排除在技术进步这个大潮流之外了。以.NET为例,.NET 1.1 没有泛型,2.0没有自动属性和Linq,3.0没有 dynamic 关键字,至于有什么,大家请自行到MSDN(C#编程指南)进行查阅。就像 .NET 自身的演变一样,我们也需要不断的进行学习,掌握更多的技术细节来让我们的工作变得简单高效。
3. 失去了对工作的激情和奋斗的动力
无论如何,我觉得这一点是最严重也是最致命的一点。一味地Ctrl+C 和 Ctrl+V,这绝对不是我们想要的生活。任何失去了创造性的工作,肯定是无法提起我们的兴趣的。对于开发人员来说,失去创造性,有时候意味着职业生涯的结束。不知道大家有没有看过《观止》,里面的一些细节让人很振奋,而有些NT开发人员在完成之前的黯然退出也让人觉得很可惜。对于我们这个行业,这里我引用一下园子里子阳兄的议题《屌丝的出路》,文笔很犀利,但却都是我们这个行业的实情。
最后说说我们的专业素养,你在开发中,是否习惯于使用版本控制工具(如SVN、Mercurial或是TFS,力荐Mercurial),是否会尽可能地为自己的项目编写单元测试,是否使用泛型来解决过强类型转换的问题,是否真正明白了什么是协变和逆变,是否曾经为自己封装的数据集合编写过迭代器,是否能融会惯通地使用GOF的精典设计模式,是否能在实施中使用数据结构来简化系统复杂度……诸如此类,作为.NET开发人员的我们,现在到底能做到多少,这个我觉得是有必要思考的一个问题。
就如凤凰涅槃,重生之前,它就仅仅是一个“蛋”而已,就像我们能力的提升一样,需要经历一个艰辛的过程,其实真的无所谓苦逼不苦逼。