转自:http://news.csdn.net/a/20100901/278908.html
CSDN博客作者green_girl近日发表了名为“程序员之死”的系列文章,对“产品的成功跟技术之间的相关性”进行了讨论,提出了自己的观点:技术不是最重要的。文章的标题比较耸动,但其中的一些观点可以引发我们的思考。欢迎大家参与讨论。下面是文中观点的一些整理:
程序员“已死”?
Kent Beck在《实现模式》一书中提到:“写的好代码不一定市场上面买的好,市场上面很多用垃圾代码堆砌而成产品正在赚着大钱……”
他肯定比我们要接触多得多的产品多得多的项目,他说这样的话肯定基于自己这么多年做咨询师的经验。可能某个产品他认为架构很优秀,架构很合理,却没有成功;某个架构很落后,技术很普通的产品却大卖。
所以可以说, IT产品的成功跟技术本身关系不大, 程序员和技术本身并不是最重要。在我看来产品经理才是最重要的角色。
现在很成功的Apple的多点触摸、mp3和iPad,这些大卖的产品的技术本身都不是源自 苹果本身;Facebook的开创人不是搞技术的(CSDN编者注:此说不对,Zuckerberg是典型的编程神童,而且现在还在写代码);Google算是纯技术出身的,但也是在找到Adwords这种商业的模式,又找了一个懂市场的CEO之后,才开始爆发式的增长。
事实证明,技术是程序员小圈子里面的自我陶醉,如果想有大的发展一定要跳出这个圈子。
程序员已经“死掉”,作为程序员,不要以为技术很牛很了不起,其实最重要的是市场的策划,对产品的合理定位,和对技术的合理运用。我们的技术是用来为商业产品服务的,千万不要本末倒置。
单纯的讨论技术没有任何意义
所有的技术都是为我们程序员自己服务的,用户才不关心你的技术够不够先进。
技术不是最重要的,相对而言技术甚至没有商务重要。我们技术人员就是酿酒的师傅,再好的酒还要把它卖出去。技术这东西,你能做出来,别人也不会比你差到哪里。只有靠专利保护自己了。但是品牌和市场的定位,却不是一天两天能追上来来的就像 苹果的产品一样。技术的保护壁垒相对于市场和文化的保护壁垒,我觉得技术的突破容易的多。
不是说用了Ajax的网站一定比没有Ajax网站赚钱;
不是说Rails的网站一定比J2EE的网站赚钱;
不是说J2EE的网站 一定比CGI的网站赚钱。
我自己也是一名程序员,一个技术人员,我也希望技术人员的地位最高。可是从我经历过的公司看:国企的关系最重要;IT起步小公司,市场部最重要;外企的Marketing department最重要。不知道Google里面程序员的地位有多高,能不能否定产品经理的某些想法。
总而言之,研究人的永远比研究技术的有更大的发展。
作者也强调,他的观点不是技术无用,而是“技术不是最重要的”。
合理规划你的程序人生
对于面临职业困扰的程序员和准程序员们,一定要认清自己究竟最适合什么,首先“你不一定非要做技术”,其次“眼光一定要放远,不要拘泥于技术,更不要拘泥于某一种技术”。
人生就像是马拉松,你刚毕业可以现在做技术,工资还可以。但是十年后怎么样? 你最好现在就做个职业规划。
从自己的性格来看看, 你究竟适合什么。如果你看技术书就犯困,可能做程序员能爬到的高度有限。如果你很喜欢和人打交道,很有组织才能,可能程序员不是你最好的选择。如果你有演讲能力或者组织领导力,千万不要浪费,找个可以发挥你特长的地方。
(CSDN的博客专家钟声对程序员职业规划有一系列的建议,可供大家参考。)
技术还是重要的
如果你喜欢编程,而自己觉得在这方面还有些小天赋,那么千万不要放弃。你有大把的机会和在这个变化万千的世界里面展示自己的那一小点天赋。没有其他任何一个行业会给你像IT一样的白手起家、平步青云的机会,你看一下最近的财富排行榜,你会发现最近的新起富翁都是搞IT的。
所以,如果你是一个充满激情、喜欢尝试新事物,经常有些异于常人的想象力,
来做程序员吧,你会每天都学到新知识。做个激情的程序员。
【CSDN总编观察】
这篇文章所谈到的也算是老话题了,但是应该归结为是一个伪问题。
技术重要吗?是不是最重要?到底什么最重要?当然没有固定的答案。如果做一个建模,这样的问题的答案显然是一个多变量的方程式,必须去看上下文、限制条件。从企业、团队成功的角度来说,当然产品的成功是至关重要的(但也有前提条件:你所处的是不是一个自由竞争的市场?),产品的成功取决于很多因素,是否满足需求、成本、资源、市场营销、用户体验、核心技术等等,不同的竞争环境与条件下,哪个因素最重要,恐怕答案都不一样。当然,从用户角度来说,好产品的标准还是清晰的。
一个创业公司,什么都没有的时候,当然是做什么(产品)最重要。但是做什么和是否能做(技术、资源)又息息相关。有了产品,市场推广当然关键。但是相比竞争者,你的用户体验和技术是否能形成优势,却是市场推广的基础。即使是设计与营销都非常成功的产品,没有技术保障也是不行的。比如iPad上令人惊艳的社会化电子杂志Flipboard,媒体关注之下火爆以后,却因为后端准备不足让用户排队登录使用,实在是太失败了。如果这时候有了竞争者跟随,你造起来的势就很容易被人摘了胜利果实。
之前我多次表示过,我们正处在一个大变革的时代,移动互联网带来的终端多样化,和云计算支撑之上的整个星球的数字化管理远景,很可能引发多行业的大整合,最终重塑为一个超级的信息产业链。从中期来看,社会对技术尤其是IT技术的需求将与日俱增。如何实时、智能地处理来自各种信息源(历史的,位置的,不断新增的)、人(SNS)、东西(物联网)的海量数据,得到可以影响决策、改变生活的结果,以好用的产品实现出来,提供给大众?这是一个前所未有的大机遇和大挑战。像Twitter这样从一个想法迅速发展为亿万人每日使用的日常工具,仅仅过了几年而已。研发人员,尤其是软件工程师和产品设计者,你们可以发挥的天地可以说从来没有这么宽广过。
对于年轻的从业者和准从业者,首先应该做的,是了解自己,优势在哪里?资源在哪里?到底适合干什么?
不太明确的时候,可以找机会尝试。这期间,注意开拓自己的眼界,多参加社区活动,多阅读行业杂志,多了解相关行业和领域的知识比如用户体验,广交朋友。
然后,做出自己的选择:技术人员?技术推广?产品?营销?项目管理?……
一旦做出选择,就踏踏实实地钻下去,在某个点上做到他人所不及,至少是局部最强。当然,仍然要不时抬头看路,伏地听声,扩大自己的知识面,多从他人的角度思考问题。
CSDN开始举办以TUP(技术+用户体验+产品)为名的系列线下活动,《程序员》杂志也在不断拓展自己的选题范围,都是我们对这些趋势的反应,希望对广大研发人员能有所帮助。也欢迎大家通过我的邮箱或者新浪微博向我们建言献策。
分享到:
相关推荐
其实在我看来,收入的不同包含两个概念,首先是收入模式的不同,可以说大部分的程序员都是拿死工资,或者偶尔有一些项目奖金,然后年中或者年终的时候,给你象征性的涨一点,除非是公司里面的核心开发人员或
20. 程序员的爱情观:将爱情与编程概念相联系,如死循环代表执着,常量代表忠诚等。 21. 程序员在节日购物中的角色:暗示程序员的技能在现代生活中具有实用性。 22. 编程语言的比喻:通过汽车类型比喻编程语言的...
程序员10大职业生存技巧 ...最后,我要告诫大家,不要累死累活全身心地奉献给团队,最后还吃力不讨好。如果有人拿着Gerald M. Weinberg的《无我编程10戒律》来反驳,那我可以告诉你,这玩意写于1971年,早就完全out了。
根据给定的信息,“程序员面试之九阴真经”这一标题暗示了这是一份关于程序员面试技巧及必备知识的指南。其描述中提到“关于一些编程所用到的经典知识,以及一些容易混淆的概念”,这意味着这份文档将涵盖编程领域的...
### 黑马程序员入学Java精华总结 #### 一、Java概述与基础知识 1. **何为编程?** - 编程是指通过编写计算机能够理解的指令来解决问题或完成特定任务的过程。这些指令通常被组织成算法,并使用某种编程语言实现。...
【Java初级程序员必备知识点】 Java 是一种广泛使用的高级编程语言,尤其在企业级应用开发中占有重要地位。对于初级Java程序员来说,理解并掌握以下几个关键知识点至关重要: 1. **线程状态及其转换**: - **新建...
【程序员工作 IT 从业者健康指南】是一篇关注IT行业工作者健康的文档,强调了健康对于IT从业者的重要性,尤其是在当前高强度工作环境下。文档中提到了多个方面,旨在帮助IT从业者改善工作生活习惯,预防亚健康和过劳...
根据提供的文件信息,我们可以整理出一系列关于SCJP(Sun Certified Programmer for the Java Platform)认证考试中的关键...通过这些知识点的学习和理解,可以帮助Java程序员更好地掌握这门语言的核心概念和技术细节。
【2009程序员考前预测题】主要涉及了C语言编程的相关知识,包括程序设计、循环控制、数组、函数、条件判断、运算符优先级以及保留字的识别。下面将对这些知识点进行详细的解释和阐述。 1. **函数与参数**:在C语言...
5. **优化**:编译器在这一阶段尝试改进代码,使其运行更高效,可能包括删除冗余代码、循环展开、常量折叠、死代码消除等。 6. **代码生成**:最后,编译器将优化后的中间代码转化为目标机器的语言,通常是机器码或...
编译器之所以必要,是因为人类编写的代码必须被转换成机器能够理解的语言。这一过程涉及源代码的语法分析、语义分析、代码优化和代码生成等多个阶段。 2. **编译器相关程序与工具** 书中的“与编译器相关的程序”...
### 黑马程序员入学Java知识(精华总结) #### 一、Java概述与基础知识 ##### 1、何为编程? 编程是指使用计算机语言来编写指令,这些指令被计算机执行以完成特定任务的过程。通过编程,我们可以控制计算机的行为...
优化器的目标是提高代码的运行效率,例如通过删除冗余计算、展开循环、死代码消除、常量传播等技术。这些优化可能在不同的层次上进行,包括语句级、函数级甚至整个程序级。 最后,目标代码生成阶段将中间代码转化为...
微信关注公众号【人工智能图谱】,加入技术群 ...这种情况也真的是魔幻现实,当时头脑一热毅然放弃开发转做AI领域的程序员,恐怕都想不到这个落差来得太快就像龙卷风。 往大了说,这个问题我把它归结为:如何选择技术
### 黑马程序员入学Java知识 #### Java概述与基础知识 1. **何为编程?** - 编程是通过特定的计算机语言来编写指令,让计算机能够执行一系列任务的过程。 2. **Java语言概述,历史、特点** - Java是一种广泛...
- **继承性**(Inheritance):是面向对象语言的核心特性之一,允许子类继承父类的属性和方法,是创建类层次结构的基础。 - **类库**(Class Library):是衡量一个面向对象语言成熟度的重要标志,丰富的类库能...