资讯详情

倪光南、求伯君“出山”:爱解 Bug、无惧“35岁魔咒”、编码之路痛并快乐!...

5048f964503db101123e15a6a48ddd36.gif

作者 |郑丽媛

责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

互联网有记忆。

从混沌开始到万物互联,从「程序英雄」到「平台诸侯」,中国计算机向互联网的发展经历了 60春秋时节,整个商业社会的形态已经重置,生态格局已经形成。

回忆过去,过去60 这一年也是这个创新创造者和中国程序员快乐恩怨的江湖时代。他们以代码为剑,热血沸腾。不同时代的技术人员共同为中国的计算机产业而奋斗,实现了今天的中国互联网。

在这位大师如林的互联网上,诞生了无数程序员,就像:

  • 他,耕耘中国计算机产业 60第一台参与中国自主设计的电子管计算机(119 机),20 在20世纪60年代和70年代,开展了汉字处理和字符识别研究,并首次将联想功能应用于汉字输入。他是中国工程院院士——

  • 虽然他已经退出江湖,但他在江湖上一直有传说。他被称为中国第一程序员,也是金山软件的创始人WPS 创始人。

  • 华为消费者,他BG(CBG,Consumer Business Group)软件部总裁,负责 CBG战略、规划、研发、集成交付和生命周期管理。

  • 毕业后,美国佐治亚理工学院博士在谷歌内核组工作,主要成立和领导 gVisor 项目。现任蚂蚁集团研究员,可信原生技术部负责人

  • 他,SequoiaDB 巨杉数据库联合创始人,曾在北美工作 IBM DB2 Lab,参与核心研发成员负责 DB2 世界上第一个核心引擎研发和分布式数据库 DB2 DPF 的研发。2011 年回国创业,自主研发金融分布式数据库 SequoiaDB,广泛认可技术行业和金融客户。

  • 他,是2015 清华大学电子工程系毕业后,与清华大学电子工程系王宇教授、MIT EECS 韩松教授联合成立了深造科技公司 CEO 的,领导团队开发高效、深入的学习平台,致力于为自动驾驶、智能安全、云计算等行业提供集软件和芯片于一体的人工智能解决方案。深圳科技成立两年半,获得清华控股、金沙江风险投资、高荣资本、赛灵思、联发科、蚂蚁金服、三星等企事业单位三轮投资,最终以数亿美元收购。

  • 他,00 新一代程序员代表,生于 2001 年,初一学习 C 。清华姚班大二,清华大学 2019 2018年第一次录取通知书获得者 代表中国国家队参加第一次 30 国际信息学奥林匹克竞赛(IOI)并获得金牌。

  • 他,25 年软件开发经验,领导开发了巨人手写电脑、金山词霸、超级解霸。1999 年创办 CSDN,为中国 IT 员工提供全职生命周期服务,如知识传播、在线学习、职业发展等,致力于成为技术人员学习和成长的家园。他是CSDN 创始人&极客帮创投创始合伙人董事长

不久前,他们聚集在长沙·中国 1024 程序员节现场,从 30 年代跨越到 00 在这个时代,根据经验分享不同时代的程序生活,看看中国互联网的发展和变化,回答当代程序员的困惑。接下来,我们将探索他们的技术时代,希望给更多的同行带来一些思考。

:最快乐的是调机成功的时候。当时第一代电脑由几千根电子管组成。根据概率,每天坏一两根电子管,所以很难调整。

我不是程序员,而是从硬件开始。当时,当我从中国科学院分配到计算机研究所时,研究所制造了一个 104 机器(中国第一台大型快速通用数字电子计算机),然后我参与了 119 研发机器(第一台自行设计的电子管计算机)。

当时我们没有指令,没有语言,119 机器采用八进制,需要发出三条指令才能将一个区域转移到内存不是程序员,调机人员更合适。

到了第三代计算机,汇编语言出现了,但是汇编语言很难写。后来去加拿大工作的时候,接触到了 C 回国后,所有软件工程师都使用语言 C 语言,包括后来的汉字系统、程控交换机和打印机,使用 C 语言写作效率至少提高了十倍。

