之前发表过一《多数学生认为“软件靠吃年轻饭”之我见》的博文,幸得《电子工程专辑》的编辑推荐,不少同行、前辈驻足围观,也留下了自己的意见和建议,以致新有所思所得,便又写了这篇东西。
这一部分整合网上同行、前辈的意见与建议,以及自己的所学所思,从实践的角度谈谈自己的看法,也作日后自身发展的训诫,一家之言,欢迎拍砖,以下为正文:
1.群众的眼睛不一定雪亮,少数人也未必代表真理,是什么蒙蔽了我们的眼睛?
上一篇博文发布后,编辑Ana问:程序员吃的是青春饭,这个观点博主又如何看待呢?
其实倒不能说程序员吃的是青春饭,而是觉得可以把程序员比作小学生,系统分析师等的比作中学生,小学生知识学习到一定程度总是要升中学的,老留级就该找下哪出问题了。
对于国内的软件人员来说,普遍都是从本科毕业后才算开始的,无论是读研或工作,对软件设计的要求此时才算真正进入到实用的高度,这就有一个问题,即程序员什么时候才具备“中考”的资格。
朋友(同属本科应届生)的一个表姐现任阿尔卡特朗讯上海贝尔实验室的项目经理,上海交大博士毕业,刚入职时做的是软件架构师。这位表姐是这么跟朋友说的:“如果三年后你还在做编码而不是软件架构的工作,说明你不适合做软件,准备转行吧。”虽说这话有些偏激,但也多少在理。
软件行业内,通常以30岁作为检验的分水岭,当然,越早向高阶转化越好。用中大讯通一个前辈的话说,就是:“感觉软件工程师提升的道路,局限于目前这种开发团队分工的方式,甚至大学教学的方式,不一定能够使工程师在进行简单重复(规范)地书写的同时,能够提升悟性(包括软件用户心理等方面)。楼主问题还是很有意义的:怎样提升创造性,和怎样先做好规范训练的关系。这2点基本可以按照年龄来分,当然每个人开始有悟性的年龄不同,方式更会有不同。自然,也就有很大部分的人,永远只会按照规范(甚或规范也没做到)、而永远没能力开始有悟性的创造活动。对于这类人,过了年轻阶段,例如说过了30岁,还只会重复书写,就糟糕啦!所以,如果你是这样的一个太过“普通”的程序员,到了年龄还是快转行吧。”
大抵便是这类“普通”程序员,满足不了行业对他们的要求,无奈之下只能转行,才造就了软件靠吃年轻饭的“现象”。
也有网友说:“这句话(软件靠吃年轻饭)放在中国就是真理,在现状。我见过59岁的德国的软件编程人员。中国可能有公司要么?”
首先应明确一点,公司都是盈利性的组织,你有多少产出,才有相应的多少收获,我不知59岁的软件编程人员效率有多高,但至少,他的薪资应该是和他的能力对应的。其次,欧洲的福利制度我还是知道一些的,那里没有高房价,没房子也能娶媳妇,而且不少人不爱生孩子,自也少了不少生活负担,加之完善的社会福利体系,那是一个相对安逸的世界,不像中国这样,要愁钱愁房愁媳妇,所以即便只是个“普通”程序员,当到老也没啥太大问题。可中国的朋友们就没那么好命了,穷则思变,这一行做不来,就得赶紧再找自己的路,柴米油盐酱醋茶,每一样都在逼着年轻人向上拼。
记得初中的政治课本里写过:“要透过现象看本质。”抓住本质的,才算真理;抓住关键的,也算得上道理;若抓的是表象和个例,怕也就只有歪理了。
2.从关注圈到影响圈,做“奋青”而不是“愤青”
其实不止是“软件靠吃年轻饭”这个话题,纵观网上各种对社会问题揭露与解决的探索,总能发现有这么一些人在说:“大道理大家都懂,可环境就是这样,我们只能接受”之类的话,或有一类更突出的,高呼“天朝短命论”大喊“环境决定论”,这种人叫“愤青”。
观察这类人,能发现一共同点,即某一程度上都是环境的“受害者”,而对于环境的“受益者”或“克服者”来说,则更多地认为环境是可以逐步改变的。在日常生活中所见的,前一类占了多数,后一类的仅是少数,这也应了李·罗斯所说的,多数行为者本身更倾向于认同环境的影响,试图改变环境,落败后则转向抱怨,而未曾思考自身的原因。
有朋友说痛恨这类“愤青”,其实正如王小波所言:“人的一切痛苦,本质上都是对自己无能的愤怒”,当这一痛苦无处宣泄时,才有了“愤青”的产生。只是光意识到问题存在还不够,如何避免自己掉入这样一个圈子,或如何从这个圈子跳出,做些实质性的改变,这才是应该关注的问题。
这里引用《高效能人士的7个习惯》中的几段描述来说明:
“首先请先试着跳出自我的框框,把意识转移到屋子的某个角落,然后用心客观地审视自己,你能站在旁观者的角度来观察自己吗?你能描述现在的心情吗?你现在精神状态如何?再想一想你的头脑是怎样工作的,它反应灵敏吗?是不是正在为这个心理实验的目的而疑惑?
以上都是人类特有的精神活动,而动物则缺乏这种自我意识的能力,即思考自身思维过程的能力。人之所以能成为万物之灵,一代又一代地不断实现重大进步,关键就在于此。这也是我们能从自己和他人的经验中吸取教训、培养和改善自身习性的根本原因。”
正因为自我意识的存在,使我们能够检讨自己的自我思维究竟确实发自内在,还是来自社会的制约与环境的影响,也正因如此,我们可以独立于外部的社会环境而选择自身的行为,用马哲里的说法,这叫意识的能动性。认识到这点后,再来看具体应如何“能动”——关注圈和影响圈的关系。
“每个人都有格外关注的问题,比如健康、子女、事业、国情、政治等,这些都可归入‘关注圈’,以区别于自己没有兴趣或不愿理会的事物。
关注圈内的事物,有些可以被掌控,有些则超出个人能力范围,前者可以被圈成一个较小的‘影响圈’。
积极主动的人专注于‘影响圈’,他们专心于做自己力所能及的事,他们的能量是积极的,能使影响圈不断扩大、扩张和成长。
反之,消极被动的人则全神贯注于‘关注圈’,紧盯他人弱点、环境问题以及超出个人能力范围的事情不放,结果越来越怨天尤人、自艾自怜,不断为自己的消极行为找借口,错误的焦点与对力所能及的事情的忽略,造成了影响圈的日益缩小。
只要我们的焦点在关注圈,就等于是允许自己受制于外界条件,自然就不会主动采取必要措施来推动积极变化。”
正因人自我意识的存在,可以自由选择思考焦点是在影响圈还是关注圈,位置的不同便产生了两种截然不同的处事方式——积极主动和消极被动,也就有了上面提到的环境“克服者”和“受害者”两种不同境遇和结果。
3.拿着错误的地图,再努力,达到目标也只能是个随机事件——通过正向偏差,了解如何正确地做正确的事
把人生比作走路,算是老生常谈了。但这里说些不一样的东西,即目标、方向、方式和努力的关系。
假定目标已经确立,此时需要一张标有各种通向目标道路的地图,接着选择一条最近路线,然后努力按着路线走。咋看之下似乎没有问题,有地图的指引、路径的选择加之自身的前进,假以时日总会到达自己的目标,只是万一手里拿着的地图是错的咋办?
现实生活中拿到错误地图的概率,我想还是比较小的,因为有专门负责绘测地图的工作和人员,但对于人生来说,我们又该找谁来为自己画图,或说我们的地图是什么?
在指引人的思考和行为上,有这么一个东西类似于地图的作用,叫思维定势,即按照积累的思维活动经验教训和已有的思维规律,在反复使用中所形成的比较稳定的、定型化了的思维路线、方式、程序、模式。“思维定势(paradigm)这个词来自于希腊文,现多用来指某种理论、模型、认知、假说或参考框架,但广义上是指我们‘看’世界的方法,这种‘看’和视觉无关,主要指我们的感知、理解与诠释。它是每个人看待世界的方式,未必与现实相符”。
像前面说到的“软件靠吃年轻饭”,就是不少人脑中的思维定势,拿着这么张错误的地图,有的人就直接不考虑软件做硬件,有的人还没学懂软件却想直接转入软件管理,或有的人一边埋头写代码一边却不知未来走向何方。
一位global star的前辈说:“會寫程序跟寫好程序是兩碼子事!!青春待磨練!!我年輕時熬夜寫程序,代碼長,功能雖都完備,也只能說寫完這個程序,現在不用熬夜,代碼短,程序庫多,輕鬆寫好程序,年輕用時間換經驗,累積本錢,任誰都一樣!! 呵呵!!”
确实,从体悟到领悟,总需要一个过程,思维定式的错误并不是那么容易发现的,所以人在磕磕碰碰中才得以成长的。只是还得考虑一个效率问题,如郎咸平所言:“世界上最愚蠢的人是非用自己撞得头破血流的经验才叫经验。”难道我们非得见了棺材落了泪、添了伤疤碰了疼才能慢慢走向该有的路线?
所幸现实并非如此,虽然思维定式的错误较难发现,但久而未至目标的问题还是很好察觉的,而相应的解决方法,前人也已做了不少功夫,它源于社会研究中的一种常用方法论——正向偏差。
所谓正向偏差是:首先,来到出现问题的主要地区(领域);然后,找到未出现问题的特殊个例;第三,找出成功应对问题的群体的特殊行为。观察软件行业的高阶人员,会发现他们除了立足于扎实的技术基础,还有其他如管理心理方面的知识和能力,这是他们区别于“普通”程序员的地方,也是不会沦落至靠吃“年轻饭”的资本。
从本质上看,技术终究只是人类实现其思维创造性的手段。人想跑得快些,便有了汽车,人想冲向天空,便有了飞机,人想简单快速地处理复杂的思维问题,便有了计算机和软件。技术有多高,相当于走的速度有多快,只是假如没有正确思维定式的引导,选择了和目标相反的方向,速度越快只怕距离越远。
上述提到思维定式的问题,出自于史蒂芬·柯维所著的《高效能人士的7个习惯》,而正向偏差则是从帕特森等著的《影响力2》中看到的,一本是管理类的书籍,一本则是心理类的,正如以前所提过的:做研发的,也要懂管理和心理。
当然也应该说,研发人员的主要精力还是应专注在技术上,对于管理与心理的,只是出于应用考虑,而非创造,选择经典实用的书籍学习并运用到现实生活中来便可,通才不好当,但综合性强的专才还是值得努力的。
4.前途是光明的,道路是曲折的,想法很美好,现实很残酷
谈不上多喜欢林俊杰的歌,只是有一段,每次听到总有些感触:
“那些你很冒险的梦,我陪你去疯,折纸飞机碰到雨天终究会坠落,太残忍的话我直说,因为爱很重,你却不想懂,只往反方向走。”
弗雷德里克·布鲁克斯说:“所有编程人员都是乐观主义者”,系统编程的进度安排背后总有一个错误假设是:一切运作良好,每一项任务仅花费它所应该“花费”的时间。由于编程人员通过纯粹的思维活动来开发,我们期待在实现过程中不会碰到困难,但是人类的思维逻辑本身就是有限制的,因此总会有BUG。
或许是大家还年轻,而年轻人总是些乐观主义者,或许是环境让我们习惯了关注结果而非过程中的学习积累,大学校园里也弥漫着类似的“乐观主义”——“我只要读好书、考好试、有一个好成绩,将来就会有一份好工作”“我有XX学校的XX学历,何愁没有好发展”“未来的时间还很多,慢慢来,不着急,会好的”。对于多数学生而言,成长的历程还是比较平坦的,小学考好了就能上好中学,中学考好了就能上好大学,按照这个思维定势,自会有不少人觉得大学里考个好分数就等同于有一个好前途,可惜正如前面所说的,思维定势这东西,未必与现实相符,等到某天磕了碰了才知道出了BUG。
这一年来也算和不少来自不同学校不同专业的同学有过交流,有的羡慕比尔·盖茨的辍学创业,有的向往巴菲特在股市中叱咤风云,有的则希望自己能成为像乔布斯那样的人,可以感受到,大家都是有想法、有梦想的青年。可是梦想这东西不是说出来的,而是需要长期的努力与准备。比尔·盖茨在创业前已经编了9年的程序,而且他有个当IBM董事的母亲,促成了微软的第一笔生意;沃尔·巴菲特不到10岁就在纽约证交所参观学习,而带他进去的,正是他在国会当议员的父亲;乔布斯的不像前面二位是富二代、官二代,但每天坚持4点起床,晚上9点半前完成当天工作,而其成果也是人所共知的。
前阵子见Mike写了篇关于创新的博文,谈的主要是中国缺乏创新人才的原因,有朋友表示希望以后自己从事的是策划类的工作,瞄准的便是国内的这个缺口。这个朋友确实有这方面的潜质,只是有些冷水还是该泼一下的。就软件业来说,好创意好项目每年还是不少的,但许多都半途夭折或未能取得预期成果,或是创意难以实现,或是执行的方式问题。之前提过软件的设计分三步:需求分析、系统设计和编码实现,要说明的是这三者并无从属、轻重之分,而是如鼎之三足一般,共同影响着整体的成果,且三者之间互相关联,做分析的也需了解架构和编码的情况,才能更好地调整需求目标,此外还有成本、采购、人力等多方面影响因素,而这些情况也就决定了无论做策划、管理或是研发,其着眼点都不应只是眼前的工作,而是要再上一个高度,从整体的角度关注自身对外界的贡献。综合性强的专才不仅是奋斗的目标,也是现实的需要。但要做到这一点,需要学习的仍有许多。
朋友说我是老年人的生活状态,早上6点起,晚上12点前睡,每天固定时间的健身或运动,可这些都是每天高效学习、工作十小时的基础。前阵子发烧至40度,身边也有不少朋友受了些风寒,还有最近看到郭涛学长的消息,“身体是革命的本钱”,这句话放在什么时候都不为过。
文章还没写完时,有学妹看后觉得压力好大,其实会写这些东西,只想引起更多对实际的思考与实践的探索,乐观并非不可,但不应是盲目的,而是以最好的心态为最坏的情况做准备。过去的回不来,未来的不确定,能把握的也就只剩现在。人可以放松身体,也可以放松精神,自我要求却放松不得。
取乎其上,得乎其中;取乎其中,得乎其下;取乎其下,则无所得矣。
前路还很长,愿君共勉。
用户1376226 2014-8-12 12:44
用户1537475 2014-8-10 22:35
用户1406868 2014-6-7 16:23
软件技术更新太快,一开始在PC上就是从C,C++到JAVA,后来就越来越多,大大小小的库,框架什么的,太多太快了,花几年时间搞一个东西,再过几年形势又变了。这不是苹果又搞了一个什么swift,也只能一味地被潮流牵着鼻子走。也就年轻又冲劲才行,等有了老婆孩子,也就只想着怎么养家,学习新技术什么的完全没有兴趣了。
用户445935 2014-3-14 08:52
tamkay_819533976 2014-3-10 16:26
刚才思考了几何学问题,最让我困惑的问题是点的明确定义是什么?因为线是由点组成,面由线组成,体由面组成,高维的超体由底维的体(或超体)组成,因此,点的问题没有搞清楚,一切问题就不会清楚的。
tamkay_819533976 2014-3-5 16:24
数学里有个多维空间,这个“多维空间”并非我们日常所说的空间,我们日常的空间可以用三位数组变量的最大集合来描述,借用空间一词,我们就称多维数组变量的最大集合为多维空间。
我猜想非欧几何一定是把距离的定义改变了。
用户1728761 2014-2-21 12:32
用户1735749 2014-2-3 11:37
用什么公理取代平行公理从而诞生了非欧几何呢?我们先来看平行公理的表述:过直线外一点只能作一条直线与已知直线平行。 如果将平行公理稍做改变且假设为:过直线外一点至少可以作2条直线与已知直线平行,保持其他公理相同,这样就诞生了罗氏几何学。 如果将平行公理稍做改变且假设为:过直线外一点不能作直线(0条)与已知直线平行,仍然保持其他公理不变,这样就诞生了黎曼几何学。 总之,博主的讨论话题还是新颖的,博主有很广阔的知识面。祝博主新春快乐!
用户1735749 2014-2-3 11:07
凤舞天新年好!不知为什么看到你谈论的问题居然就产生了兴趣,于是也来交流几句。
欧氏几何学与非欧几何学都是一定条件下的相对真理,不宜理解成谁推翻了谁,他们有不同的适用条件。平行公理还是正确的,平面几何学仍然是中学数学的教学内容。当然,可以用其它公理取代平行公理,正是在这种取代的情况下诞生了非欧几何学。相对于其它几条公理而言,平行公理的表述较为冗长,一些数学家认为它不像是公理。数学家猜测它也许是定理,并试图用其它公理来证明平行公理。在使用反证法尝试证明的过程中,没有能够否定平行公理的公理地位。但是发现前4条公理不变的情况下,第5条公理(平行公理)可以用其它公理取代,于是产生了非欧几何学。
用户1406868 2014-2-3 10:29