程序员四个阶段——可以运行,健壮高效,结构优美,思想深邃 - www.top21china.com
   21世纪中国前沿影视论坛电影艺术区源本 禅学程序员四个阶段——可以运行,健壮高效,结构优美,思想深邃

发表新主题 回复帖子 您是本帖第 1933 个阅读者 适合打印机打印的版本 通过电子邮件发送此页面 添加加到IE收藏夹 报告本帖 浏览上一篇主题 浏览下一篇主题
 主题:程序员四个阶段——可以运行,健壮高效,结构优美,思想深邃
随风



等  级:导演
经 验 值:1718
社区金币:1718
总发贴数:212
注册时间:2006-3-6
状  态:离线
信息 短讯 邮箱 好友 搜索 引用 回复 No.1

程序员四个阶段——可以运行,健壮高效,结构优美,思想深邃

程序员的职业生涯也可分为四个阶段,初级程序员(菜鸟)、高级程序员(熟练工)、系统程序员(高手)、软件大师(大师),其作品也经历四种境界:

· 可以运行的程序

· 健壮、高效的程序

· 结构优美的程序

· 思想深邃的程序

 

程序员的必经第一个阶段都是编写可以运行的程序。很多人的编程生涯是从“Hello World”开始,当第一次按照教科书上的步骤,将源文件编辑完后,编译、连接、运行,在屏幕上显示出“Hello World”时,心中的激动一点也不亚于阿里巴巴打开了宝库的大门。初级程序员的目标一般是让程序能运行起来,他们迷惑于库函数的众多,不知道该用那一个,他们还要学习基本的语法,以使程序编译通过。初级程序员一般不会考虑设计模式、软件结构等问题。记得本人编写的第一个较大的程序是本人的本科毕业论文题目——一个计算机辅助实验系统,开发工具为Turbo C,在DOS下开发(那个时候Windows还不太流行,怎么样,年代够久远吧),整个软件大约7000行代码,在当时已经能干不少事,在DOS下也能显示不少花里胡哨的图形界面,支持中文,支持鼠标操作(那时候在DOS下需要自己处理鼠标事件中断),当时还颇受好评。可是今天再重新温习过去的作品,真有点掺不忍睹,整个软件毫无结构可言,一共分成两个源文件还是由于编译器不支持一个太大的源文件而被迫分开,整个系统就是源代码的简单堆砌。相信每个程序员都需要经历这个阶段,它是程序员职业生涯的开始,没有捷径可以跨越,只有不断的实践、学习和总结。

第二阶段的程序员已积累了不少的编程经验,语法和库函数不再是障碍,他们已不再满足于程序正确运行、功能实现无误。他们需要了解程序背后发生的事情,需要了解操作系统的原理和调度机制,内存管理,文件系统组织等;了解开发工具的细节,如C的函数调用机制,参数的传送机制、堆栈的建立过程等;了解C++的封装、继承和多态性背后的机制,虚函数实现机理等。他们不仅知道程序应该如何运行,还知道它为什么这样运行,能编写高效、鲁棒的程序。

第三阶段的程序员能构建结构优美的软件系统,软件系统结构的合理性、可扩展性、可维护性、可测试性是系统程序员考虑的重点,结构优美的软件系统同一栋完美的建筑群一样,每个部分各司其职,搭配合理。本人一直认为,一个好的软件系统应当具有美学特征,如简洁、和谐、层次感等,一个好的软件系统应当是简洁的,易于理解的;应当是和谐的,每个部分高内聚、低耦合,既分工又合作;应当是层次分明,易于维护和移植。所以,本人建议那些进行软件系统设计的程序员,当你设计完一个系统后,需要问问自己:"它美吗?",如果答案是否定的,那么我建议你需要重新考虑系统的设计,如果答案是肯定的,那么,恭喜你,你已经达到一个相当高的水平。

最后一级也许是每个程序员梦想达到的顶峰,程序设计不再是简单的工具,而是大师们改变世界的魔杖,从C到C++,再到COM和COBRA,再到XML和WEB SERVICES,每次改变,不是软件语法和开发工具的升级,而是用软件构建现实世界模型的改变,是一种软件思想的革命,软件具有了灵魂和智能。如果没有理解这一点,认为C++只是更好的C,COM只是更好的C++话,你就没有了解它们的精髓和思想性。


编辑 删除 发表时间:2009-4-3 14:08:55  IP: 已记录
nihaota



等  级:著名导演
经 验 值:4340
社区金币:4340
总发贴数:868
注册时间:2022-10-29
状  态:离线
信息 短讯 邮箱 好友 搜索 引用 回复 No.2

Re:程序员四个阶段——可以运行,健壮高效,结构优美,思想深邃

讨债公司

编辑 删除 发表时间:2022-10-29 18:08:26  IP: 已记录
收藏帖子 | 取消收藏 | 返回页首 
21世纪中国前沿影视论坛 - www.top21china.com



Copyright 2005-2018 www.top21china.com All Rights Reserved email:xie3ds@263.net
Powered by BBSXP 6.00 SP1 © 1998-2006
Script Execution Time:859ms