说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

程序员困境:底层编码能力正逐步丧失

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

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

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

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

为什么?

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

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

如何跳出困境

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

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

那么对于这种现象,微博上又有哪些互动呢?让我们一起来看下:

皮皮彭:

这是大公司的通病,不仅仅是针对做技术的,其他任何职位也是一样。公司大到了一定规模,很多事情就变得复杂了,不是那么纯粹了,很多人因此就会忘记了自己人生真正的目标和追求是什么,到底是要创造出好的产品,还是为了完成某个任务?个人内心保持追求,公司层面力求简化和纯粹,是最重要的。

_陈_辉_:

非常同意文中的观点,在技术日新月异的IT行业,“专家”这个词其实是个危险信号,意味着你的知识距离老化不远了。IT工程师应该经常更换工作领域,了解多个领域的前沿问题,同时应该花一些时间在开源项目上。

Bzbee:

这个叫体制化。和电影里说的道理一致。但也看你在公司的啥部门,如果在基础部门或参与开源,这可以避免。当然从公司看,这样人也需要。

BasketMan:

为什么大公司是这样,那是只有大公司有能力和时间会把底层不变的技术形成框架,让开发人员针对每天都在变的需求进行开发。那些在大公司写内核底层的,是不会出现在人力市场的,早已都是大公司的管理人员了。

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

来自:Programmer’s dilemma

