52岁程序员的观点:编程要快还是慢? -欧洲杯足彩官网

5顶
1踩

我老爸常对我说,「孩子,别太着急。慢点来,你完成工作的速度会更快。」

 

我曾在旧金山湾区的很多高科技创业公司工作过。现在已经有52岁,我编程的速度不快,却经过深思熟虑再开始。我就像是一个写代码的设计师;随着你的深入阅读,这一点将会变得非常显而易见。

 

最近,我和一些年轻的程序员一起做项目,他们信仰快速开发,迭代修改,这使得我缓慢的编程遇到了困难。这份工作,鼓励我们在同一个代码仓库里面工作,就好像是一大锅汤,如果我们一起不停的大力搅动,一个奇迹就会从中诞生。

 

实际上并不会。

 

这帮程序员信仰“”这种谬论,因而没有人需要为这些代码的任何方面负责;任何一个程序员可以在任何时候,改变代码的任何部分。毕竟,我们有像 这样特别赞的服务,来管理和合并来自任意数量的程序员们提交的任意数量异步开发的代码。只要每个人都频繁的提交(commit),不破坏任何东西,那么所有的东西都会好好的。

 

扯犊子。

 

你不能期许省略设计过程。这一过程在人类文明开始时就存在了。当下最新最灵巧的开发工具,不论它多么灵巧,也不能替代那些建造了大教堂、铁路和拍出长篇电影的最佳实践和现实中的合作。

任何编程都没能创造这样一个工具,可以减少软件开发的时间,让一群猴子以它们可以接受的速度来工作。

 

心律不齐

 

在这样一群信仰快速开发的程序员中,做一个我这样缓慢编程的程序员的代价,就是某种形式的——因为我自己的编程节奏都被其他程序员那机枪似的迭代开发搞乱了。我的编程风格是这样,由一些不同尺寸和时间尺度的弧线组成,开始是时候是探索、试验和出错,使用一些hacks和临时变量。基本上是在做一些构建工作。程序初露端倪。稍后,我会回头去做些修改。最后结束的时候,是完整实现的代码(「打扫战场」是完成我这个工作循环的一个必要的部分)我编写代码的这一流程与策略、设计方案、架构的出现是同步的。

 

有时候,当一个成熟的方案出现后,我会回头重新开始。因为我觉得我会有更好的点子。有时候我错了,有时候我是对的。在一个方案完整的呈现在我面前之前,我是没有办法去知道对错的。

 

总之,先回到“一锅汤程序员”吧。问题是这样的:总体上,软件生态系统并没有停一停的意思——没有机会去引入设计过程,那么怎么能有人,而且是快速开发程序员,做出好的设计呢?



 

那些认为快速编程和慢速编程一样(除了速度以外)的程序员,他们并不理解设计过程。同样,神经学家现在认为,像流体一样穿过大脑的神经元放电会产生颞混响,这和思考,意识息息相关,好的设计是需要花费时间的。

 

慢速编程运动

 

维基百科记载:「慢速编程运动是的一部分。这是一种软件开发哲学,强调仔细的设计,高质量的代码, 和思考。 尽量避免,垃圾代码和过快的软件发布。」

 

维基百科同时还这样描述「慢速软件开发」:「作为『』运动的一部分,世界上各个软件开发者团体期待更有预见性的项目,意在获得可持续的职业生涯,同时保持工作和生活的平衡。他们进行了诸如,和等实践。这产生了更多可靠的,健壮的软件」

 

在旧金山湾区,那些由风险投资支持着的软件开发,火急火燎地开在快车道上。

 

资金被投资在研发过程中的那些非自然的需求上,实际上应该把它留给设计演进过程中那些符合自然节奏的点。快,并不总是一件好事。实际上,放慢速度有时候意味着快。数字科技是如何侵占我们自然的节奏的,这一个主题在 rushkoff 的 中有所阐述。

 

还有一个问题:对科技近乎宗教般的痴迷——以及对工具的迷恋。人们想知道为什么软件很糟糕(没错,它很)。软件之所以这样糟糕,主要是因为纸上谈兵。快速开发的程序员会编写一些工具,来帮助他们使用其他的一些工具,他们利用这些工具来编写自己的代码。

 

这就是我为什么认为我们需要一些年长的人,女性、教育者和艺术家参与到软件开发中。更多人与人的交流,更少工具与人的交流。我指的不是做一些外围的工作,提供问询或是装饰ui。我的意思是深入内部——确保软件能够和用户产生共鸣。

 

我庆幸自己不是打字员。

 

我的一位朋友是一个成熟的女程序员,她曾有过这样精彩的吐槽:「软件开发不是比谁打字快。」每个人都明白这一点,但是时常这样提醒自己也不是什么坏事。

 

讨论过这样的问题。实际上,程序员们不停地用手指在键盘上猛戳,就好像这种肢体活动是和编程同步的。但是实际上编程是这样一种行为,它把思考、设计、语言、逻辑和一些心理层面的东西变成某种可以存放在电脑内存中的形式。



 

我的夫人经常会走到小院里,问我:「你在编程吗?」通常情况下我的回答是「是的」。实际上我正在用钳子修剪枝叶,或是到处施肥。

 

植物、泥土和剪刀和编程有很大的关系,就像与键盘和发光的屏幕一样。

 

我们正在从工业时代和经济纪元过渡到一个可持续发展的年代。是的,新的软件和新的商业需要增长。但是需要具有可持续性,它们要慢慢的,有爱的增长。就像美酒,就像宝贝。

 

