不同的公司环境会培养出不同的员工,程序员也不例外,由于大公司的开发框架十分成熟,稳定,而且充满盈利能力,所以开发者容易陷入拿来主义思维,而底层代码的编写能力正在逐渐退化。
前段时间,@developerworks在微博上向大家推荐了一篇引人深思的文章《程序员困境》,这篇文章的作者描述了在招聘内核程序员时所遇到的一个现象,一些来自大公司的“高级”程序员,却连最简单最基本的问题都无法回答,这不禁引发了作者的思考,下面是笔者的简译:
最近,我为招聘内核程序员而面试了数万个应聘者,有一些是来自有名的大公司,比如非常有名的芯片/嵌入式系统开发公司。许多人的简历制作的非常完美——涉及的各种项目、获得的各种奖项等,并有一些人声称,他们在内核研发上有10多年的工作经验,然而,令人惊奇地是,他们却无法回答一些基本的问题:当调用标准的malloc函数时,内核发生了什么?
别吃惊,当我让一个应聘者编写一个基于glib哈希函数的LRU缓存框架时,他首先声称自己从未使用过glib,于是我向他演示glib哈希API页面,并且详细地解释,然而一个小时后,他只写了几行凌乱的代码。我不知道在其它国家是否会有类似的情形,但在中国,或者更具体地说,在北京,这就是现实。那些“高级”程序员,在有名的外企工作几年后,连一些简单的、基本的问题都无法实现。
为什么?
我愈加思考就愈加认为,这不仅仅是与程序员自身有关,更与其所在的公司环境有关。这些公司通常会提供稳定的堆栈代码,并且多年来一直沿用着,几行没有任何变化。程序员整天围绕着这些代码工作,按照已有的思路去开发,无需自己动脑、去思考。如果长期在这样的环境下工作,并且也没有在外部进行提升和开阔,多年以后,你会发现自己处于很可怜的位置——在公司内部或团队里声称是“专家”,然而不幸地是,你却不能在市场找到一个与之平等的工作。
这就是所谓的“专家陷阱”。在当程序员的第一天,我们就梦想着成为团队/公司的专家,然而,当这一天到来,大家却陷入了困惑。越深入到当前的代码中,陷的就越深。渐渐地,我们丧失了那种从头开始创建完整项目的能力,因为现有的代码如此稳定。更糟糕的是,如果我们的主要工作仅仅是维护现有的代码,带有一些细微的功能添加和改善,一段时间后,无论你读过或学习过多么牛逼的代码,你将会发现自己不再会写代码——甚至是刚毕业那种简单的代码。这就是程序员困境:我们通过编码谋生,但环境却正在摧毁我们这种谋生的能力。
如何跳出困境
对程序员个人来说,首先,做自己的项目;其次不要待在同一团队超过两年时间。
给团队/公司的建议,给员工压力和挑战:轮流工作,让“专家”有机会拓宽自己的技能。定期举行黑客马拉松:这将有助于创建一个拥抱创新和创造的文化氛围。
对此,各位程序员,你们又是持何种观点呢?本文作者主要描述了程序员在大公司所面临的问题,你们身处的环境如何呢?不妨和我们一起分享下吧。
原文路径:
http://www.iteye.com/news/28193
- 大小: 70.2 KB
分享到:
相关推荐
国外程序员推荐:每个程序员都应读的书 ,开发设计人员必备
《谈谈Unicode编码——程序员的趣味读物》 在IT领域,字符编码是一个基础且至关重要的概念,特别是对于程序员而言,理解和掌握Unicode编码至关重要。本文旨在解答关于Unicode编码的一些常见问题,帮助程序员更深入...
JAVA程序员必读:基础篇
我整理生成的CHM格式文件 JAVA程序员必读:基础篇.chm 因为最近在搞这个所以整理了一些资料和大家分享 并非本人原创,郑重感谢原作者!
ACE程序员指南:网络与系统编程的使用设计模式,高并发网络编程
程序员101:如何自学编程[整理].pdf
MongoDB程序员认证: MongoDB Certified Developer Study Guide - Study Guide - Exam Preparation - Practise Questions
go 后端程序员宝典:go基础语法,go底层原理,go runtime 实现原理,go 并发模式 ,go语言项目经验,包含go语言的基本语法、go语言高级用法、算法与数据结构。具体请见README.md,有详细目录。
《程序员数学》是一本专为IT从业者设计的数学学习书籍,旨在通过Python编程语言帮助读者深入理解线性代数和微积分的基础概念及其应用。线性代数是现代计算机科学和工程领域不可或缺的部分,它在图像处理、机器学习、...
UNIX系统V第4版程序员指南:XWIN图形窗口系统Xlib-C语言界面,已添加书签
ACE程序员指南 网络与系统编程的实用设计模式 part2
10. 程序员目标:雷军认为,程序员目标不是追求高级程序员,而是热爱写程序,热爱电脑世界的美妙,并且是一个完美主义者。 11. 程序员之路:雷军认为,程序员之路是漫长的,需要热爱写程序,热爱电脑世界的美妙,...
【我增加了书签,现在才是真正的完整版了。不到一分钟就完成书签制作了。】本书的初衷就是帮助企业...本书确实想帮助毕业生顺利地度过两年的程序员职场新手阶段,让更多的职场新星确定正确的方向,少走弯路,早日腾飞。
修改后的代码,可以正常画出3D中的箭头,此为源代码,针对《程序员数学 python学透线性代数和微积分》第三章中用到的引用代码程序
在这个“程序员:程序员编码实践”的主题中,我们将深入探讨Python语言的编码规范、最佳实践以及如何提高代码质量和效率。 首先,Python作为一门简洁易读的高级编程语言,其代码风格直接影响到程序的可读性和维护性...
编码规范是软件开发中至关重要的一个方面,它不仅关乎代码的可读性和可维护性,也是团队协作的基础。程序员在编写代码时遵循一定的规范,能够提高代码质量,降低出错概率,同时也使得代码更容易被其他开发者理解和...
2. **编码能力**:良好的编码规范是程序员的专业素养体现。代码应具有可读性和可维护性,避免混乱无序。注释要恰当,用来解释代码意图,而非机械地复制文档内容。此外,规划代码流程和逻辑,避免仓促编码,有助于...
程序员面试加薪必备_ConcurrentHashMap底层原理与源码分析深入详解
这标题暗示了该文档是一系列课程或指导,目的是帮助程序员提升他们的思维能力,以及开发和增强他们的认知潜能。认知潜能指的是个体在信息处理、问题解决、决策制定等方面潜在的能力。在IT行业中,特别是在软件开发...