阅读更多

69顶
9踩

非技术

不同的公司环境会培养出不同的员工,程序员也不例外,由于大公司的开发框架十分成熟,稳定,而且充满盈利能力,所以开发者容易陷入拿来主义思维,而底层代码的编写能力正在逐渐退化。

  

前段时间,@developerworks在微博上向大家推荐了一篇引人深思的文章《程序员困境》,这篇文章的作者描述了在招聘内核程序员时所遇到的一个现象,一些来自大公司的“高级”程序员,却连最简单最基本的问题都无法回答,这不禁引发了作者的思考,下面是笔者的简译:

最近,我为招聘内核程序员而面试了数万个应聘者,有一些是来自有名的大公司,比如非常有名的芯片/嵌入式系统开发公司。许多人的简历制作的非常完美——涉及的各种项目、获得的各种奖项等,并有一些人声称,他们在内核研发上有10多年的工作经验,然而,令人惊奇地是,他们却无法回答一些基本的问题:当调用标准的malloc函数时,内核发生了什么?

别吃惊,当我让一个应聘者编写一个基于glib哈希函数的LRU缓存框架时,他首先声称自己从未使用过glib,于是我向他演示glib哈希API页面,并且详细地解释,然而一个小时后,他只写了几行凌乱的代码。我不知道在其它国家是否会有类似的情形,但在中国,或者更具体地说,在北京,这就是现实。那些“高级”程序员,在有名的外企工作几年后,连一些简单的、基本的问题都无法实现。

为什么?

我愈加思考就愈加认为,这不仅仅是与程序员自身有关,更与其所在的公司环境有关。这些公司通常会提供稳定的堆栈代码,并且多年来一直沿用着,几行没有任何变化。程序员整天围绕着这些代码工作,按照已有的思路去开发,无需自己动脑、去思考。如果长期在这样的环境下工作,并且也没有在外部进行提升和开阔,多年以后,你会发现自己处于很可怜的位置——在公司内部或团队里声称是“专家”,然而不幸地是,你却不能在市场找到一个与之平等的工作。

这就是所谓的“专家陷阱”。在当程序员的第一天,我们就梦想着成为团队/公司的专家,然而,当这一天到来,大家却陷入了困惑。越深入到当前的代码中,陷的就越深。渐渐地,我们丧失了那种从头开始创建完整项目的能力,因为现有的代码如此稳定。更糟糕的是,如果我们的主要工作仅仅是维护现有的代码,带有一些细微的功能添加和改善,一段时间后,无论你读过或学习过多么牛逼的代码,你将会发现自己不再会写代码——甚至是刚毕业那种简单的代码。这就是程序员困境:我们通过编码谋生,但环境却正在摧毁我们这种谋生的能力。

如何跳出困境

对程序员个人来说,首先,做自己的项目;其次不要待在同一团队超过两年时间。

给团队/公司的建议,给员工压力和挑战:轮流工作,让“专家”有机会拓宽自己的技能。定期举行黑客马拉松:这将有助于创建一个拥抱创新和创造的文化氛围。

对此,各位程序员,你们又是持何种观点呢?本文作者主要描述了程序员在大公司所面临的问题,你们身处的环境如何呢?不妨和我们一起分享下吧。

  • 大小: 24.8 KB
来自: csdn
69
9
评论 共 113 条 请登录后发表评论
113 楼 Lance0512 2013-11-04 17:49
我只能说lz 你有些偏激了,你说的现象是存在的,但是并不是像你说的那样“这就是程序员困境:我们通过编码谋生,但环境却正在摧毁我们这种谋生的能力。” 有的程序员就是专门研究底层的东西,封装给别的程序员使用,但有的程序员就是为了实现需求而去开发,他只要懂得和正确的使用别人开发的框架就好了,关注点不一样而已,难道你能说这部分的程序员以后就会饿死吗? 如果像你说的那样,每个程序员工作的时候都先研究底层的东西,我估计公司早就把他开了,只有站在别人的肩膀上才能做到更远。如果人人都在研究底层实现,我不知道程序员这个工作是否还有人做,反正我肯定不会做了。
112 楼 沙舟狼客 2013-08-30 13:37
强烈建议楼主删除篇文章,本来浮躁的社会已经让一部分人就够浮躁了,lz你这不是煽风点火,让一些人更浮躁吗?你手下的人都浮躁了,还有你lz的机会吗?
111 楼 eric860 2013-08-28 16:59
还在争论哪。。其实就是程序员的核心竞争力到底是什么?每个人认识不同而已。
110 楼 WingForce 2013-08-28 13:21
alvin198761 写道
WingForce 写道
alvin198761 写道
deyimsf 写道
如果说我现在口渴了,要喝水,难道我必须自己会打井吗。这个社会现在,以及以后是需要合作的。

楼主不是怕你没井打水喝,而是怕你有一天被人丢在一个大平原上,平原地下有着丰富的水资源,有你锄头,有干粮,却渴死了。人无远虑,必有近忧。

求把我丢在有着丰富的水资源,有你锄头,有干粮的大平原上。不知你怎么做到?


没有焦急感是因为你还没有看到更远的地方,而且你也没打算看到更远的地方,那么既然这样,你何必来回复楼主的帖子呢

尼玛,我看得远不远和我回复帖子之间有毛关系。先回去把离散数学学好了再来搞IT吧。
109 楼 WingForce 2013-08-28 13:20
alvin198761 写道
WingForce 写道
alvin198761 写道
kittychina 写道
问问普天下的中国,有几个搞技术的公司赚钱?财富榜前十位都是什么行业的?公司里面有几个搞技术的人是公司高层?这个环境还指望出技术牛人,做梦去吧

你的梦想是赚钱,进入高层,只能证明你是个现实的,没有个性的人,不代表别人也这么想,

梦想进入高层就说明现实和无个性?
1,现实的人应该是立足当前,不会去想和做不切实际的事情,比如进入高层。
2,“个性”代表一个人的与众不同的地方比较突出明显。梦想如何体现个性同还是不同。


你去国外看看吧,不说远了,就说日本,一个技术员做了60年,他还是一个技术员,就研究哪一个东西,一研究就是60年,在中国,5年时间,一个技术员就成了主任,10年就成了经理,而研究技术的永远是那些新来的,每次都是从头再来,所以技术进步缓慢。
你想的是挣钱,进入高层,就证明你已经被社会同化了,我要怎么说你呢

你在扯啥?说话充满逻辑错误的话,搞技术也搞不好。
108 楼 alvin198761 2013-08-28 10:31
WingForce 写道
alvin198761 写道
deyimsf 写道
如果说我现在口渴了,要喝水,难道我必须自己会打井吗。这个社会现在,以及以后是需要合作的。

楼主不是怕你没井打水喝,而是怕你有一天被人丢在一个大平原上,平原地下有着丰富的水资源,有你锄头,有干粮,却渴死了。人无远虑,必有近忧。

求把我丢在有着丰富的水资源,有你锄头,有干粮的大平原上。不知你怎么做到?


没有焦急感是因为你还没有看到更远的地方,而且你也没打算看到更远的地方,那么既然这样,你何必来回复楼主的帖子呢
107 楼 alvin198761 2013-08-28 10:26
WingForce 写道
alvin198761 写道
kittychina 写道
问问普天下的中国,有几个搞技术的公司赚钱?财富榜前十位都是什么行业的?公司里面有几个搞技术的人是公司高层?这个环境还指望出技术牛人,做梦去吧

你的梦想是赚钱,进入高层,只能证明你是个现实的,没有个性的人,不代表别人也这么想,

梦想进入高层就说明现实和无个性?
1,现实的人应该是立足当前,不会去想和做不切实际的事情,比如进入高层。
2,“个性”代表一个人的与众不同的地方比较突出明显。梦想如何体现个性同还是不同。


你去国外看看吧,不说远了,就说日本,一个技术员做了60年,他还是一个技术员,就研究哪一个东西,一研究就是60年,在中国,5年时间,一个技术员就成了主任,10年就成了经理,而研究技术的永远是那些新来的,每次都是从头再来,所以技术进步缓慢。
你想的是挣钱,进入高层,就证明你已经被社会同化了,我要怎么说你呢
106 楼 WingForce 2013-08-27 14:24
alvin198761 写道
kittychina 写道
问问普天下的中国,有几个搞技术的公司赚钱?财富榜前十位都是什么行业的?公司里面有几个搞技术的人是公司高层?这个环境还指望出技术牛人,做梦去吧

