BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

陈皓谈对待技术的态度

| 作者 崔康 关注 1 他的粉丝 发布于 2012年8月19日. 估计阅读时间: 7 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

最近在酷壳上,陈皓撰文阐述了对待技术的态度,如何面对技术的快速更新?是否做软件开发比以前更加困难了?他都给出了自己的见解。

陈皓首先针对“如何看待日新月异的新技术”做出了回答:

遇到新技术我会去了解,但不会把很大的精力放在这些技术(如:NoSQL,Node.js,等)。这些技术尚不成熟,只需要跟得住就可以了。技术十年以上可能是一个门槛。有人说技术更新换代很快,我一点儿都不觉得是这样想。虽然有不成熟的技术不断地涌出,但是成熟的技术,比如Unix,40多年,C,40多年,C++,30多年,TCP/IP,20多年,Java也有将近20年了……,所以,如果你着眼成熟的技术,其实并不多。

他的核心观点是——要了解技术就一定需要了解整个计算机的技术历史发展和进化路线。你要朝着球运动的轨迹去,而不是朝着球的位置去,要知道球的运动轨迹,你就需要知道它历史上是怎么跑的。

然后,他简要回顾了IT技术的脉络,并列出了几条关键的主线:

70年代Unix的出现,是软件发展方面的一个里程碑,那个时期的C语言,也是语言方面的里程碑。(当时)所有的项目都在Unix/C上,全世界人都在用这两样东西写软件。Linux跟随的是Unix, Windows下的开发也是 C/C++。这时候出现的C++很自然就被大家接受了,企业级的系统很自然就会迁移到这上面,C++虽然接过了C的接力棒,但是它的问题是它没有一个企业方面的架构,而且太随意了,否则也不会有今天的Java。C++和C非常接近,它只不过是C的一个扩展,长年没有一个企业架构的框架。而Java在被发明后,被IBM把企业架构这部分的需求接了过来,J2EE的出现让C/C++捉襟见肘了,在语言进化上,还有Python/Ruby,后面还有了.NET,但可惜的是这只局限在Windows平台上。这些就是企业级软件方面语言层面就是C -> C++ -> Java这条主干,操作系统是Unix -> Linux/Windows这条主干,软件开发中需要了解的网络知识就是Ethernet -> IP -> TCP/UDP 这条主干。另外一条脉络就是互联网方面的(HTML/CSS/JS/LAMP…)。

同时,他还分析了架构领域的发展:

  • 从单机的年代,到C/S架构(界面,业务逻辑,数据SQL都在Client上,只有数据库服库在S上)
  • 再到B/S结构(用浏览器来充当Client,但是传统的ASP/PHP/JSP/Perl/CGI这样的编程也都把界面,业务逻辑,和SQL都放在一起),但是B/S已经把这些东西放到了Web Server上,
  • 再到后来的中间件,把业务逻辑再抽出一层,放到一个叫App Server上,经典的三层结构。
  • 然后再到分布式结构,业务层分布式,数据层分布式。
  • 再到今天的云架构——全部移到服务器。

陈皓针对“忽视关键核心技术,盲目追逐新技术”的现象做出了回应:“如果连技术主干都可以不学的话,还有什么其他的好学呢?这些是计算机发展的根、脉络、祖师爷,这样的东西怎么可以不学呢?”

那么,现在做一个软件开发者是否更加困难了?陈皓认为“更简单了”:

因为现在互联网很发达,你可以找到很多共享的知识——相对于我那个时候。第一,知识你容易查到,然后社区很多,文章、分享的人也越来越多。我们那个时候没有的。上网一查,什么都没有。都得去自己琢磨,自己去调查。所以我觉得相比我们那个时候更容易了。第二,工具变多了。现在的工具比那个时候好用多了。我们那个时候就是一天到晚在vi里面,连个自动提示都没有,连个版本库管理都没有。不光工具变多,框架也多了,各种各样的编程框架。我们那时候都是生写。写JavaScript,生写,连个jQuery都没有。没有这些辅助性的、让你提高生产力的东西。J2EE那时候也没有。而且整个(开发环境)都很不成熟。一个服务器的最高配置就1GB的情况下,一个WebSphere起来就占了900多MB——这还能跑什么应用?所以只能去用最基础的系统。所以我觉得现在,无论是环境,还是开发的过程,都更规范了。以前我做开发的时候就是,什么都不懂就上了,瞎搞,没有什么开发规范,没有人理你,反正你搞得好就搞好,搞不好就搞不好了,全靠自己,包括做测试维护等等。我觉得现在的软件开发就很好,你一上去,就有好的工具,有好的知识库,有好的社区,有好的开发框架,还有好的流程,方法,甚至还有人帮你做测试,还有人告诉你应该怎么做。幸福得很。现在好多人还说这个不好那个不好,开发难什么的。其实容易多了。

但是,有个东西我觉得是现在的软件开发者比我们那时候变得更难的。就是,你享福了以后,人就变懒,变娇气了。对很多东西的抱怨就开始多了。我们那个时候哪有什么好抱怨的?没啥好抱怨的,有活就干,有东西学就赶快学。现在呢,学个什么东西还挑挑拣拣的,抱怨这个语言太扯,那个IDE不好,这个框架太差,版本管理工具太扯,等等。这就好像以前我没东西吃,只有个糠吃,要是有面包有馒头,我就觉得非常非常好了。现在是,好吃的东西多了我们还学会挑食了,这也不好用,那也不好用。

根本就不是技术变难了,环境变差了,是程序员变娇气了。所以软件开发变难,归根结底还是程序员们自己变娇气了。

陈皓认为“任何一门技术玩深了,都是很有意思的”:

另外,任何一门技术玩深了,都是很有意思的。有些人形成了一个价值取向,“我只做什么,绝不做什么”。前段时间有一个刚来亚马逊的工程师,他原来做的是数据挖掘推荐系统,原来的公司重组要让他做前端,他不肯就离职了,他说他不想做前端。我觉得,前端后端都是编程,Javascript是编程,C++也是编程。编程不在于你用什么语言去coding,而是你组织程序、设计软件的能力,只要你上升到脑力劳动上来,用什么都一样,技术无贵贱。你可以不喜欢那个技术,但是还是要了解了解,也没有必要完全不用,完全抛弃。

......

如果你没有兴趣,什么都是借口,如果你有兴趣了,什么都是好玩的。

详细的内容,读者朋友可以查看陈皓的原文,也欢迎大家发表自己的看法。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

好文章 by 贾 珣

“如果你没有兴趣,什么都是借口,如果你有兴趣了,什么都是好玩的。”这绝对是关键~

抓住技术的主干 by Zong Gang

“如果连技术主干都可以不学的话,还有什么其他的好学呢?这些是计算机发展的根、脉络、祖师爷,这样的东西怎么可以不学呢?”

你的新未必是他的新 by Kraft Bai

说实话,IT领域还真什么新技术,只是炒冷饭而已,媒体喜欢贴标签。

同感 by Ye Lin

早期一直在MS阵营混,windows核心学了不少,后来转向Java,linux;操作系统核心编程这块要重新来过。新技术要了解,主要技术要深入。文中还没提数据库这块,好的企业开发者,数据库这块也要过硬。

抓住主干,抓住根,有了根就纲举目张了 by yao ming

如果连技术主干都可以不学的话,还有什么其他的好学呢?这些是计算机发展的根、脉络、祖师爷,这样的东西怎么可以不学。

同样对于日新月异的技术,个人的观点是有所求,有所不求

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

5 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT