首先,如果你觉得这篇文章更像是在发牢骚,我先向你表示道歉。这个瑞士军刀综合征的灵感是在我跟很多项目经理、客户,甚至其他程序员的接触中备受打击的情况下想出来的。我十分沮丧于他们的视野狭窄。我认为他们都有瑞士军刀综合征。
程序员:就目前的设计,我大概一周内就可以搞定基本框架。然后我们从头再优化整理、完善设计, 在接下来的一周提交一个稳定的版本。项目经理的理解:整个项目只要两个礼拜就可以搞定。
可事实上问题不在于此。编程,就跟写作、绘画、作曲一样,首先是一种创造性的活动,而不是一个种技术工作。当然,对一种技术或编程语言的不断练习和保持熟悉很重要,这其实就是在学习使用工具和技法,但它并不会让你本质上变成一名更优秀的程序员。
一个是被人们称作”骗子综合征(imposter syndrome)”的东西。患这种症状的人通常是发现一起共事的所有程序员都比自己聪明、比自己有天份、比自己有才能。你生活中一直恐惧中,担心其他人会最终发现你是个冒牌货、你的技术和能力是装出来的。
关于C语言内存管理薄弱的问题几年前我们就讨论过。有人试图反驳,说现代各种操作系统或runtime平台的进步,对内存管理的风险提供了各种保护,比如地址空间随机化,还有各种诸如Valgrind这样的工具可以发现内存访问bug,大大削弱危险程度。我十分推荐大家重新阅读一下那次讨论。
程序员看起来应该都是一帮非常高产的人。你总能看到他们在电脑桌前噼里啪啦的敲着键盘;他们焦急的等待会议结束,希望马上能回去编程。当被问起,他们总是说没有足够的时间编写出这些程序,需要立刻开始编码,这样才能及早完成。
50多岁时你的职业仕途会成为一个问题。如果你有很好的技术,有人雇你,你会有一个很高的职衔,或你是一个专家,或有很好的人际关系,你都有可能找到一个新的职务。否则,你会从衣食无忧沦落为无家可归
英语中常说“30 is the new 20”,但这话并不总是对的——事实上,当遇到软件开发业里的人时,情况似乎完全相反。虽然有很多杰出人士在30岁刚开始达到仕途的巅峰,但对大多数普通程序员来说,29岁之后的未来看起来会是非常的悲惨
今天,让我们抽出一点时间回顾一下1999年。那一年,Kent Beck写出了一本旷世之作。一本改变一切的著作。请记住:极限编程,并且要知道,它正是我们如今的人平常认为的“优秀软件开发实践方法”的核心。
网上对苹果iOS7操作系统中最新暴露出的一个严重安全漏洞的讨论读起来十分有趣。是什么导致了这样一个弱者的bug?下面是网友们总结出的几个原因: 用C语言很难写出正确无误的程序,, 苹果公司的程序员不用心, 编码风格中允许忽略大括号, 苹果公司里没有正规的代码审查, 使用了goto语句….
2001年,出生于荷兰的计算机大师、 图灵奖获得者Edsger W. Dijkstra给德州大学预算委员会写信,力劝不要将计算机入门课程改为Java。不幸的是,学校最终还是用Java课程替换了Haskell。相关联的,麻省理工的计算机程序结构和分析课程(6.01)中的Scheme语言也被Python语言替换掉。
我有一个朋友,他在一家小公司工作,这家公司最近换了经理。老经理由于资深程序员的辞职且无法招到替补而被派去顶替空缺的开发角色。而新经理缺乏管理程序员的经验。事实上,他们公司的任何一个资深程序员都可以随时拍屁股走人,而且在一个星期里就能找到一个比现在高出30-40%工资的新工作。
年轻的程序员,由于缺少经验,常常不知道这样的事实:写代码只占一个软件出品过程中很小的一部分。借用Frederick Brooks著名的《人月神话》一书里专业的描述:它只是一个软件程序诞生的开始。
Plan-9是一个很棒的、很先进的,而且完全是全新实现的Unix系统,它的目的就是要最终解决Unix最初的诺言:一切皆为文件。你听说过这套系统吗?没有?那好,下面就是为什么。
我们都听说过这样的故事:某某公司将要开发一套大型的先进的ERP系统。这套系统将要取代三分之一的公司里现有的软件系统,可以消减二分之一的费用,每个人都会因此受益而高兴。但现实中,这个项目超期2年还未完工