你的梦想是赚钱,进入高层,只能证明你是个现实的,没有个性的人,不代表别人也这么想,

梦想进入高层就说明现实和无个性?
1,现实的人应该是立足当前,不会去想和做不切实际的事情,比如进入高层。
2,“个性”代表一个人的与众不同的地方比较突出明显。梦想如何体现个性同还是不同。

105 楼 alvin198761 2013-08-27 13:16
kittychina 写道
问问普天下的中国,有几个搞技术的公司赚钱?财富榜前十位都是什么行业的?公司里面有几个搞技术的人是公司高层?这个环境还指望出技术牛人,做梦去吧

你的梦想是赚钱,进入高层,只能证明你是个现实的,没有个性的人,不代表别人也这么想,
104 楼 WingForce 2013-08-27 13:15
alvin198761 写道
deyimsf 写道
如果说我现在口渴了,要喝水,难道我必须自己会打井吗。这个社会现在,以及以后是需要合作的。

楼主不是怕你没井打水喝,而是怕你有一天被人丢在一个大平原上,平原地下有着丰富的水资源,有你锄头,有干粮,却渴死了。人无远虑,必有近忧。

求把我丢在有着丰富的水资源,有你锄头,有干粮的大平原上。不知你怎么做到?
103 楼 alvin198761 2013-08-27 13:13
zzhxccw 写道
哗众取宠,这贴还上推荐,还困境,当框架不适用与公司的时候,自然回去琢磨修改框架,自然回去研究,当能力不足时自然回去招人,招不到人就会反映给市场,这方面的人才价格就高,价格高自然就有人去学。这是规律。做程序员谁没遇到过困难。就你这里出困境。我踩。。

你的领导愿意给你时间琢磨框架,能给多久?放眼中国,有几个领导愿意给你时间琢磨?
102 楼 alvin198761 2013-08-27 13:11
deyimsf 写道
如果说我现在口渴了,要喝水,难道我必须自己会打井吗。这个社会现在,以及以后是需要合作的。

楼主不是怕你没井打水喝,而是怕你有一天被人丢在一个大平原上,平原地下有着丰富的水资源,有你锄头,有干粮,却渴死了。人无远虑,必有近忧。
101 楼 youarestupid 2013-08-26 18:18
zzhxccw 写道
哗众取宠,这贴还上推荐,还困境,当框架不适用与公司的时候,自然回去琢磨修改框架,自然回去研究,当能力不足时自然回去招人,招不到人就会反映给市场,这方面的人才价格就高,价格高自然就有人去学。这是规律。做程序员谁没遇到过困难。就你这里出困境。我踩。。

怎么说呢?我看到过很多类似你这种思维的人,用一个不太恰当的总结你这种思维就是:对任何问题都能用貌似讲得通的道理来解释,但是这种解释总是给人一种“圆滑”的感觉。
我见过很多人在看待问题的时候,跟你的思维类似,比如:当大家讨论一个开发组中的技术人员懒惰不负责任的时候,总是有人回帖说:程序员不给力,因为技术主管管理无妨,技术主管管理无妨,因为公司垃圾找不到好主管,公司垃圾,因为总领导关系不行,公司总领导关系不行,所以公司就应该做不出好软件……
诸如此类,等等等等。

这种观点,貌似是讲得通的,也貌似是有道理的,但是总是给人一种【圆滑】的感觉,不像是做事解决事的风格。
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
WingForce 写道
testlogin123 写道
【我为招聘内核程序员而面试了数万个应聘者】作者你不要写的这么夸张好不好,写实为好。你一天能面试多少个人哦。所以你写的文章同样让人觉得不可信了。

哈哈,确实lz就是个哗众取宠的

