现在的位置: 首页 > 综合 > 正文

程序员的弱点

2014年04月16日 ⁄ 综合 ⁄ 共 2261字 ⁄ 字号 评论关闭

首先我得声名一下,我工作的时间不算长。本文的观点,只针对我本人与我所认识的个别人。

1以前的教育方式,影响了软件业的创新

我们中的大多数人是一步一脚印地从小学,初中,高中。最后,高高兴兴地读上了自己梦寐以求的大学专业。我们,可以在二十年的应试教育中一关一关地闯过,实属难得。我个人觉得,这十二年,我都在委屈求存。得到的是一纸文凭,失去的,是与生俱来的不拘一格,自由创新的思想。一个金刚圈,套在头上几十年,还能脱下吗?

2知识面广,想学的东西多

很多技术人把计算机技术当成时装一样,喜欢追赶最In,最流行的技术。这是人的天性,本无可非议。对于衣服,可以天天换上新的,只要你有钱。但技术则不同。每项技术从学习Hello world到学会运用到精通到成为大师,是需要时间的

对于大多数软件开发技术,在未被学习者精通以前,时尚的聚光灯已经离开它了。不过我觉得,让我不能从Hello world走到精通程度的原因不在此。在于学习目标与过程。我可以用半个星期时间泡完一本《Thinking in C++》但从未在实际软件开发过程中运用到C++

可以学的技术那么多,行业又要求技术人的知识面那么广。“蜻蜓点水”式的学习是没办法中的办法。不过要记住,如果你明知道你要学的东西将会运用到工作中,请对你的用户,你的工资,你的职业道德负责。我也记不清楚有多少次,我在浏览个别同事的代码时,心里先是愤怒,再是可惜,最后是麻木。我们在自己放弃自己的事业啊!

我们的事业成于网络,也可能败于网络。你已经习惯遇到问题马上Google之。纵里寻她千“百度”。最后,你可能在某论坛帖子或某邮件列表上看到一段代码,一条SQL,一个设置选项。拿来一试,啊,问题解决啦。你高兴异常。情事到这就完了。至于为什么行了,你不知道,也没兴趣知道。这种态度用于生活,是无可非议的。但用于工作,特别是技术工作,就不行。一个程序员如果连自己写的代码将会怎么运行也不清楚,那是件很可怕的事情。我希望这种人快点晋升,这样我们可以小点求神拜佛,项目也可以小点“闹鬼”。

我身边的软件人总喜欢说“软件设计”“设计模式”“UML”“建模”。这些思想,充分地体现在文档中。但我发觉,文档永远不是让程序员看的,是让客户看的。有时我们的高级设计师甚至可以实现惊人的“代码与设计文档解耦”。

UML永远只用于文档,是让验收人看的。日常交流或会议中,说到程序中的流程或业务中的过程。技术人甚至我们的架构师,要么手舞足蹈地从口头直接说出,好点的,要么就是在白板上随意地画个示意图。下属在下面听,上司在上面讲。上司在指手划脚,下面的人在点头称是。其实,有很多情况把你的想法用一个草图画出来,或用一个UML图画出来,别人会更容易理解你的伟大构思。

3技术人,请你在上司前不要只说“YES”,在客户前少点说“NO”

很多时候,我讨厌开会。我觉得,大多数会议,特别是技术人的会议,根本不能叫会议。叫广播或传达上级精神才比较合适。这又要归功于我们的教育模式了。从小,我们就为会议下了这样的隐性定义:会议就是来听上级讲话。出头鸟永远是让人枪打的。

如果,我们的设计师与PM们是神,是大师,我们程序员的确可以只作听众。但现实通常不是这样。我们的设计师/PM,不但不是大师,而且学了一大堆新潮的,听起来很美的技术或设计模式,他也乐于往项目中生搬硬套。我们底层的程序员,是要去实现功能的。很多时候,你清楚这样做只会让你的程序看起来像女人的裹脚布,又长又臭。但面对上面的设计师那运帱帷幄的自满的笑容,你选择了沉默。没法子,年终奖的评定还得靠他啊。

4技术人,请你不要太中庸

我发觉包括我在内的很多程序员,喜欢把“应该”“好像”“大概”这些词常挂在嘴边。我觉得,我们是时候想一想,为什么我们总要用这些词。为什么我们对自己的作品如此的没信心?

软件编写技术的进步,让程序员可以站在更高的抽象层去编写代码。我们觉得自己已经可以不去了解,或者是少点理解下层的技术细节了。与此同时,你开始对自己的代码在非常情况下是如何运行的一无所知。结果“应该”“好像”“大概”这些词就被你常挂在嘴边。这也成了你逃避学习技术细节的理由。

JavaEE项目开发中,我完全感觉到不了解下层技术的危险。你应该遇到过:

  • ClassLoader引发的问题:ClassNotFoundException。你常说闹什么鬼?我已经把那Jar文件放对地方了

  • 我不知道听过多少人说:用Java,从来不用担心内存管理

  • 我不知道听过多少Java代码,从来不在finally{}中关闭Input/OutputStream。有的甚至根本没有关闭IO流。他根本不去考虑异常出现时,代码会是如何地跳转的。

5很多人对自己的工作不感兴趣

5.1很少人把技术当是一种艺术或文化,没有人会在茶余饭后谈论技术人,技术事

我常在想,为什么我们的开源软件,创新软件这么少。为什么别人可以组成一个社区,一个团队,其中有人可以无私地贡献。

其实,他们的贡献不是完全无私的。他得到的,是社区,社会的认同。他们把技术当作一种文化甚至艺术。技术就在这种氛围中得到传播,创新思想也在这氛围中得到抨击,擦出火花。

有一件事让我感到失落。我身边的程序员,更喜欢谈论股市,而不是技术。

5.2社会的大环境、人们的价值观,直接影响到技术人

我们不笨,或者说,是机灵过头了。很多人喜欢投机取巧,或吃公家饭。君不见公务员考试挤爆了头。开源社区门可罗雀。

6结语

期望以上的看法只是鼠目寸光,中国股市一片红,让程序员不再为生活而忧;还有,我的老板或上司没看到这篇文章。  

抱歉!评论已关闭.