报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

陈皓谈对待技术的态度

  • 2012-08-18
  • 本文字数:2327 字

    阅读完需:约 8 分钟

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

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

遇到新技术我会去了解,但不会把很大的精力放在这些技术(如: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,而是你组织程序、设计软件的能力,只要你上升到脑力劳动上来,用什么都一样,技术无贵贱。你可以不喜欢那个技术,但是还是要了解了解,也没有必要完全不用,完全抛弃。

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

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

2012-08-18 09:293372
用户头像

发布了 501 篇内容, 共 265.0 次阅读, 收获喜欢 61 次。

关注

评论

发布
暂无评论
发现更多内容

WireShark好学吗?我来手把手教你学WireShark抓包及常用协议分析

学神来啦

网络安全 Wireshark 渗透测试 kali kali Linux

旺链科技团建图鉴 | 认真工作,肆意生活~

旺链科技

区块链 企业文化 团建

Greenplum内核源码分析-分布式事务(二)

王凤刚(ginobiliwang)

源码分析 分布式事务 greenplum

谁编写了区块链的规则?

CECBC

一文解析Apache Avro数据

华为云开发者联盟

序列化 flink sql Apache Avro 反序列 Avro

取代Maven?maven-mvnd持续霸榜 GitHub Trending,性能提升300%

沉默王二

maven

Greenplum内核源码分析-分布式事务(一)

王凤刚(ginobiliwang)

源码分析 分布式事务 greenplum

一个cpp协程库的前世今生(二)协程切换的原理

SkyFire

c++ 协程 cocpp

Iog4j2漏洞相关技术分析

极光JIGUANG

☕【难点攻克技术系列】「海量数据计算系列」如何使用BitMap在海量数据中对相应的进行去重、查找和排序

码界西柚

BitMap bitmaps bitset 12月日更

Dubbo为什么要用Go重写?

捉虫大师

Go dubbo

消息队列存储消息数据设计

张靖

#架构实战营

腾讯云TDSQL数据库信创演进与实践

腾讯云数据库

tdsql 国产数据库

这几个IDE是Node.js 开发人员需要知道的

@零度

node.js 前端开发

MongoDB基本介绍与安装(1)

Tom弹架构

Java mongodb

在线JSON转Schema工具

入门小站

工具

大数据开发之Hive如何提高查询效率

@零度

大数据 hive

链计算、新基建:区块链助力数字经济新生态

CECBC

区块链赋能生猪养殖,让“猪”事有迹可循

CECBC

常用的echo和cat,这次让我折在了特殊字符丢失问题上

华为云开发者联盟

Linux cat echo 特殊字符 定向

DTC 2021 | 一体化架构的原生分布式数据库正在成为核心系统首选

OceanBase 数据库

数据库 OceanBase 开源 OceanBase 社区版

Linux之find exec

入门小站

forEach、map和for循环

编程江湖

大前端

MongoDB按需物化视图介绍

MongoDB中文社区

mongodb

【签约计划第二季】百位签约创作者名单公布

InfoQ写作社区官方

签约计划第二季 热门活动

强强联袂!腾讯云TDSQL与国双战略签约,锚定国产数据库巨大市场

腾讯云数据库

tdsql 国产数据库

强强联袂!腾讯云TDSQL与国双战略签约,锚定国产数据库巨大市场

腾讯云数据库

tdsql 国产数据库

TDSQL PostgreSQL如何快速定位阻塞SQL

腾讯云数据库

tdsql 国产数据库

从人工到智能!百度AI开发者大会分论坛,探寻国球乒乓背后的AI之路

百度大脑

人工智能

Greenplum内核源码分析-分布式事务(三)

王凤刚(ginobiliwang)

源码分析 分布式事务 greenplum

OceanBase 通过工信部电子标准院首批开源项目成熟度评估

OceanBase 数据库

数据库 工信部 OceanBase 开源

陈皓谈对待技术的态度_语言 & 开发_崔康_InfoQ精选文章