关于作者:  (  )

  • 大小: 76 kb
  • 大小: 46 kb
来自:
5
1
评论 共 6 条 请登录后发表评论
6 楼 2015-01-14 10:00
bewithme 写道
老板就叫你一天完成你还能拖到第二天么?

这样的老板主持的公司,基本就是个皮包公司,不过,国内有不是皮包公司的软件企业吗?好像还没有
5 楼 2015-01-14 09:59
dyp1984 写道
在中国52岁的程序员,肯定找不到工作,这也是中国做不出一款世界级的软件的原因之一吧。

深有同感,整个国家都在短平快的短视中折腾,以为能够赶英超美,其实根基不稳,大厦再高,倾倒的也越彻底。基础行业的人才流失,注定会造成核心竞争力的缺失。
4 楼 bewithme 2015-01-12 15:45
老板就叫你一天完成你还能拖到第二天么?
3 楼 2015-01-10 16:45
敏捷和迭代开发已经变成了不想搞清业务需求的借口了
2 楼 2015-01-10 15:28
在中国52岁的程序员,肯定找不到工作,这也是中国做不出一款世界级的软件的原因之一吧。
1 楼 2015-01-10 01:09
文章简言之: ctmd agile...

发表评论

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

相关推荐

  • 说个大白话,一个tl管了n个人,他至少要能保证大家的输出所产生的价值,至少要高于这个团队的工资、奖金、五险一金、opex、capex等等吧。这个tl为了大家输出的有价值,他是不是需要能: 能对所负责领域的业务特点、...

  • 这是来自一位美女程序员ali spittel的观点,至少可以看看美女喜欢和怎样的男程序猿打交道: 当我想与我希望的程序员合作时,我更多地考虑非技术技能,而不是技术技能,是什么非技术技能使得某人成为一名优秀的同事的...

  • zilk1988 年 14 岁时就开始编程,此后尝试过几种职业,最终还是在 1997 年决定成为职业程序员(又称码农),现在已经 39 岁,对此选择依然无怨无悔。 但是后来他发现一个问题,自己的经验越丰富,完成项目或任务的...

  • 有人说:每个人30岁以前改变命运的机会只有三次,出身、高考和择业。对于大部分普通人而言,决定人生走向的第一次机会大概是在22至28岁。这个年龄阶段恰好面临着人生最重要的一次选择...同样是在28岁,字节程序员郭...

  • 程序员都应该看看

  • 点击上方 "程序员小乐"关注,星标或置顶一起成长关注订阅号「程序员小乐」,收看更多精彩内容每日英文it doesn't matter how slow you ...

  • 经常听一些同学说:不知道下一份工作该去哪类公司做些什么,我的职场人际一团糟老板不重视我,我现在成长的非常慢所以又想跳槽了,我看不到公司的发展前景好迷茫,其实这一切的困惑都来源于没有做好职业规划或者你...

  • 对于一个比较小的团队或者是单枪匹马的开发者来说,很多的人都需要时是多面手,最近,一名独立游戏开发者在博客中讲述了自己数十年的游戏研发经历,他表示,游戏策划是需要有一些编程知识的, 因为只有这样你才可以...

  • 来自老程序员的心声

  • 【文章来源微信公众号:每天学编程】 专业选择重不重要?这几乎成了每年高考后的「全民话题」。有人说「专业决定就业」,有人说「职业无关专业」。对于程序员群体而言,大学专业对他们的职业选择发展又有着怎样的影响...

  • celential.ai 的《2021 年硅谷软件工程人才报告》中,没有大学学位的自学 sv 软件工程师的百分比 五、湾区是国际教育的大熔炉 我们一开始就提到 celential 可以帮助初创公司招募多元化人才,这一发现在一定程度上...

  • 不论是业内(编程)还是业外,人们对于 ai 编程的观点都是:未来可期 ——gpt,他好像什么都能干,也好像什么都干不好。所以,在这篇文章里,我将继续总结与其他人聊天的观点。对应的思路总结,也可以在 clickprompt...

  • 很多人经常会问:“在什么时候学习编程才合适?...编程是一项很花脑力、精力的高压工作,在40岁后才开始学习编程,是不是太晚了?damian wolf给出的答案是“不会晚”!damian是infoworld,dzon...

  • 也许作为有一定工作经验的你来说,你已经知道了,或者已经有熟悉的大佬告诉了你,但是大多数都是靠自己一步步实践积累而来。掌握编程的这些技巧,并将他运用到实际的工作中才是最重要的

  • vb语言vb光盘管理系统设计(源代码 系统)本资源系百度网盘分享地址

  • h型脚架疲劳测试机sw16可编辑_零件图_机械工程图_机械三维3d建模图打包下载.zip

  • 笔记.zip

  • python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。python社区提供了大量的第三方库,如numpy、pandas和requests,极大地丰富了python的应用领域,从数据科学到web开发。python库的丰富性是python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,matplotlib和seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

  • python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。python社区提供了大量的第三方库,如numpy、pandas和requests,极大地丰富了python的应用领域,从数据科学到web开发。python库的丰富性是python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,matplotlib和seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

  • python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。python社区提供了大量的第三方库,如numpy、pandas和requests,极大地丰富了python的应用领域,从数据科学到web开发。python库的丰富性是python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,matplotlib和seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

global site tag (gtag.js) - google analytics
网站地图