最近阅读一本书《软件困局:为什么聪明的程序员会写出糟糕的代码》,作者对自身30多年的软件开发经历进行回顾,阐述了大学教育与企业产品研发之间的巨大鸿沟,对程序员为什么会写出糟糕的代码,软件质量如此之差,软件开发为什么这么难...., 这些问题都进行了深入的剖析。
我自己从事一线软件开发,也已经20多年了。作者的很多经历,我自己也亲身经历过。因此,我准备将很多精彩的观点分享给大家。本文是第一篇。
在学校里,我们学习到一些编程相关的知识,并完成了一些上机作业。感觉到自己学会了很多东西。
但一旦到企业里,进行项目开发或产品开发实战,很多程序员就立刻表现出无法上手的状态,甚至很长时间都无法成为项目组的核心开发主力人员。他们发现,学校里学到的东西,对企业里面项目开发/产品开发基本没有太大的用处。
学校里教的是一个一个知识点,用简单的代码片段来展示这些知识点。但企业里所需要的:如何设计和编写大型软件,学校里都是没讲的。
并且学校里的作业,基本都是一个人独立完成的。但企业里面的软件开发,都是需要团队协作来完成的。团队中如何进行软件开发,需要哪些方法和技能,学校里也是没讲的。
这些缺失,是学校教学和企业软件开发实战之间的巨大鸿沟所在。
因此,程序员是在完全没有经历过职业培训的状态下,就开始了自己的职业生涯。在企业软件开发实战中摸爬滚打,跌跌撞撞,逐渐形成了自己对如何编写软件的理解。
但这种理解,完全是个体的理解。理解得是否正确、是否全面、是否深入、还有哪些没理解到的,这些问题自己都无法回答。
因此,有个词语非常扎心:野生程序员。
的确,从程