所以从程序员开始,我想 C 语言是最好的语言,使用 C 语言是一个合格的程序员。

:当时我们的编程工具只是汇编,然后慢慢有很多语言,但当时信息和工具不完整,互联网不够发达。为了购买开发工具或咨询信息,我不得不去中关村,所以我用汇编来写程序。

当时第一版 WPS 我写了数百万个程序,因为高级语言中调用的函数需要100多个代码才能在汇编中实现,每个功能都需要一个一个地写,所以工作量很大。我很佩服一同事,他使用它 DeBug 编写代码,调试,然后存储执行代码。

当时写程序真的很难,但同时也很开心。当时为了解决。 Bug 功能,我们没有日夜写程序的概念,所以我们把自己关在一个房间里,饿的时候吃方便面,困的时候睡觉,经常带着问题睡觉。有一次在梦里想到解决办法,醒来的时候很兴奋的练习,结果真的成功了。我记得这个梦实现的代码是为了解决汉字输入法的中断问题。

当时,编写应用程序与操作系统是分不开的。硬件部分经常被调用,包括硬盘分配、存储、输出等。现在我很高兴回忆起那段时间。

我很少谈论另一种幸福。因为一开始我写的。 WPS 纯粹的兴趣,不想用它创业或赚钱,所以我去了中关村,看到很多人一夜之间使用盗版 WPS,当时我没有版权概念,很高兴看到很多人用。当时雷军破解了其中一个版本,所以我遇到了他。

:我是 1998 年博士毕业,我的博士课题是用的 Fortran 语言实现了金属成形过程的模拟,写了3万多行代码。在此期间,它曾经非常崩溃,因为编译常崩溃,调整了近 9 天时间,失败。后来,有一天的某个时刻,我看着实验室窗外的树,突然灵机一动,代码调通,然后话题很快就完成了。我还记得这种快乐的感觉。

之后,当我们到达华为时,我们开始制造无线程控交换机。当我们进入无线产品线时,我们只有30或40人。当时,产品容量无法满足市场我们开始这样做 iPaas 完全使用模块 C 写语言。当时我们一个周末写了3万多行代码。当然,有很多 Bug。

彼时的经历对我的成长有非常大的助力,让我快速全面地理解了整个电信网的系统。虽然我已经有十多年没做具体的研发工作了,但是曾经读书时和工作以后的记忆尤为深刻,看到代码有时还是心痒,会帮别人解释,这就很有意义。

:我的幸福和你一样,但也不一样。

前辈们分享上述解决方案 Bug 我特别感受到快乐。我在谷歌和蚂蚁集团都有解 Bug,程序员应该有这种快乐。

不同的是,作为长沙当地人,当被问及最快乐的时刻时,我想到了离长沙岳麓学院不远的青年宫。四年级的时候,妈妈送我去那里学电脑。当时学其他兴趣班很抗拒,但这是我主动学的,有一种开新门的快乐。

这种幸福也存在于我读博士时从算法转移到核心的时候,因为我接触到了新的领域。

:我之前在 IBM 做 DB2.管理数据库。后来开始做巨杉数据库,是分布式数据库。

自从接触到整个电脑,我的快乐主要来自两点:

  • 我以前在学校学习游戏设计。有时候设计的结果被同学或者老师认可,我很兴奋。

  • 在 IBM 有一次,有一次 DB2 写后,我发现汇编语言和 C 语言语义存在差异,导致优化器优化后存在 Bug。那时我特别喜欢 C 因为它和语言 CPO 指定汇编最接近,出现问题时可快速定位。

:其实我对调试程序不是很专业。我第一次接触电脑是小学三年级的培训班。当时我最开心的是上课前20分钟可以玩一些 4399 这样的小游戏。后来,我来到清华电子系,开始真正学习编程。我参与了很多领域,包括 EDA、在斯坦福进行了三个月的访问研究,深入学习,根据芯片网表检查硬件木马。

当你专注于技术时,你的幸福就会变得非常简单。你需要面对的只是一个问题,你试图解决它,你会感到非常简单的幸福。

:我直观的感觉是,在我们这个时代,学习编程的门槛降低了。的时候,一个班十几个人都会学编程。一开始学的是专门为孩子设计的编程语言,很有意思。

后来初一的时候,我接触了算法的学科竞赛 C ,学习算法。

我的快乐与各位前辈也基本一致,就是享受自己解决问题的过程。还有因为现在学习编程的人很多,因此可以与学习相关方面的同学共同讨论,促进学习,这个过程对我来说也是非常开心的。

:做程序员很痛苦,做公司更痛苦。中国流传着“痛并快乐着”这句话,意味着快乐与痛苦是相辅相成的,如果你没有快乐,那肯定就没有痛苦。

我的痛苦就是创业过程中遇到的很多困难。虽然我现在可以坦然地说,我当时看到有人用盗版 WPS 都很开心,但这确确实实影响了我的发展。在 1992-1993 年,那时候我连员工的工资都发不起。如果我只是打工的,那没关系,可我当时招了许多人,那时遇到的困难已经超出了我的能力范围。

后来我把雷军这些人招进来去管理事务之后,我发现我解脱了。所以我认为,

:我最大的痛苦是不被人理解。因为做软件或编代码,别人是看不见摸不着的,

我认为做软件,跟随别人做是没有太大必要的,因为软件是需要往前走的。但这样,困难就又叠加了一层:你越往前看,别人就越不理解。我做软件,需要跟相关部门合作,要与公司申请投资,要交付给客户,都需要大家的理解。所以这是我一直遇到的最大挑战,这个问题我相信也会一直存在吧。

:确实,很多时候痛快和快乐并存的。我有一次印象很深刻:我们第一次大规模上线的时候,出了非常大的 Bug,面临着软件发不出去的情况,那个时候真的异常痛苦。但同时,快乐也是在之后收获的。所以我认为,

:我觉得很多技术人难题都是相通的,而我的痛苦是

一开始很多事我们都是自己一个人面对,那时候只需要一台机器就很容易解决。不过,后面需要更多人参与,需要发挥团队能力时,就要面对很多问题了。这是我近十年来最大的感受,因为这是很多程序员必备的转身,只要能走过去,就能发挥自己更多的力量。

:首先,是最痛苦的事情之一。程序员的快乐很单纯,因为目标是既定的,解决难题就好了。但找方向,类似公司要转型,下步做什么?AI 芯片之后又能做什么?这些都是我一直在思考的问题。

第二个痛苦与前面两位有些类似。我们开始都是做技术出身,在转为管理的过程中有很多事情是非常痛苦的。我原本不太喜欢做思想工作和谈心之类的,因此这就很挣扎。另外,我们自己的工作能力很强,一件事可能轻松就能做到 90 分,但你手下只能做到 70 分,这就需要你花两倍时间去培养。我原来是急性子,但做公司使我变得很有耐心。

其实,如果你迎上了这些困难,去做到了自己原本做不到的事,那对你永远都有好处。因此我也一直逼自己做一些不擅长的事,走过来了,就好了。

:我在姚班挺痛苦的,因为大家都很厉害。但我现在感受到的最大痛苦还是从一个竞赛选手,转变成做某一个方向的技术人员。我本来是习惯拿到一个题目去解决,但现在这个方向需要我自己去发掘。

:我认为人想要成功,需要具备两点:

  1. 软件工作者,有时候是有能力去完成一件事但却失败了,这可能不是你的程序有问题,而是应用变化了。

  2. 你得有思想准备,坚持下去才能成功。有些时候关于计算机的事情很难,但我们努力去做,还是能够做成。

:我做软件企业比较早,现在很多大公司的人以前都在我的公司工作过。如现在的腾讯、阿里也有从我们公司出去的人,这个也算是我们的贡献。

在创办企业之初,我是一个人写程序,发现事情做不完了再开始加人,后来就慢慢建立了团队,我是属于被驱动的。招人的时候,我是先找一个同样是写程序的,后来发现企业全部都是程序员,那时候才意识到,一个企业需要各种不同的人才,招人的时候才开始有其他的方向。

:我个人认为人才的两个能力非常重要:

  1. 如果逻辑抽象不清晰,就无法从众多选择中抓住主要的点。

  2. 因为软件发展很快,学习能力不足的话很快就会被市场淘汰。华为在人才上的淘汰率也不低,12% 左右。

