zoukankan      html  css  js  c++  java
  • 关于我们这个行业

    我承认我已经没法抵挡绝味的鸭脖和鸭肠的诱惑了,尤其是鸭肠,就着这些美味,抿完一听啤酒,感觉很不错。今天,我也来吐个槽。已经不止一次地听到某些人评论.NET的种种不是,抑或是大环境怎么怎么不利,甚至有人说做这一行如何如何没有出路,凡此种种,我只想到了一个词(bullshit),没错,个人看来那就是胡说八道,就是扯淡。

           且不说编程语言怎么样,只需看看我们所从事的这个行业,曾经诞生了多少金领和白领,对当前的社会产生了多么深远的影响,这么一个蓬勃发展的行业,难道就容不下我们的那个小小的心么?这个时候,我们得思考一下,是这个行业变了,还是我们太浮躁了呢。

           言归正传,我们来说说编程语言。其实,归根结底,编程语言只是我们针对具体问题提供解决方案的一种工具,一种媒介,个人认为,语言本身并无好坏,各语言都有自己最擅长的应用场景,撇开场景讨论编程语言的优劣的人,我想引用时下很流行的一个词汇——真的是蛋疼到家了 。我想没有人愚蠢到要用C#去写操作系统,用C/C++去做Web应用,用python去写硬件驱动吧。诸如某种语言如何好其他语言如何差的讨论,我只能当作是某些人在失去创造力和工作热情之后,以此来寻找一些优越感聊以自慰的阿Q精神的体现。

           学习编程语言不是大姑娘出嫁,谁也没有跟特定的语言绑定在一起,不必从一而终,只是在我们工作的领域中,会有所侧重。你完全可以同时体验C#的强大高效、JAVA的正统严谨以及Python的简捷优雅,真的,只要你有足够的精力和时间。这里引用一下园子里的这篇文章

    通才还是专才,文中的一些观点我也是很赞同的。在我们漫长的程序人生中,怎么可能只学习一种语言、只会用一种工具呢?

          好了,关于语言的优劣,这个话题肯定还会经久不衰地讨论下去,随它去吧。接下来说说,我们IT男们为什么会觉得苦逼。以下几点是我个人的看法,仅代表我个人的观点:

          1. 产品迭代过程中,该优化的没优化,该重构的没重构

          就我个人的经历而言,开发人员对于做新项目,有苦逼感觉明显是少数。产品上线后,更多的是维护工作,然后在功能迭代和bug修复的过程中,苦逼的事情就出现了。如果最初的开发团队有统一的规范还好,若是没有,那后期的维护极有可能更是没有章法,你很难想象一些人会在源码中加入什么。对于功能改进,就像是打补丁,随着时间的推移,项目肯定会变得越来越累赘、越来越庞大。其实这种时候,往往代表着产品架构应该做出调整了,开发人员应该对产品进行必要的重构了。但是很悲催的是,我们必须承认,现实之中拥有这种能力的开发人员并不多。

          于是随着补丁越打越多,项目就像是一部叮当作响的老爷车,没错,它的一切运转良好,但是接下来接管项目的人,便成为苦逼IT男中的一员。不可否认,我也碰上过这样的项目,出于工作原因,我肯定也是认真负责地去维护并完成项目,只是在修改或重构代码的时候,对于那些将杂乱无章的代码写进项目的人,我会在心里骂娘:杂碎,你到底想做什么!,尽管我甚至都不知道他们是谁。当然,我只是对事不对人。我一直认为,开发人员的工作是让这个世界更快捷高效地运转,任何增加项目复杂度的想法或做法,都是有罪的 

          2. 固步自封,不愿意尝试和使用新技术

          关于这一点,我觉得作为一个开发人员来说,多少是有点可悲的。因为新技术往往代表的更快更高效更强大的生产力,而我们若持上述观点的话,自己就把自己排除在技术进步这个大潮流之外了。以.NET为例,.NET 1.1 没有泛型,2.0没有自动属性和Linq3.0没有 dynamic 关键字,至于有什么,大家请自行到MSDN(C#编程指南)进行查阅。就像 .NET 自身的演变一样,我们也需要不断的进行学习,掌握更多的技术细节来让我们的工作变得简单高效。

          3. 失去了对工作的激情和奋斗的动力

          无论如何,我觉得这一点是最严重也是最致命的一点。一味地Ctrl+C Ctrl+V,这绝对不是我们想要的生活。任何失去了创造性的工作,肯定是无法提起我们的兴趣的。对于开发人员来说,失去创造性,有时候意味着职业生涯的结束。不知道大家有没有看过《观止》,里面的一些细节让人很振奋,而有些NT开发人员在完成之前的黯然退出也让人觉得很可惜。对于我们这个行业,这里我引用一下园子里子阳兄的议题《屌丝的出路》,文笔很犀利,但却都是我们这个行业的实情。

          最后说说我们的专业素养,你在开发中,是否习惯于使用版本控制工具(SVNMercurial或是TFS,力荐Mercurial),是否会尽可能地为自己的项目编写单元测试,是否使用泛型来解决过强类型转换的问题,是否真正明白了什么是协变和逆变,是否曾经为自己封装的数据集合编写过迭代器,是否能融会惯通地使用GOF的精典设计模式,是否能在实施中使用数据结构来简化系统复杂度……诸如此类,作为.NET开发人员的我们,现在到底能做到多少,这个我觉得是有必要思考的一个问题。

          就如凤凰涅槃,重生之前,它就仅仅是一个而已,就像我们能力的提升一样,需要经历一个艰辛的过程,其实真的无所谓苦逼不苦逼。

  • 相关阅读:
    CREATE AGGREGATE
    技术文档列表
    jQuery 判断表单中多个 input text 中至少有一个不为空
    Java实现 蓝桥杯 算法提高 奥运会开幕式
    Java实现 蓝桥杯 算法提高 最长滑雪道
    Java实现 蓝桥杯 算法提高 最长滑雪道
    Java实现 蓝桥杯 算法提高 最长滑雪道
    Java实现 蓝桥杯 算法提高 最大值路径
    Java实现 蓝桥杯 算法提高 最大值路径
    Java实现 蓝桥杯 算法提高 最大值路径
  • 原文地址:https://www.cnblogs.com/gb2013/p/2651457.html
Copyright © 2011-2022 走看看