`
cjc
  • 浏览: 683356 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

想起了C++之父:产品与技术都要互相尊重对方的专业(转)

阅读更多
<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>

作者:高巍 来源:互联网产品经理博客(http://hi.baidu.com/inetpm

大概是01年,我因为侯捷先生(深入浅出MFC、C++对象模型等书的作者)的介绍,与C++语言的发明人Stroustrup通过几次email。成为Stroustrup先生的粉丝,更多是因为他的哲学理念和我非常一致。

在《The Design and Evolution of C++》(C++语言的设计与演化)中,Stroustrup写道:

我在文学方面更偏爱马丁.汉森、阿尔伯特.加缪以及乔治.奥威尔等的作品,这种文学风格方面的阅读偏好使得我更不情愿仅仅根据理论和逻辑作出决定。从此意义上说,这些散文家和作家,虽然从未见过计算机是什么,但是他们对于C++的贡献可以说和计算机科学家如David Gries,Don Kunth,Roger Needham一样大。

在《The C++ Programing Language》(C++程序设计语言)中,Stroustrup曾列出一个参考书目清单,所有的书都是计算机类,只有2本例外:乔治.奥威尔的《1984》和《动物庄园》。而关于C++命名的由来,Stroustrup也反复提到奥威尔的《1984》。

在Twitter被封的今天,我更加欣赏这位技术大师在人文和社会方面的洞察力。

C++之父Stroustrup曾有一个访谈录,颇有geek的恶搞精神,引人一笑,耐人寻味。摘录部分:

记者: 您在几年前你改变了软件设计世界的面貌,现在再回首往事您有什么感想?

Stroustrup: 事实上我在你到来之前的这些天里一直在考虑这件事,你还记得几乎所有的人都在写C程序那会儿吗?麻烦的是这些人写得太好了,而且那些个大学也都在努力的传授C编程技术。的确他们是十分的成功——我要特别的指出“成功”这个词——因为这种显著的C程序员的培养效率,这就是产生问题的原因。

记者: 这难道是个问题吗?

Stroustrup: 当然,你记得大家都在用Cobol语言写程序的时候吗?

记者: 哦,当然,当时我也一样。

Stroustrup: 在一开始的时候,这些人简直象半个上帝似的拿着高工资,享受着贵族一样的待遇。

记者: 唉,那些日子多么的让人怀念,是吧?

Stroustrup: 当然了。但是接着发生了什么?IBM觉得这样不舒服,就投资了数百万来培养程序员,直到程序员多得一毛钱就可以雇一打。

记者: 这就是为什么当时我撤出来了,工资在一年里就降到人们在说做个记者都比程序员强的地步。

Stroustrup: 对啦!那时侯相同的事情发生在了C程序员身上了。

记者: 这个我明白了,可是您要说的是……

Stroustrup: 有一天,我坐在办公室里就在想如何能把这件事挽回一些。我想知道如果有一种特别复杂而且难以学会的语言,是否就没有人可以又把程序员们搞到市场的泥潭里去呢?我用了从X10里了解到的东西,噢,就是X-Windows,真是一个该死的图形系统,只能运行在那些个SUN 3/60的机器里,哈!它具有所有我想要的特征:可笑而复杂的语法,含混的功能描述,还有伪装的OO结构,就算是在现在,还是没有人愿意用那些东西,如果你不想发疯的话,Motif才是唯一解决方案。

记者: 你是在开玩笑吗?

Stroustrup: 没有,事实上还有另外的一个问题,UNIX是用C写的,就是说任何一个C程序员都可以很容易的成为系统程序的开发者。还记得一个大型的主机系统应用的开发者通常能挣多少钱吗?

记者: 你肯定是知道我当时就是干这个的。

Stroustrup: 好吧,因此这个新的语言一定要通过隐藏所有的系统调用来和UNIX分离开来,这样可以使那些个就只是知道DOS的人也可以活得很体面。

记者: 我不大相信您说的这个……

Stroustrup: 而且到现在时间也够长的了,我相信有很多的人已经指出了C++是对时间的浪费,我要说的是,这个过程比我想象的要长的多了。

记者: 我不得不说着太可怕了!你还说这是用来提高程序员的工资,这太龌龊了!

Stroustrup: 龌龊?不是这样的,任何人都有选择的权利。我是并不想让事情发展成这个样儿的。不管怎么说,我基本上还是成功的。C++现在已经不行了不是?而且程序员现在还是能挣到高工资的

...记者: 那么你为什么认定你已经成功了呢?

Stroustrup: 还记得一般一个C程序项目要多长时间吗?一般是6个月。这对于一个要养活妻子孩子的程序员是不够的。如果是一样的项目,但是用C++来开发,会怎么样呢?我告诉你:要一两年才能做完!这不好吗?就是一个小小的编程语言选择的决定,语言程序员就不会轻易的下岗了不是?

记者: 果把这些东西发表了,我们可能在这个行业里无法立足了,你知道吗?

Stroustrup: 但是这是个世纪故事,我只是想让我的程序员伙伴们记住我为他们做了什么,你知道这些个日子里C++程序员可以挣多少钱吗?

记者: 我所听说的是一个顶尖的C++程序员一小时可以挣到70~80美圆。

Stroustrup: 知道了吧!而且我打赌他肯定可以挣那么多!!

C++之父Stroustrup揭下了技术神秘的面纱,原来那些不可一世的骄傲的程序员的老底如此啊,呵呵,当然是笑话。提起这个故事,是因为想说说技术和产品的关系。

技术质疑产品的专业性,认为产品的那些工作,人物角色、用户访谈、焦点小组、原型设计、法律事务交涉、销售推介和规划、运营培训和指导,“看上去很容易”,“显得”不如编程代码那么复杂,那么有“技术含量”。(很有意思的一点,在评价贡献的重要性上,一般更容易看到产品价值而忽视技术价值;在评价职位的专业性上,反过来更容易看到“技术含量”而忽视“产品含量”。)

而且,由于“没吃过猪肉,也见过猪跑”的心态,技术一般也是网络的重度使用者,觉得自己也用过玩过很多网站,理所当然也认为产品应该这么做那么做。

项羽见到秦始皇出巡,萌发“彼可取而代也”的想法,技术这时也有产品经理能做的工作自己也能做的想法。

而产品,如果了解一些技术,或者在网上读了几篇半懂不懂的博文或帖子,也容易对技术的专业性产生轻视。特别是,最近十年来技术本身的进步,IDE越来越傻瓜化、可视化,动态语言越来越脚本化、语法也越来越友好。稍有技术背景的产品经理,跟着网上的技术教程做一两个demo在原理上走通一遍程序也是不难的。

这时候,产品容易犯的错误就是,不是与技术沟通需要达到的目的(Purpose)和意图(Intension),而是直接提出解决方案(Solution),应该这么做那么做,技术也会有被冒犯的感觉。或者,产品认为,我自己在笔记本电脑上做个差不多能跑起来的原型只用了多久多久,为什么技术却声称需要那么长时间?

魔鬼往往隐藏在细节中,事情之所以这个样子,肯定有它的道理。

我做过开发,知道照着随便一本TCP/IP入门书上的例子做一个小的telnet的“toy program”,和开发一个在生产环境对海量用户提供telnet服务的工业级强度(Industrial Strength)的应用,这两者相差天壤的区别。所以,我常常告诉产品同学要理解技术,不要抱怨技术,当程序出现问题时面对运营人员和网友的投诉,产品还要毫不犹豫地替技术的兄弟们扛下。

技术之所以插手产品,更重要的是一个激励和体制上的原因。当然,这是老生长谈了,从我01年订阅《程序员》杂志起,感觉8年来“30岁还能不能做程序员”这个问题一直都是那么热,几乎是每年的年度调查题。

一般论坛上,“河南人、东北人”这种地域歧视贴,或者“要不要接受非处女”,几乎是月经贴。而在CSDN论坛上,“30岁还做程序员”、“那种语言好,那种Java框架好,那种JS库好”几乎也是月经贴。只要论坛人气跌了,版主就会拿出来炒一炒。

如果国内公司对技术的激励和体制不改变,那么产品和技术之间的矛盾就会天然存在。我考虑问题一直是从体制的层面出发,今天技术和产品之间的一些误会和矛盾,绝对不是个人的原因。

30岁还要不要做程序员?技术是否可以做一辈子?

这个问题如果始终还困扰程序员,困扰开发者,对自己的技术职业生涯感到困惑,那么这个矛盾现阶段只能靠产品经理的情商、沟通能力、团队兄弟们的友爱凝聚力等等方式来解决。这些当然也很重要,我也一直推崇“人情练达即产品”,但确实存在“情分”和“本分”的区别。如果制度流程上的分工、各自专业性没有一个契约精神的“本分”层面的尊重,完全靠“情分”来协调,那只能是大家都做了体制的牺牲品的悲哀。

分享到:
评论

相关推荐

    C++高效编程:内存与性能优化(pdf版)

    《C++高效编程:内存与性能优化》是一本专注于C++编程语言内存管理和性能调优的书籍。本书深入探讨了如何在C++编程中高效地使用内存资源,以及如何进行性能优化,以编写出既高效又优雅的代码。 书籍作者Rene ...

    c++ 之父经典之作

    C++程序设计语言(特别版) 习题详解(含目录) c++ 之父之作 将晦涩的c++演绎。。。。。

    C++程序设计原理与实践(基础+进阶版) 第二版

    C++之父编写,我在学习C++过程中...以基本概念和基本技术为重点:与传统的C++教材相比,《C++程序设计原理与实践》对基本概念和基本技术的介绍更为深入。这会为你编写有用、正确、易维护和有效的代码打下坚实的基础。

    c++ 高效编程:内存与性能优化 源码 代码 实例

    专家作者Rene Alexander与Graham Benstey将在本书中详尽阐述C++优化技术和技巧:学习书中的现实应用程序、实用诀窍、解决方案与技术,可轻松编写高效而理想的应用程序、阅读本书后,你的编程技术必定将再迈新高:...

    02_C++之父的书_C++程序设计语言特别版

    本书由C++语言 的设计者编写的,是...本书涵盖了标准C++以及由C++所支持的关键性技术和设计技术。标准C++较以前的版本功能更强大,其中许多新的语言特性,如名字空间、异常、米板、运行时类型声明等新技术得以直接应用

    Visual C++权威剖析:MFC的原理、机制与开发实例.pdf

    《Visual C++权威剖析:MFC的原理、机制与开发实例》是一本深入讲解MFC(Microsoft Foundation Classes,微软基础类库)的专业技术书籍,由辛长安和王颜国编著,由清华大学出版社出版。本书主要针对已经具备一定...

    Beyond the C++ Standard Library : An Introduction to Boost (中文)

    Beyond the C++ Standard Library : An Introduction to Boost (Chinese)

    xmlvalue xml与C++数据结构的互相转换

    当我们需要在XML文档和C++数据结构之间进行数据交换时,就需要进行XML与C++数据结构的互相转换。这个过程在进程间通信(IPC)和模块间通信中尤其重要,因为它能够降低不同组件之间的耦合度,提高代码的可维护性和...

    【迷你书】C++程序设计原理与实践(C++之父最新力作

    这本书是由C++语言之父Bjarne Stroustrup撰写的经典之作,它不仅详细地介绍了C++语言的基础知识,还深入探讨了由C++支持的关键编程技术和设计技术。 #### 三、核心知识点 ##### 1. C++语言基础 - **语法结构**:...

    Android C++高级编程:使用NDK(完整版带书签).pdf

    《Android C++高级编程:使用NDK》是一本深度探讨Android平台上C++开发技术的权威著作,完整版带有书签,方便读者随时查阅和学习。本书主要针对Android开发者,特别是那些希望利用C++来提升应用性能、降低内存占用...

    立足现实-与时俱进:C++-1991-2006(C++之父)

    ### 立足现实-与时俱进:C++-1991-2006(C++之父) #### 概述 本文旨在回顾C++程序语言的发展历程,特别聚焦于1991年至2006年间的重要事件和发展趋势。这段时间不仅见证了C++成为国际标准化组织(ISO)标准的过程,...

    C++之父经典巨作:C++程序设计语言(特别版)(原版)

    ### C++之父经典巨作:C++程序设计语言(特别版)(原版) #### 关键知识点概述 《C++程序设计语言》是由C++语言的创造者Bjarne Stroustrup撰写的权威著作,该书是学习和掌握C++语言不可或缺的经典之一。此特别版在...

    提高C++性能的编程技术.pdf

    ### 提高C++性能的编程技术 #### 一、引言 在《提高C++性能的编程技术.pdf》这份文档中,作者强调了基础对于编程的重要性,并通过个人经历阐述了为何掌握诸如离散数学、算法与数据结构、操作系统、计算机体系结构...

    C++STL之父访谈录 .txt

    ### C++ STL之父访谈录知识点总结 #### 标题与描述解读 标题与描述均指明了本文档是关于“C++ STL之父”的一次访谈记录。这里的“STL之父”通常指的是Alexander Stepanov,他是C++标准模板库(Standard Template ...

    C++语言导学 A Tour of C++(C++之父写的入门书)

    《计算机科学丛书:C++语言导学》作者是C++语言的设计者和最初实现者,写作本书的目的是让有经验的程序员快速了解C++现代语言。书中几乎介绍了C++语言的全部核心功能和重要的标准库组件,以很短的篇幅将C++语言的...

    C++之父 中国行的ppt

    【C++之父 中国行的PPT】深入解析C++编程语言 C++,由Bjarne Stroustrup创建,是一种多范式编程语言,它在标准C++的框架下,融合了过程化、面向对象和泛型编程的特性。这次C++之父的中国行分享了关于C++的核心概念...

    C++结构体和json/xml之间互相转换

    本篇将探讨如何在C++中实现结构体与JSON和XML之间的互转,并以`bson`库在`xbson`中的支持为例进行说明。 首先,让我们了解JSON和XML的基本概念。JSON是一种轻量级的数据交换格式,其数据结构主要由对象(键值对)和...

Global site tag (gtag.js) - Google Analytics