关于带领队伍,我觉得非常简单,就是带着大家不断打胜仗,只要不断打胜仗,很多事情自然就有拥有了。

:我认为优秀的人才,有三点很重要:

  1. 你为了什么去做一件事?图的是什么?正如求伯君老师所说,他是真的想把一件事做好。因此我认为驱动力很重要,拥有良好的驱动力能成事。

  2. 在能成事之际,也要肩负起所做之事带来的一些后果。我们今天写的软件,到了明天或成为一种负担,因为软件更迭,或被删除,或被取代。

  3. 现在的大型软件是需要很多人协作的,一个团队、一个公司,甚至是与世界各地的程序员共同完成,因此我认为优秀的人才需要具备这种与人共事的心态。

:我们做团队是从两个方面培养:

  1. 技术就是写代码的能力,错误率、架构质量之类的指标。

  2. 这一部分对程序员可能比较有挑战性,关于是否能以客户为中心,自我驱动力如何,以及团队沟通能力,需要具有团队精神。

:在个人能力方面,我非常同意之前王博(王成录)提出的学习能力和逻辑抽象能力。一个人做事情是出于什么目的,是出于热爱想把事情做成功还是想赚钱,这些都能感受到,而对于前者我们就会给他多分利益。

我们已经被收购两年了(2018 年赛灵思收购深鉴科技),期间 130 多个人走了六七个人。被收购前,公司大部分员工都是以公司为荣,很少抱怨物质方面,而被收购后,理想和精神层面的驱动力减少,更多转变为了物质驱动力,因此会有很大不同。举一个例子,当时刚被赛灵思收购时,我问 HR 以后周六上班吗?因为那时这变成了一份工作而不是创业。

我至今还留在赛灵思除了物质方面,还因为两个方面的责任感:

一、赛灵思拥有 30 多年的历史,而这起并购是 2012 年到目前为止,唯一一家美国公司到中国来收购的高科技公司。在收购以后,赛灵思对我们很认可,也付出很多。因此我们要负责到底,不能还未交付足够的价值就离开。

二、要对我的员工负责,我留下来可以照顾他们,让他们安心。

(注:截止发文,AMD 以 350 亿美元宣布收购赛灵思)

:在信奥赛比赛时,我们需要三个人协作,彼时我们队友之间需要通过看纸质代码 DeBug;或者有人上机时,其他队友就去解决别的题目或者从旁观察,防止上机的人写出 Bug。因此这是一个很在乎分工合作的过程。

我上大学之前,也有一个团队。这个团队给我的最大感受是:一个团队里面,最优秀的人越出色,整个团队的水平也会随之上升。虽然外界都说姚班很厉害,压力会很大,但我觉得这是挺好的事情,在合作中竞争的团队精神会对团队的发展很有帮助。

:首先退休是真的,我没有再去参与公司的日常管理。因为身体不好,我正在锻炼身体,平时会关注一些感兴趣的东西,也写一些自己用的游戏代码,不是作为商品去写的。譬如游戏外挂之类的,当然这不方便拿出来炫耀。为了完成游戏的任务,写代码将自己从劳动中解放出来。

:程序员的生命周期我认为是可以一直写下去的。我不写商业程序是因为体力跟不上,商业程序需要规定时间,而我自己写个小游戏可以有时间就写。因此只要有逻辑思维在,我认为程序员就可以一直干下去。有人 80 岁还一直在写程序,多写程序说不定还能防止老年痴呆。

:关于 80 岁的问题我特别有感触,这个问题被我们讨论过很多次,我自己的团队就招了好多前辈。当我在谷歌的内核团队时,周围都是爷爷级别的程序员,并且他们真的是顶梁柱,他们写出来的程序都像是艺术品。我在此大言不惭说一句:我觉得中国软件业要发展,就看我们到底有多少爷爷级的程序员,看有多少爷爷还在写程序。

一个人往后台发展的话,读完博士或者硕士,年龄就要大一些,然后要在公司里真的做过系统或者工程,五六年才能完成一个,做完两个就要 40 岁以后了。因此我认为 40 岁以后才是程序员的黄金时期,才能创造世界级的工程。

:基于上一个问题,首先我并不认为只有年轻人才能写出好软件。在中国普遍认为只有年轻人才能做出好软件的原因是,

因此在这个方面,中国软件的观念一定要扭转过来。

在转岗问题上,想成为软件管理者或者想成为标杆,需要具备三点特质:

  1. 这是做软件产品所需非常重要的洞察力,因为软件与硬件不一样,它变化太多了。如果往回做产品和技术,是不可能做到很大份额或者世界领先的。以操作系统为例,只有开创新的机会点,未来国产操作系统才有希望。

  2. 以个人为例,我每天花一小时学习,多年来雷打不动,John L. Hennessy / David A. Patterson写的《计算机体系结构》,我从第二版学到了第五版。因为如果你没有相关能力就无法管理团队,别人需要决策的时候,你没有自己的判断,就无法选择正确的答案。

  3. 布道就是让别人理解你的想法,不论是对客户还是投资人,抑或是在企业里,只有对方理解了,才会对你的项目进行投资。

:按我个人理解,首先,开源不是技术问题,而是商业选择的问题。商业从哪来?这就决定了手段的不同。例如苹果闭源很成功,安卓开源也很成功,所以这不是问题的本质,而是商业选择的问题。

其次,构建生态跟做 TO B 完全不一样。做 TO B 时,交易发生的角色很清晰:提供者和客户。而构建生态时角色会变多:最终享受生态的消费者,各种生态贡献者,如软件贡献者,硬件贡献者,应用贡献者等等。如果这些人不能获得很好的利益平衡,生态很难走下去,所以生态比 TO B 复杂很多。

:竞赛选手培养的应该是逆向思维,这在产品或工程里面有非常合适的岗位。因为在做产品的时候,不能只用正向思维来设计。以交换机为例,它是一个必须高度可靠的设备,而我们把其功能实现其实只完成了一小部分,另外 60%-80% 是处理异常情况下的解决方式。因此我们也招聘过一些竞赛选手,他们的逆向思维,尤其是用攻击的视角去看待产品时,会给设备的实现提出非常有价值的建议。

:竞赛培养的是快速学习和解难题的能力。唐文斌(旷视联合创始人兼CTO)就在培养高中生做 AI,也招一些竞赛选手,然后发现头脑聪明的人上手也很快,所以竞赛本质是一种选拔机制。

:要勇于肯定自己,不能在舒适区里面,要往上走,不断学习,做自己不敢做的事情。

:中国软件的上层应用,如移动App,在全球已经是超前水平,但在基础软件方面还存在一定的差距,因此我希望在座的程序员多关注底层软件,只有把基础打扎实了,才能把楼建得更高。

:活到老,写到老。

:做软件,一是心要静,二是持续学习。

:两年前的一次1024大会上,我曾呼吁:程序员太辛苦了,在这一天一定要放半天假。

现在我仍然呼吁:10月24号应该为所有程序员放半天假。

:要多思考,勇于创新。虽然别人可能已经做了十年的技术,我们不一定很快赶上,但我们换一条路就会变成新的赛道。

:以倪院士曾经的一句话作为结尾,「坚持你认为正确的事情,熬过寂寞期,你就能够成功。」

CSDN旗下公众号全新

现在体验有每日参与搜索打卡,

每日体验CSDN公众号搜索功能打卡

 
     
 
     
更多精彩推荐
 
     
 
     
 
     
 
     

☞开源数据库再创里程碑,PingCAP 获 2.7 亿美元融资

 
     
 
     
 
     
☞全球数百万台 Mac 疑似因 Big Sur 更新险酿计算灾难,苹果官方回应来了!

☞JavaScript 稳居第一、C# 连续下跌,调查 17000 名程序员后有了这些新发现!

☞中国第一代程序员潘爱民的 30 年程序人生

 
     
 
     
 
     
☞漫画:什么是 “千年虫” 问题?
☞万万没想到 Java 中最重要的关键字竟然是这个!
点分享点点赞点在看

标签: hr2401智能无线压力变送器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司