不同的公司环境会培养出不同的员工,程序员也不例外,由于大公司的开发框架十分成熟,稳定,而且充满盈利能力,所以开发者容易陷入拿来主义思维,而底层代码的编写能力正在逐渐退化。
前段时间,@developerworks在微博上向大家推荐了一篇引人深思的文章《程序员困境》,这篇文章的作者描述了在招聘内核程序员时所遇到的一个现象,一些来自大公司的“高级”程序员,却连最简单最基本的问题都无法回答,这不禁引发了作者的思考,下面是笔者的简译:
最近,我为招聘内核程序员而面试了数万个应聘者,有一些是来自有名的大公司,比如非常有名的芯片/嵌入式系统开发公司。许多人的简历制作的非常完美——涉及的各种项目、获得的各种奖项等,并有一些人声称,他们在内核研发上有10多年的工作经验,然而,令人惊奇地是,他们却无法回答一些基本的问题:当调用标准的malloc函数时,内核发生了什么?
别吃惊,当我让一个应聘者编写一个基于glib哈希函数的LRU缓存框架时,他首先声称自己从未使用过glib,于是我向他演示glib哈希API页面,并且详细地解释,然而一个小时后,他只写了几行凌乱的代码。我不知道在其它国家是否会有类似的情形,但在中国,或者更具体地说,在北京,这就是现实。那些“高级”程序员,在有名的外企工作几年后,连一些简单的、基本的问题都无法实现。
为什么?
我愈加思考就愈加认为,这不仅仅是与程序员自身有关,更与其所在的公司环境有关。这些公司通常会提供稳定的堆栈代码,并且多年来一直沿用着,几行没有任何变化。程序员整天围绕着这些代码工作,按照已有的思路去开发,无需自己动脑、去思考。如果长期在这样的环境下工作,并且也没有在外部进行提升和开阔,多年以后,你会发现自己处于很可怜的位置——在公司内部或团队里声称是“专家”,然而不幸地是,你却不能在市场找到一个与之平等的工作。
这就是所谓的“专家陷阱”。在当程序员的第一天,我们就梦想着成为团队/公司的专家,然而,当这一天到来,大家却陷入了困惑。越深入到当前的代码中,陷的就越深。渐渐地,我们丧失了那种从头开始创建完整项目的能力,因为现有的代码如此稳定。更糟糕的是,如果我们的主要工作仅仅是维护现有的代码,带有一些细微的功能添加和改善,一段时间后,无论你读过或学习过多么牛逼的代码,你将会发现自己不再会写代码——甚至是刚毕业那种简单的代码。这就是程序员困境:我们通过编码谋生,但环境却正在摧毁我们这种谋生的能力。
如何跳出困境
对程序员个人来说,首先,做自己的项目;其次不要待在同一团队超过两年时间。
给团队/公司的建议,给员工压力和挑战:轮流工作,让“专家”有机会拓宽自己的技能。定期举行黑客马拉松:这将有助于创建一个拥抱创新和创造的文化氛围。
对此,各位程序员,你们又是持何种观点呢?本文作者主要描述了程序员在大公司所面临的问题,你们身处的环境如何呢?不妨和我们一起分享下吧。
113 楼 Lance0512 2013-11-04 17:49
112 楼 沙舟狼客 2013-08-30 13:37
111 楼 eric860 2013-08-28 16:59
110 楼 WingForce 2013-08-28 13:21
楼主不是怕你没井打水喝,而是怕你有一天被人丢在一个大平原上,平原地下有着丰富的水资源,有你锄头,有干粮,却渴死了。人无远虑,必有近忧。
求把我丢在有着丰富的水资源,有你锄头,有干粮的大平原上。不知你怎么做到?
没有焦急感是因为你还没有看到更远的地方,而且你也没打算看到更远的地方,那么既然这样,你何必来回复楼主的帖子呢
尼玛,我看得远不远和我回复帖子之间有毛关系。先回去把离散数学学好了再来搞IT吧。
109 楼 WingForce 2013-08-28 13:20
你的梦想是赚钱,进入高层,只能证明你是个现实的,没有个性的人,不代表别人也这么想,
梦想进入高层就说明现实和无个性?
1,现实的人应该是立足当前,不会去想和做不切实际的事情,比如进入高层。
2,“个性”代表一个人的与众不同的地方比较突出明显。梦想如何体现个性同还是不同。
你去国外看看吧,不说远了,就说日本,一个技术员做了60年,他还是一个技术员,就研究哪一个东西,一研究就是60年,在中国,5年时间,一个技术员就成了主任,10年就成了经理,而研究技术的永远是那些新来的,每次都是从头再来,所以技术进步缓慢。
你想的是挣钱,进入高层,就证明你已经被社会同化了,我要怎么说你呢
你在扯啥?说话充满逻辑错误的话,搞技术也搞不好。
108 楼 alvin198761 2013-08-28 10:31
楼主不是怕你没井打水喝,而是怕你有一天被人丢在一个大平原上,平原地下有着丰富的水资源,有你锄头,有干粮,却渴死了。人无远虑,必有近忧。
求把我丢在有着丰富的水资源,有你锄头,有干粮的大平原上。不知你怎么做到?
没有焦急感是因为你还没有看到更远的地方,而且你也没打算看到更远的地方,那么既然这样,你何必来回复楼主的帖子呢
107 楼 alvin198761 2013-08-28 10:26
你的梦想是赚钱,进入高层,只能证明你是个现实的,没有个性的人,不代表别人也这么想,
梦想进入高层就说明现实和无个性?
1,现实的人应该是立足当前,不会去想和做不切实际的事情,比如进入高层。
2,“个性”代表一个人的与众不同的地方比较突出明显。梦想如何体现个性同还是不同。
你去国外看看吧,不说远了,就说日本,一个技术员做了60年,他还是一个技术员,就研究哪一个东西,一研究就是60年,在中国,5年时间,一个技术员就成了主任,10年就成了经理,而研究技术的永远是那些新来的,每次都是从头再来,所以技术进步缓慢。
你想的是挣钱,进入高层,就证明你已经被社会同化了,我要怎么说你呢
106 楼 WingForce 2013-08-27 14:24
你的梦想是赚钱,进入高层,只能证明你是个现实的,没有个性的人,不代表别人也这么想,
梦想进入高层就说明现实和无个性?
1,现实的人应该是立足当前,不会去想和做不切实际的事情,比如进入高层。
2,“个性”代表一个人的与众不同的地方比较突出明显。梦想如何体现个性同还是不同。
105 楼 alvin198761 2013-08-27 13:16
你的梦想是赚钱,进入高层,只能证明你是个现实的,没有个性的人,不代表别人也这么想,
104 楼 WingForce 2013-08-27 13:15
楼主不是怕你没井打水喝,而是怕你有一天被人丢在一个大平原上,平原地下有着丰富的水资源,有你锄头,有干粮,却渴死了。人无远虑,必有近忧。
求把我丢在有着丰富的水资源,有你锄头,有干粮的大平原上。不知你怎么做到?
103 楼 alvin198761 2013-08-27 13:13
你的领导愿意给你时间琢磨框架,能给多久?放眼中国,有几个领导愿意给你时间琢磨?
102 楼 alvin198761 2013-08-27 13:11
楼主不是怕你没井打水喝,而是怕你有一天被人丢在一个大平原上,平原地下有着丰富的水资源,有你锄头,有干粮,却渴死了。人无远虑,必有近忧。
101 楼 youarestupid 2013-08-26 18:18
怎么说呢?我看到过很多类似你这种思维的人,用一个不太恰当的总结你这种思维就是:对任何问题都能用貌似讲得通的道理来解释,但是这种解释总是给人一种“圆滑”的感觉。
我见过很多人在看待问题的时候,跟你的思维类似,比如:当大家讨论一个开发组中的技术人员懒惰不负责任的时候,总是有人回帖说:程序员不给力,因为技术主管管理无妨,技术主管管理无妨,因为公司垃圾找不到好主管,公司垃圾,因为总领导关系不行,公司总领导关系不行,所以公司就应该做不出好软件……
诸如此类,等等等等。
这种观点,貌似是讲得通的,也貌似是有道理的,但是总是给人一种【圆滑】的感觉,不像是做事解决事的风格。
100 楼 zzhxccw 2013-08-26 15:51
99 楼 deyimsf 2013-08-26 14:22
98 楼 luckymsg 2013-08-26 14:03
97 楼 dwangel 2013-08-26 13:11
哈哈,确实lz就是个哗众取宠的
这个才是真相啊。
96 楼 cosmo1987 2013-08-26 12:37
请回答 Glib 够底层了吗? Glib 下面还有C库, C库下还有系统API,系统API下还有内核API...
楼主并没有让你们搞那么深入,他的意思,比如你搞java的,尽量不要什么都是框架,离开框架什么都做不了了,你没有理解他的意思,要说底层 0101才是底层
事实的确如此。然后,
请回答 Glib 够底层了吗? Glib 下面还有C库, C库下还有系统API,系统API下还有内核API...
楼主并没有让你们搞那么深入,他的意思,比如你搞java的,尽量不要什么都是框架,离开框架什么都做不了了,你没有理解他的意思,要说底层 0101才是底层
程序员也是混口饭吃。能在框架下开发,就能在这一行一直混下去可能也行。
然而,对于java程序员,可能真不行。很多人恐怕会面临改行。
可是技术真是大拿了也不行呀。因为公司一但攻克了难题,只需要一些好一点的混子就可以运营的时候。这时也不必再养技术大拿。
程序员就是命苦。
这个感觉还是看公司领导层的眼界。懂的领导层肯定会养的。至于领导层到底懂不懂,就是大家在面试的时候需要从各个方面试探出来了。
95 楼 cosmo1987 2013-08-26 12:23
其实差别不大的,自学了但没有实践的场景始终不能印象深刻。
94 楼 boendev 2013-08-25 20:09