从严格意义上来说,程序员是软件制作中一个环节,程序员有其职能的范围,他的上层是设计人员所编写的设计方案,他的下层是测试人员。但是,中国的程序员应该来说是很特别的,尤其是中国软件业发展的初期,许多程序员是全能型的,这个程序员身兼数职,既是软件设计人员,又是程序员、测试人员。有的甚至全包,既要搞软件,又要搞硬件;连需求提出,项目立项、硬件采购,投产维护都是一个人所为。这样的人往往被单位视为无所不能的人才,被加以重用。直到现在,许多单位的电脑人员承担着系统维护工作,一些小的项目从需求分析,到方案设计,到编程,到测试,到投产,到维护都是一个人承担了。
全能型的程序员综合能力相对比较高,他对软件开发的流程具有一定的经验。许多人并不遵循软件工程分阶段的要求,怎么方便怎么来。比如有些人连设计方案都不写,直接编程,运行差不多就上线,上线后出了问题,再去改程序。这种极其实用主义的做法,影响了整整一代的程序员。
全能型程序员往往单枪匹马,做事果断迅速,而且能把程序编出来,因此所有的成果都归结于程序员一人,所以,这样的程序员在单位里,没有竞争,离了他就不行,十分吃香。外行人对他更是刮目相看,崇敬之之。
全能型程序员这样的程序员,由于精力分散,不可能在编程上投入全力,而且在单位其开发项目和范围相对固定,程序员的视野很窄,由于没有人交流,有的甚至不愿意和同行交流(怕自己的项目被人抢去),加之软件技术飞速发展,而自身没有跟上新技术的动力,甘于维持现状。所以全能型程序员的技术水平不可能很高。但是整个软件业的发展又是需要高技术水平的人才,所以全能型程序员只能越来越少。取而代之的是更加专业的项目管理人员、系统设计人员,程序员、测试人员、运行维护人员等。
现在的问题是软件制作专业化了,许多程序员不懂硬件、不懂需求、不懂需求分析,不懂总体方案设计、不懂测试,只会按照设计方案编写程序了。这样的程序员和全能型程序员相比综合知识要相差很多,综合知识薄弱必然对编程技能的提高也是有很大的限制的。
我的体会是一个好的程序员要从编程序开始,逐步向系统设计、项目管理等更高目标进发,当实现这些更高目标后,再去重新审视编程,我想那是将另一番新的天地,而且编程水平将会有本质上的提高。
下篇:《为什么程序员被喻为“IT农民工”》
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述