这个才是真相啊。
96 楼 cosmo1987 2013-08-26 12:37
gdpglc 写道
alvin198761 写道
ray_linn 写道
无双Rama 写道
[2.底层的东西一定要搞清楚然后放在自己的武器库里,仅仅去了解是完全不够的。关于重复造轮子作者好像没有提这个吧?



请回答 Glib 够底层了吗? Glib 下面还有C库, C库下还有系统API,系统API下还有内核API...

楼主并没有让你们搞那么深入,他的意思,比如你搞java的,尽量不要什么都是框架,离开框架什么都做不了了,你没有理解他的意思,要说底层 0101才是底层


事实的确如此。然后,
alvin198761 写道
ray_linn 写道
无双Rama 写道
[2.底层的东西一定要搞清楚然后放在自己的武器库里,仅仅去了解是完全不够的。关于重复造轮子作者好像没有提这个吧?



请回答 Glib 够底层了吗? Glib 下面还有C库, C库下还有系统API,系统API下还有内核API...

楼主并没有让你们搞那么深入,他的意思,比如你搞java的,尽量不要什么都是框架,离开框架什么都做不了了,你没有理解他的意思,要说底层 0101才是底层


程序员也是混口饭吃。能在框架下开发,就能在这一行一直混下去可能也行。
然而,对于java程序员,可能真不行。很多人恐怕会面临改行。

可是技术真是大拿了也不行呀。因为公司一但攻克了难题,只需要一些好一点的混子就可以运营的时候。这时也不必再养技术大拿。

程序员就是命苦。



这个感觉还是看公司领导层的眼界。懂的领导层肯定会养的。至于领导层到底懂不懂,就是大家在面试的时候需要从各个方面试探出来了。
95 楼 cosmo1987 2013-08-26 12:23
boendev 写道
真正会散失的只会是普通程序员,真正高级的,肯定会自学

其实差别不大的,自学了但没有实践的场景始终不能印象深刻。
94 楼 boendev 2013-08-25 20:09
真正会散失的只会是普通程序员,真正高级的,肯定会自学

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 程序员职业生涯系列:关于技术能力的思考与总结

    重复琐碎类工作的不同做法 抽象复杂类工作的不同做法 成长的维度 技术能力层次模型 术:硬核技术能力 法:技术架构能力 道:技术领导力 如何提升技术能力 寻找成长的源动力 常态化的总结与反思 实用技巧 程序员的...

  • [转][自勉]程序员困境:底层编码能力正逐步丧失

    原文:http://www.csdn.net/article/2013-08-19/2816613-Programmer%E2%80%99s-dilemma前段时间,@developerworks在微博上向大家推荐了一篇引人深思的文章《程序员困境》,这篇文章的作者描述了在招聘内核程序员时所...

  • 底层编码能力正逐步丧失

    不同的公司环境会培养出不同的员工,程序员也不例外,由于大公司的开发框架十分成熟,稳定,而且充满盈利能力,所以开发者容易陷入拿来主义思维,而底层代码的编写能力正在逐渐退化。   前段时间,@...

  • 技术能力的思考和总结

    在程序员界有一个悖论持续在困惑着很多技术人:在写代码的人的困惑是一直写代码是不是会丧失竞争力,会不会被后面年轻的更能加班写代码的人汰换。典型代表就是工作5年左右的核心技术骨干,此时正处于编码正嗨但也...

  • 阿里技术专家:最牛逼的技术能力,是技术领导力

    来源:阿里巴巴中间件01技术人成长的悖论Aliware在程序员界有一个悖论持续在困惑着很多技术人:在写代码的人的困惑是一直写代码是不是会丧失竞争力,会不会被后面年轻的更能加班写代码的人汰换。典型代表就是工作 5 ...

  • 从程序员到项目经理

    从程序员到项目经理(一):为什么要当项目经理 “从程序员到项目经理”,这个标题让我想起了很久以前一本书的名字《从Javascript到Java》。然而,从Javascript到Java充其量只是工具的更新,而从程序员到项目经理,...

  • 从房产中介到程序员--80后张江男

    一个80后程序员、张江男的成长史

  • 程序员生存定律

    http://blog.csdn.net/leezy_2000/article/details/29407747#comments 程序员生存定律这书是陆续发的,所以做个目录让想从头读的方便些: 前言:解码程序人生

  • 谈谈技术能力

    在程序员中,围城现象非常严重,是技术人在职业发展过程中必定会面临的困境。但要回答清楚这个问题,其根源不在于是写不写代码或者代码量的多少,其本质还是要回到什么叫技术能力以及如何提升技术能力这个根节点上来...

  • 基于单片机的科学型计算器设计(51+1602+KEY40)#0067

    包括:源程序工程文件、Proteus仿真工程文件、配套技术手册等 1、采用51/52单片机作为主控芯片; 2、采用1602液晶显示; 3、采用5*8矩阵键盘输入; 4、功能键包括:复位键(RST),回删键(DEL),确定键(OK),第二功能切换(2U),背光灯键(LED); 5、运算均为单精度浮点数,包括: 加(+),减(-),乘(x),除(÷), e底指数(e^n),N次方(x^n),开N次方(sqrt), 正弦(sin),余弦(cos),正切(tan), 对数(log), 阶乘(n!)(n<35), 排列(Arn), 累加(∑), *开启第二功能(2U)后可用: 反正弦(asin),反余弦(acos),反正切(atan), 组合(Crn)

  • 基于三菱FX2N PLC的机械手控制系统设计与实现

    内容概要:本文详细介绍了如何利用三菱FX2N系列PLC构建机械手控制系统。主要内容涵盖电路图设计、IO表配置、源程序编写以及单机组态。文中提供了具体的梯形图编程实例,展示了如何通过PLC精确控制机械手的各种动作,如抓取、移动和放置。此外,还分享了许多实用的调试技巧和注意事项,强调了传感器状态交叉验证和关键动作的时间守护机制。通过这些内容,读者可以全面了解PLC在机械手控制中的应用。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对PLC编程和机械手控制感兴趣的初学者和有一定经验的研发人员。 使用场景及目标:适用于需要设计和实施机械手控制系统的工业场合,帮助工程师掌握PLC编程技巧,提高机械手控制系统的稳定性和可靠性。 其他说明:文章不仅提供理论指导,还包括大量实战代码和调试经验,有助于读者快速上手并在实践中不断优化系统性能。

  • 豆包生成美女的AI提示词基于豆包平台的美女图像生成提示词

    内容概要:本文档提供了用于生成具有时尚性感元素的美女跳舞图像的提示词指南。文档内容包括角色设定为擅长描绘时尚与超现实主义图片的创作者,背景设定强调女性形象,偏好展现性感漂亮女孩的镜头表达。目标在于根据用户指令创作三幅统一风格的图像,注重色彩搭配和高清效果,同时确保每张图片都具备半身像、真实感和电影效果的特点。文档还给出了具体的输出示例,详细描述了人物形象、服装搭配以及场景布置等要素,旨在为用户提供满意的图像生成服务。; 适合人群:对图像生成感兴趣,尤其是喜欢带有时尚性感元素的美女图像的用户。; 使用场景及目标:①根据用户提供的简单场景信息(如户外或室内)生成三幅不同场景但风格统一的赛博朋克风格美女跳舞图像;②确保生成的图像符合特定的要求,如半身像、真实感、电影效果、性感服装、特定灯光效果等;③通过询问用户对生成图像的满意度来保证服务质量。; 其他说明:文档明确了图像生成的工作流程,从接收用户指令到根据反馈调整生成内容,确保整个过程高效且满足用户需求。同时,文档还限制了生成图像的具体条件,如场景必须为赛博朋克风格、不能出现鞋子和其他人等,以保证图像的独特性和一致性。

  • 蓝桥杯大赛模拟题PDF

    题目描述 1.问题描述 一个正整数如果任何一个数位不大于右边相邻的数位,则称为一个数位递增的 数,例如1135是一个数位递增的数,而1024不是一个数位递增的数。 给定正整数n,请问在整数1至n中有多少个数位递增的数? 输入格式 输入的第一行包含一个整数n。 输出格式 输出一行包含一个整数,表示答案。 样例输入 30 样例输出

  • 基于非对称纳什谈判的多微网电能共享优化策略及其MATLAB实现

    内容概要:本文详细介绍了基于非对称纳什谈判的多微网电能共享运行优化策略及其MATLAB代码实现。首先阐述了纳什谈判和合作博弈的基本理论,然后将多微网电能共享合作运行模型分解为微网联盟效益最大化和合作收益分配两个子问题。文中展示了如何通过交替方向乘子法(ADMM)进行分布式求解,确保各微网隐私安全。此外,还探讨了电转气(P2G)和碳捕集(CCS)设备的应用,以实现低碳调度。最后,通过具体代码示例解释了模型的构建、求解及优化过程。 适合人群:对电力系统优化、博弈论、MATLAB编程感兴趣的科研人员和技术开发者。 使用场景及目标:适用于希望深入了解多微网电能共享优化策略的研究者,旨在提高微网联盟的整体效益并实现公平合理的收益分配。同时,该策略有助于降低碳排放,提升系统的环境友好性和经济性。 其他说明:文章提供了详细的代码注释和调试技巧,帮助读者更好地理解和实现这一复杂的优化策略。

  • MATLAB机器人仿真:基于视觉控制的六轴机械臂运动路径规划与实现

    内容概要:本文详细介绍了如何利用MATLAB进行六轴机械臂的视觉控制系统仿真。首先,通过MATLAB的图像处理工具箱捕捉并处理实时视频流,使用HSV颜色空间进行颜色阈值处理,从而定位红色小球的位置。然后,借助Robotics Toolbox中的逆运动学模块,将摄像头获取的目标位置转换为机械臂的关节角度,确保机械臂能够精准地追踪目标。此外,还讨论了路径规划的方法,如使用五次多项式插值和平滑滤波器,使机械臂的动作更加流畅。文中强调了实际应用中可能遇到的问题及其解决方法,如奇异点处理、坐标系转换和机械臂的速度限制等。 适合人群:具有一定编程基础和技术背景的研究人员、工程师以及对机器人视觉控制感兴趣的开发者。 使用场景及目标:适用于希望在MATLAB环境中快速搭建和测试机械臂视觉控制系统的科研人员和工程师。主要目标是掌握从图像处理到机械臂控制的完整流程,理解各模块的工作原理,并能够在实际项目中应用。 其他说明:本文不仅提供了详细的代码示例,还分享了许多实用的经验和技巧,帮助读者更好地理解和优化仿真系统。同时提醒读者注意仿真与现实之间的差异,如摄像头延迟、机械臂传动误差等问题。

  • 【KUKA 机器人坐标的建立】:mo2_base_en.ppt

    KUKA机器人相关文档

  • 【KUKA 机器人资料】:KAKA机器人汽车座椅测试系统.pdf

    KUKA机器人相关文档

  • 三相变流器MPC控制:Matlab/Simulink仿真实现及优化技巧

    内容概要:本文详细介绍了三相变流器的模型预测控制(MPC)在Matlab/Simulink环境下的实现过程。首先,初始化程序设置了关键参数,如直流母线电压、开关频率和控制周期等,确保系统的稳定性和效率。接着,通过MPC_sfun.c实现了核心控制算法,采用状态空间模型进行滚动预测,提高了系统的动态响应能力。最后,利用out.m生成高质量的仿真结果图,展示了负载突变时的快速恢复特性,并提供了优化建议,如调整代价函数权重和引入软约束等。 适合人群:电力电子工程师、控制系统研究人员以及对MPC感兴趣的科研工作者。 使用场景及目标:适用于需要精确控制电压电流的场合,如电动汽车充电站、风力发电系统等。主要目标是提高系统的动态响应速度、降低总谐波失真(THD),并在性能和计算负担之间取得平衡。 其他说明:文中提到了一些实用技巧,如控制周期的选择、预测步长的优化、图形绘制的最佳实践等,有助于读者更好地理解和应用MPC控制策略。同时,强调了在实际应用中需要注意的问题,如避免过高开关频率导致器件损坏等。

  • 网络炒作策划要点解析.ppt

    网络炒作策划要点解析.ppt

Global site tag (gtag.js) - Google Analytics