学习开发软件应注意的问题

学习软件工程专业已经三年了。

进校第一年,全部学的都是些公共的、基础的知识,表面上看似和软件开发一点边都碰不到。比如说高等数学、离散数学、线性代数、概率统计、数字电路、C语言等。当时我对这些一点兴趣都没有,搞得我换专业的心都有了。当然后面还是坚持了下来。不过到现在似乎明白了些什么,这些我曾经忽视了课程,才发现如今已经渗透了全世界的各行各业。说白了,这些公共课程是所有科学技术的基础。它本身不仅具有深层的技术内涵,而且学习好了它,可以使人的思维更敏捷、思路更清晰。但是,事实上我似乎已经错过了它。因为当时学得不算太好。想起有那么点后悔。希望未来新入学的师弟师妹能好好把握这些课程。如果想当官的,也尽量去当。

 

进校第二年,开始学习专业课程了。我记忆最深的是C++、汇编语言、操作系统、数据结构、计算机组成原理、VC++。课外我还学习了JAVAASP.NET。这其中除了C++JAVAASP.NET我是搞清楚了,其他都是懵懵懂懂。当然,VC++是大三上学期弄了三个月入门了。这一年,专业课特别多,但是我的精力很分散。原因是:大二开始我就担任辅导员助理工作。这项工作看似简单,每天都是安排事情、通知事情、处理文件等,但是,它相当的繁琐,随时都可能有事情需要处理。也许你刚准备坐下来看下书,说不定马上就有事情来了;也学你刚拿起筷子准备吃饭,电话就来了。每天疲于应付这些琐碎的事情,但是我还是抽出时间来看书。这样的日子我过了近两年。不过我不后悔,因为我的老板是一个可爱、幽默、能力出众的辅导员,并且还是个女生。整体来说,我大二一年的课程没白费,但学得也不能说好。幸好的是:在这一年,我比较了几门我知道的语言,发现C#是最好学也是最好用的语言(事实上,它也是微软主要投资项目.NET的配套语言)。.NET,我将用一生的时间来学习和运用它。

希望即将进入大二的师弟师妹,能好好把握这一年,能不当官就尽量不当官,集中精力抓学习,不求考高分,但要学懂,同时要培养自己动手做软件的能力。这一年学的算是是专业课的基础知识。

 

进校第三年,这一年是我在大学里最难熬的一年。课程也很多,全是专业课,而且有几门课还比较难。当然,也是我大学里最充实的一年,因为课闲之余,我还参加了两个项目。以至于我每天吃饭睡觉上厕所,从食堂到寝室,从寝室到办公室,从办公室到实验室,都计划了时间。现在,我走路的速度,那还是比较快的。我脑袋有点笨,也可能是很笨。不是我谦虚,是我的老师着这样说过我,我想是因为我大一没把心思花公共课上,没锻炼好自己的思维。以致我现在要完成同样的任务,可能要比别人花更多的时间。自然,这一年的课程我也是学的不好不坏。希望即将进入大三的师弟师妹,学校安排的课程自然要认真学,但更重要的是:你需要选择一门你感兴趣,同时又有市场的语言去学。据说:很多同学到了大四,才发觉以前学了三年,常见语言都学了,但任何一门语言都不能运用去做项目。看过天龙八部的同学都知道,鸠摩智偷学了少林七十二绝技,最后还是败在乔峰的降龙十八掌之下。鸠摩智问乔峰这是为什么。乔峰说:你博而不精,必定失败。

 

这个社会需要博士,也更需要专家。

 

 

 

 

 

下面,我根据自己的经历的两个项目,谈谈我的开发经验与教训。

 

大三上学期,我正式加入一个项目组。名字很长,记不住了。主要是做虚拟现实的。语言是C/C++/VC++,核心技术是OpenGL。上面说我的VC++入门了呢,就是在这个时候。最后,这个项目流产了。我心里很不是滋味。尽管项目挂了不能完全说是我的责任,但我自觉难辞其咎。我能力达不到,技术能力、管理能力、分析能力,都不够去完成这个项目。当然,团队里面的其他成员也是不行的。现总结原因如下:

1.       团队没一个人来监督项目进展情况。规定了学习任务,但是没人来监督学习进度,学习质量。时间用了,但没收获。致使整个项目没有进度。看过爱情转移2的同学就知道,在公路上,几十辆车堵在一起,范伟走过来说:这就是欠管理。

2.       团队成员不齐心、没尽力。各队员各干各的,出现问题也没交流。写报告、开会,大家也只是敷衍而已。敷衍老板、敷衍队友、敷衍自己。一句话:各队员身在同一个项目,但却没有同一个目标。就算有两三个队员在为项目努力,但是是蚍蜉撼树,失败在所难免。最终团队下线。

3.       能力不够。当然,这是项目失败的最重要因素。整个团队只有老板懂虚拟现实,其他都不清楚。这次失败让我深深明白:组队要不都是高手,要不就高手新手搭配。三个臭皮匠,胜过诸葛亮的经验,在软件行业中是不合适的。

大三下学期,我加入了另一个项目组。就是用ASP.NET开发系统。OK,这是我所爱好、也是我认为自己稍微会点的东西。最后项目自然是完成上线。现总结经验如下:

1.       做软件,首要任务搞清楚需求。在实施的时候,要先开发界面,同时开发数据库(涉及它的话),然后写程序。这种方法叫“隔离驱动模式”。因为,界面和数据库都是体现需求的地方,需求一旦变动,系统也不会做大的调整。做需求的时候,每个队员都需要把自己的理解、想法说出来让大家讨论,一意孤行,项目也做不好。

2.       软件=程序+文档。这是没错的。规范的编码,规范的文档,能使队友明白相互在做什么、做到什么地步、有什么可以改进的地方。一旦要接替队友做的时候,才知道怎么下手,日后维护也方便。当然,用户也能从文档很好地了解软件该怎么用。

3.       团队里面不需要独行侠。我有个队友,不喜欢和他人交流,也不服从安排。举个例子:有个任务,A做一部分,B做一部分。这样安排就是尽快完成任务以便做下一个。结果A做好了,B却把A的那部分也做了。老板来检查进度时,负责进度的C同学就没法交代。良好的团队就要有良好的制度。

 

我,大四了,一年都没有课。意味着我处于无政府状态,意味着我需要离开学校,自求生路。只是要抽空做下毕业设计,再等着授位。累死累活的读完高中,就是想考个大学,现在大学也快OVER了,想想也不过如此。但是我还是希望能有更多的人去上大学,只要是稍微有点心的人,都能学到些东西。

 

失败有失败的教训,成功有成功的经验。希望看到这篇随笔的朋友能从中有所收获,也希望你有什么经验教训也能和我分享。

文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览34589 人正在系统学习中

来源:shaoyeaaa

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2010年6月22日
下一篇 2010年6月23日

相关推荐