【专访】敏捷专家吴穹:敏捷测试的行业应用与实战解析 英特尔中国研究院最新成果亮相 展示智能衣服瓷杯机器人等创新作品 Node.js 打造实时多人游戏框架 深圳微信开发者大会购票企业特征分析 上门汽车服务“e保养”完成A轮500万美元融资 Docker之父Solomon Hykes谈项目开发的初衷和挑战 浪潮是如何实现单日5000台x86服务器交付互联网的? Bootstrap 3.3.0发布 版本4不再支持IE8 漏洞预警:FTP曝严重远程执行漏洞 影响多个版本Unix 【简讯】W3C小组宣布HTML5标准制定完成 AMD发布GPUPerfAPI 2.14,GPU性能检测更Easy! 开放能力升级——微信公众号登陆授权开启公测! 百度最“智能”的新型推荐技术——智能因子分解机 消灭Bug!18款最佳的问题跟踪管理应用程序 Google Analytics为什么会这么快 【MDCC 2014】Xamarin深入体验营——开发实战大揭秘 【MDCC 2014】电信技术专场:运营商与开发者如何合作共赢 【MDCC 2014】高德LBS大赛闭幕式暨颁奖典礼:下一个50亿应用花落谁家? MDCC 2014移动开发者大会开幕:全生态系统齐聚 开发者成主角 蓝港互动有限公司董事长&首席执行官王峰:移动互联网泛娱乐化趋势 多盟联合创始人&总裁张鹤:多盟DSPAN助力开发者高效变现 创新工场联合创始人汪华:移动互联网时代的跃迁式增长 阿里巴巴集团UC移动事业群总裁俞永福:AMAP Inside——更专业、更开放 《程序员+》移动应用上线 启动“2014 MDCC十大人气应用/产品评选活动” 微软开发体验与平台合作事业部大中华区DX部门总经理Srikanth Raju:基于云的跨平台开发 Facebook平台工程合作部亚太区总经理张博:通过Facebook构建下一代移动应用 Vungle工程副总裁Wayne Chan:移动视频广告的未来 友盟副总裁焦岳:2014移动互联网行业趋势&大数据的行业价值与运营支持 联发科技创意实验室副总裁Marc Naddell:以小博大的可穿戴方案 用友软件股份有限公司高级副总裁谢志华:企业互联网移动化触手可及 【MDCC 2014】英雄会晚宴——厉兵秣马,再上征程 问一下:我的char*都用_T("asdfsafd")表示了,资源也没任何问题,可有时候运行程序显示乱码 在论坛里,发一个帖子新开一个窗口,当发完后让原来那个窗口刷新一下 我的机子到底怎么回事???? 我试试.. CListCtrl中如何选定整个一行? 来到济南天气太热,特来送分 ★★★★★ 见于现在伪ID和盗用密码的现象十分嚣张,我提议…… ★★★★★ 请教各位,我用vb6.0访问ms sql7.0数据库,为什么有时出现,“过期,数据已超时?” 请问COM和DLL有什么区别和联系?(30分) 关于侯老师 win95-a-developers-guide 一书的源配书... ISAPI中不能存取ASP中的Session、Application变量?高手你老人家在哪里? 大家来看看这些招聘题目合不合适 提一个网页制作的问题哈,大家不要扔西红市啊,网叶制作可是程序员的基本技能之一 activeskin里的skinbuilder有谁用过???来讨论吧 我在msdn上看到vb中的字符串有两种:定长字符串和变长字符串。请问如何分别声明这两种类型? 怎样在ADO中引用已打开的recordset的某一字段值,请给几个例,谢谢了! seedundersnow and holyfire help me!about 8253! 谁有cute ftp 4.2.6 beta的注册码 请问如何把页面查询到的记录导入到Excel中呢? 有用过TAdvStringGrid的吗?OnGetEditorType( )为何不被调用? 请教高手如何用Xsl编制函数控制Xml??急急 哪位给一个MD5的例子!谢谢了 长春的李延生来领分 求救:一个VC中多线程的问题 提个问题,原来对VC尤其是界面和C++语法这一块比较熟,现在由于公司需要转C++BUILDER,难不难,需要熟悉哪些 [总300分,会继续加分]哪位大哥用编程实现过创建SQL Server的DTS package并且run the package的全过程[急] 能不能使用html 压缩中提到的文件头有什么作用 , 保含哪些信息 菜鸟问题1 提一个网页制作的问题哈,大家不要扔西红市啊,网叶制作可是程序员的基本技能之一。。。。。。。 关于:import java.util.StringTokenizer; 问题! 如何实现在某特定时间(如每月1号,或7天后)执行特定asp程序? 在开发工具中如:(vc,jsp)中如何得到oracle中自定义函数的返回值 当form被移动的时候会相应什么事件的? 关于使用mscomm32.ocx中的一些问题 类似股票信息显示系统的问题(图形显示) 强烈抗议:无怨无仇,为什么冒用我的ID 写一些乱七八糟的东西????? 一个简单的线程问题! 请问高手:两个类之间的关联关系如何实现? 各位请问, 我的系统要求支持三种语言, BIG5,GB2312,ENGLISH,数据库应该怎样设计!! 求救!!!vfp ,控件 optiongroup1, 属性 ButtonCount=N,如何给第N个OPtionN.Caption赋值 假如上天给你一个机会。。。请看过来。。。 如何配置IIS 使其利用TOMCAT 支持JSP AND SERVLET ? 请问:ORACLEH中保存每列的数据类型的系统表名叫什么? !!这个简单的问题,没解决!!!给分!! 对公的帐号不能向私人帐号汇钱,怎么办? wm_keydown 中 wparam 和 Lparam 中高位和低位所表示的意思是何东西 我用 ADO 从数据库里读数据,当记录实在太多了的时候就死机了,该怎么办? 笨问题:JAVA如何设置全局变量,要在所有的类和整个程序中有效 如何重画dbctrlgrid的每个panel? 浏览并选择路径的对话框的函数是什么? (2012•台湾)判断下列哪一组的a、b、c,可使二次函数y=ax2+bx+c-5x2-3x+7在坐标平面上的图形有最低点?(  )A.a=0,b=4,c=8 B.a=2,b=4,c=-8 C.a=4,b=-4,c=8 D.a=6,b=-4,c=-8 设X1,X2是一元二次方程X²+4X-3=0的两个根,2X1(X2²+5X2-3)+a=2,则a=? x平方-3[2x-5(x平方-x+1)] 分解2x四次+3x三次减5x2次+3x+2 计算:1的平方-2的平方+3的平方-4的平方+5的平方-6的平方+...+2001的平方-2002的平方+2003的平方-2004的平方. (x+5)的平方-(x-2)(x-3) 若x3+5x2-12x+m有因式x-3.则m=? 1.(2√3-3√2)的平方 2.(3√5+2√6)(2√6-3√5)3.√2(√2-√6)+(1+√3)(1-√3)4.(2√3-3√2)(2√2+√3) 如果3x的平方-2x=2,求(x的平方+5)-2(-2的平方+x+3)的值 下列何式为5x^2+17x-12的因式?A:x+1 B:x-1 C:x+4 D:x-4 说出理由啊 , (x+2)(x-3)-2(x-6)(x+5)-3(x平方-5x+17),x=5.5 若2÷(3*x的平方+2x+5)的值为1/3,则1/(6*x的平方+4x+1)的值为? 分解因式5x2+6xy-8y2 (1/2-3+5/6-7/12)*(-6)的平方 100x9.5x0.98+9.5x2简便运算 设x2+ax+b是xn-x3+5x2+x+1与3xn-3x3+14x2+13x+2的公因式,则1+a+b=() 1=1的平方 1+3=2的平方 1+3+5=3的平方 14/5-(3.5x2/7+3.2x1/4)(简便计算) 抛物线y=-0.5x2+2.5x-2与x轴相交于点A,B,与Y轴相交与点C.1.求证:ΔAOC相似与ΔCOB2.过点C做CD//X轴交抛物线与点D.若点P在线段AB上以每秒1个单位的速度由A向B运动,同时点Q在线段CD上也每秒1个单位 (√5+1)(√5-1)= (2-√ 7)(√7+2)= (2√3+1)平方 (7-√3)(2√3+1)=(√5+1)(√5-1)= (2-√ 7)(√7+2)= (2√3+1)平方=?(7-√3)(2√3+1)= 7.5X2.1+75Xo.79怎样简便运算 24.(13分)如图,在平面直角坐标系中,直线y=-x+3与x轴、y轴分别交于点B、C;抛物线y=-x2+bx+c经过24.(13分)如图,在平面直角坐标系中,直线y=-x+3与x轴、y轴分别交于点B、C;抛物线 -4的平方+3×(-2)的平方+(-5)÷(-3分之1)的平方 l.5x一x=5X2 已知:如图12,抛物线y=-4/5x²+mx+4与y轴交于点C,与x轴交于点A、B,(点A在点B的左侧)且满足OC=4OA.设抛物线的对称轴与x轴交于点M:(1)求抛物线的解析式及点M的坐标;(2)联接CM,点Q是射 观察1的平方+2的平方>2*2*1 3的平方+5的平方>>>> 0.64x12.5x2.5x2简便计算 如图,抛物线y=-0.5x2+0.5x+6,与x轴交于A、B两点,与y轴相交于C点已知E点(0,-3),在第一象限的抛物线上取点D,连结DE,使DE被x轴平分,试判定四边形ACDE的形状,并证明你的结论为什么D坐标是(3,3) 1+2+3+4+5+6的平方 小豪在求一个多项式与2x2-3x+7的差时,因错看成加上2x2-3x+7,而得到答案-5x2+2x-7.试求此题的正确答案 如图,抛物线y=-x²+5x+n经过点A(1,0)与y轴交于点B 杨辉三角形有什么规律? 一个多项式加上5x2+3x-2的2倍得1-3x2+x,求这个多项式x后的2代表x的平方 5x2-4(a+3)x+a2-29=0 谁能帮我讲一下杨辉三角 我数学不好,有点看不懂,有一道例题(x+2)^5 我想知道系数确定了,剩下怎么办 一个多项式加5x2+3x-2的2倍得1-3x2+x,则这个多项式是 5X2—3因式分解 谁能告诉我杨辉三角中有哪些数学规律啊~~~ 大家帮帮忙了哦~!~~! (3X3+5X2+X)/(7X3+5X-4) 2x一10二4.5x2怎么算? 数学上杨辉三角怎么运用?如求(a+b)^4 ,(a+b)^5 ,(a+b)^6等,怎么运用杨辉三角来简便运算?(系数我懂,是依次来的,可问题是那些字母的幂数是怎么安排的?)也可以举几个例子让我看懂就好, 1000~1999这1000个整数中数字1一共出现了多少次 (负1减二分之1)乘(负1减3分之1)乘.乘(负1减10分之1) 椭圆5x2+ky2=5的一个焦点为(0,2).求k的值这是一道椭圆方程题,请书写全过程. 0到1000中,有多少个整数包含数字1,2,3和4?用《离散数学》 的 集合代数 方法做!这问题困扰我两个多星期了。不要:1001-(6+5*6+5*6*6)=785 这个。 (负3又3分之2)十(负6分之一)= 点(0,4)是椭圆3KX2+KY2=1的一个焦点 求k 整数1用了一个数字,整数10用1和0两个数字,从一到1000一共用了多少个1和多少个0,其中用mid cstr len 函数 (负1.3)十[负4(负2负7)]= 椭圆8k2x2-ky2=2的一个焦点为(0,√7)求k的值.书里面没有过程的答案是:k=-1或-1/7再次抱歉!题应该是8k2x2-ky2=8我毫无怨言! 从零到999这1000个整数中,共有多少个数字1呢? 6x-6.5x2=8求方程 数学题所有的要过程3/5X2/11+2/11÷5/2 48X(1/2+5/6+3/8) 2又5/8X9.25+7又3/8X9又1/47/9÷11/8X(1/4+2/3) 7/18÷[(5/7-1/3X7/16] 请不要嫌麻烦 若椭圆2kx2+ky2=1的一个焦点为(0.-4),则k的值为 已知A=1-x2,B=x2-4x-3,C=5x2+4,求多项式A-2[A-B-2(B-C)]的值,其中x=-1 超急! 利用EXCEL确定x3-5x2-4x+6=0近似解?1)x为-9、-8、-7、-6、-5、-4、-3、-2、-1、0、1、2、3、4、5、6、72)x为-1.6、-1.5、-1.4、-1.3、-1.2、-1.1、-1、……、0.6、0.7、0.8、0.9、1、1.1、……、5.2、5.3、5.4、5.5 已知F是椭圆5x2+9y2=45的左焦点,P是此椭圆上的动点,A(1,1)是一定点,求|PA|+3/2|PF|的最小值,并求点P的坐标 已知多项式x2-(a-1)x^3+5x2-(b+3)x-1中不含x^3和x项,求a、b的值 设x1、x2是一元二次方程x^2+4x-3=0的两个根,2x1(x2的平方+5x2-3)=_____ 3(x+1)的平方-5(x+1)=2怎么解
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn