为什么聪明的程序员会写出糟糕的代码

举报
实力程序员 发表于 2021/06/11 11:33:19 2021/06/11
【摘要】 最近阅读一本书《软件困局:为什么聪明的程序员会写出糟糕的代码》,作者对自身30多年的软件开发经历进行回顾,阐述了大学教育与企业产品研发之间的巨大鸿沟,对程序员为什么会写出糟糕的代码,软件质量如此之差,软件开发为什么这么难...., 这些问题都进行了深入的剖析。我自己从事一线软件开发,也已经20多年了。作者的很多经历,我自己也亲身经历过。因此,我准备将很多精彩的观点分享给大家。本文是第一篇。在...

最近阅读一本书《软件困局:为什么聪明的程序员会写出糟糕的代码》,作者对自身30多年的软件开发经历进行回顾,阐述了大学教育与企业产品研发之间的巨大鸿沟,对程序员为什么会写出糟糕的代码,软件质量如此之差,软件开发为什么这么难...., 这些问题都进行了深入的剖析。

我自己从事一线软件开发,也已经20多年了。作者的很多经历,我自己也亲身经历过。因此,我准备将很多精彩的观点分享给大家。本文是第一篇。


在学校里,我们学习到一些编程相关的知识,并完成了一些上机作业。感觉到自己学会了很多东西。

但一旦到企业里,进行项目开发或产品开发实战,很多程序员就立刻表现出无法上手的状态,甚至很长时间都无法成为项目组的核心开发主力人员。他们发现,学校里学到的东西,对企业里面项目开发/产品开发基本没有太大的用处。

学校里教的是一个一个知识点,用简单的代码片段来展示这些知识点。但企业里所需要的:如何设计和编写大型软件,学校里都是没讲的。

并且学校里的作业,基本都是一个人独立完成的。但企业里面的软件开发,都是需要团队协作来完成的。团队中如何进行软件开发,需要哪些方法和技能,学校里也是没讲的。

这些缺失,是学校教学和企业软件开发实战之间的巨大鸿沟所在。


因此,程序员是在完全没有经历过职业培训的状态下,就开始了自己的职业生涯。在企业软件开发实战中摸爬滚打,跌跌撞撞,逐渐形成了自己对如何编写软件的理解。

但这种理解,完全是个体的理解。理解得是否正确、是否全面、是否深入、还有哪些没理解到的,这些问题自己都无法回答。

因此,有个词语非常扎心:野生程序员。

的确,从程序员的成长过程来看,程序员都是野生的。

大学里面教的东西,到企业里面基本都没用。而企业需要的是你的产出。企业很少会培训你,根本不会教你如何学会设计和开发程序。程序员在这种生存竞争下,只能凭一己之力,东拼西凑,乱搞一通,然后被领导一通臭骂,再不停修修补补。在不断碰壁、不断试错过程中野蛮生长。


因此,软件这个行业,与其他行业相比,是个极其怪异甚至荒谬的存在。

比如医学,一个学生毕业后,我们就相信他具备了作为一个医生的能力。他拿到行医执照后自己就可以开一个诊所了。会计、律师、厨师、面点师...., 都是这样的。

但软件行业,就完全不同。你从软件专业毕业后,没有人相信你已经具备了软件开发的技能(你自己也不信啊)。你考了一个程序员证书,对企业来讲就是废纸一张,啥用也没有。面试的时候,面试官问的问题,你都不会啊。


你毕业了,也考证了,但你还啥也干不了,啥也不是啊?这是咋回事?

甚至你工作了很多年了,你是你团队的主力开发人员吗?你觉得自己的水平在业界是哪个段位的?如果工作了很多年,还没有成为大牛,到底原因出在哪?


另外,当我们完成一个软件版本开发后,当客户问:这个软件的质量水平是怎样的?这个问题,让所有的软件从业人员都无法回答。

但我们看看其它行业,比如修建一座大桥,完工之后,项目负责人能够清晰说出,这个桥梁的承重是多少,能抵抗多大的风力,能经受多大规模的震动,设计寿命是多少年。但我们对软件,却无法给出其质量的指标数据,这让所有软件开发人员都尴尬不已。


我的微信号是 实力程序员,欢迎大家关注我。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。