当前位置: 首页 > 计划总结 > 个人总结

中山大学软件工程硕士毕业总结与经验

光阴似箭,两年的研究生生活就要结束了。在这近临毕业之际,对师弟师妹们能说些什么呢?似乎说不出什么,但又似乎有很多话要说,并且也希望有很多同学都说说。想想进校时模糊的兴奋、模糊的茫然与模糊的憧憬,感觉又应该写点什么。

稿子汇 www.gaozihui.com

首先谈谈进校前最想讨论也最想知道的事:该不该、或值不值得花费高价在中山大学读软件工程这个专业呢?我想,既然大家经过全国统考、能够跨过中大软件工程专业这个门槛,我相信大家的入学分数不算低,一些同学的分数与其它高校同类分数线相比又有较大的优势,不放心的恐怕是调剂风险和学校不象中大这么有名了。我认为,除非你可以上其它一流的高校,中山大学应该是你的首选,高价的学费是有所值的。从经济学的角度来看,有一个常用的方法叫铮值法,就是投入与产出之比,看是否有利润可图。对我们来讲,投入是两年学费4万,产出呢,我认为有很多,我只谈两点:一是中大学生毕业找工容易得多,特别是在华南这一大片土地,对于计算机行业来说更是如此。从我们这一批毕业生来说,毕业单位可能是你以前望尘莫及的,而且薪水一般都在5K~7K,毕业后1年你就可以赚回学费。而且第二年的实习你还可以去大公司赚足一年的生活费,^.^ 。二是你可以在中大学到不少知识。中大优良的学习环境和丰富的学习资源让你享受不尽。就我个人而言,在第一个学期我没有任何准备复习就通过了英语六级(以前很多次都没有过),搭上了证书的末班车;拓展了我的专业知识面,了解到了数据挖掘、网络通信、嵌入式技术、分布计算技术、游戏动画等新兴领域,外面请来的老师又让我们学到书本上学不到的知识;深化了我的编程技术。我是一位编程爱好者,通过这次的学习,让我觉得以前的我象是一个刚学会走路的小孩。认真对待每一门课和做好每一次课程设计,会让你受益匪浅的。另外,中大的研究生学制只有两年,可以提前进入社会自给自足,不必花费一年的大好青春在学校。

公文汇,办公文档之家

现在谈谈中大的学习生活情况吧。刚进校的第一学期,会让你觉得你是在一个封闭式的军营里学习,而不是在一个社会化的大都市。对我而言,似乎没出校门几次,偶尔跑珠江出出北门。两个字可以形容:紧、忙。第二个学期虽然课程较多,但选修课占多数,虽然你不选那门课,也可以很悠然地听老师讲课。按陈有青老师说的:听课是一种享受。中大的图书馆很人性化,资源也很丰富,随手可以拿一本书坐下欣赏,环境舒适,中午也可以在那里看看书再趴下小睡一会。 稿子汇 www.gaozihui.com

毕业实习是一件令人兴奋的事,可以提前去公司体验外面的世界。当然,如果能顺便小赚一笔就更让人心情愉快了。不过,找实习单位的过程可能会与找工的过程一样。一般来说,公司找实习生也就是准备着找未来的员工,所以大家不可小视。有些是导师介绍,这时跟对一位导师也很重要。选导师时一般要了解导师的研究方向、实习课题等。这里我要重点指出的是,实习任务最好要能和毕业论文联系起来。如果选择一个实习单位,实习任务不能够足以用来做毕业论文的材料的话,即自己都觉得没有多少新技术或创意,则最好不要进这样的实习单位,否则你的毕业论文工作将会非常辛苦,而且也会有很大的风险。 公文汇 www.gongwenhui.com

下面就来谈谈毕业论文的事。毕业论文的选题非常重要。我想谈以下几点:一是毕业论文的通过与否不是看你采用了什么先进或时兴的编程技术,而是看你的论文有什么价值,解决了什么问题,或运用时得到的效果如何,有什么创新。这点往往是我们这种注重编程“技术”的人犯的错误或幻觉。二是论文类型最好选工程类,理论研究类太难、太不容易过了,而且异常辛苦。老师一般都是搞理论的,对你的理论有何创新非常清楚,所以除非你非常有研究能力,不要在这方面冒险,并且我们这个专业本来就偏向工程类。三是早准备,不要指望学院会提前很长时间给我们做好时间上的安排。说不定哪天(第二学期开学初)就要你提交论文初稿,然后紧接着论文定稿,让你欲哭无泪。所以论文开题后就要着手找资料,边找边写点。四是多看英文资料,虽然英文资料可能看得较慢,看一大篇收获也就一点点,但可以扩展你的知识面,在你的研究领域你会有种总揽全局的优势,明白哪些你能做哪些你不能做,哪些还没有做或做了不够好,你的研究重点等。 稿子汇,范文学习文库

至于找工的体会大家就看看其他同学的吧,因为我不用找工,所以体会少些,这里就不谈了。祝大家学习顺利,生活开心!

推荐阅读: 中山大学硕士研究生招生专业目录 中山大学历年专业课考研试题汇总 中山大学硕士研究生入学考试完全备考手册【考研必读】 中山大学考研专业课高分必备指南 中山大学考研研究生报录比 公共课(政治、英语、数学)下载


第二篇:软件工程工作总结与建议


姓名:xIkUg[BCG][DFCG][OCN][DCM][CZG]

部门:行业开发部 – 超市项目组

出生日期:1980-11-25

个人简介:

没什么爱好,唯软件开发技术情有独钟,常自娱自乐,自小热爱编程,从小学6年级开始正式学习程序设计,至今已有xx年有余,18岁中专毕业,参加工作,至今已有5年,近6年的软件开发工作经验,工作期间也不断学习,完善自己的职业技能,理解软件开发的思想,熟悉Delphi、C/C++/VC++、ASP、SQL Server、Html、脚本语言(如:VBScript、JavaScript),汇编,熟悉Win32SDK编程,经过多年的学习和实践相结合对面象对象的设计与开发也有深刻的理解和自己独特的见解。列宁曾说“实践高于(理论的)认识,因为它不仅具有普遍性的品格,而且还具有直接现实性的品格。”,我始终相信。

对软件逆向工程也比较熟悉,熟悉汇编/反汇编,熟悉各种静态反编译(反汇编)工具如DD、W32DASM、C32ASM等,熟悉各种动态跟踪调试工具如SoftICE、OllyDBG等工具,熟悉加密与解密,能够利用这些工具和我的知识对软件进行加密,防止盗版,能够对软件进行解密和逆向工程,研究软件的底层机理,属于中国破解组织BCG/DFCG/OCN/DCM/CZG正式成员(注:这些组织都是以技术研究为主的,跟盗版是两回事)。

同时熟悉多层系统的设计开发,熟悉各种软件工具的使用,对Windows系列操作系统较为熟悉,对Linux操作系统有所了解。掌握面向对象的分析与设计和相关工具的使用,对软件工程化也比较熟悉,由其感兴趣的是敏捷软件开发。曾任技术研发组组长,带领技术研发组完成技术攻关,管理软件项目。有极强的自学能力和归纳总结能力。对一项技术有强烈的钻研欲望.

转入正题了,首先谈谈,我认为我所在的项目组做得好的地方.在我们项目组中使用了CVS做软件的版本控制,用RoboHelp写文档,用TestTrack做Bug跟踪.

做得不好的地方就是需求描述不清晰,而我们过早的进入"设计"阶段,过迟的进入测试阶段.

我们需要的需求描述是这样的:只说做什么,不说怎么做,并描述出希望得到的结果,至于操作习惯这些东西可以在得到了正确的软件功能后再作调整.

例如:

再来看看我们的代码:

我们目前的代码根本不具备可测试性,当改动一个地方的时候我们不可能自己把所有代码功能都跑1遍,以保证程序的正确性,保证程序的质量,有可能我们改动的这一个地方会牵扯到另一个地方或N个地方,而我们有可能没有考虑到这个关联性或没有考虑完,于是1个地方的改动造成了N个地方的错误.这样的问题在我们公司开发人员中基本是天天都在上演重复的一幕,造成开发成本/维护成本不断的上升,产品迟迟不能稳定.

还有一个比较严重的问题是过早的进行设计,把程序的结构过早的定下来,这样导致的后果是要当需求发生变化,目前的系统结构无法满足需求时,可想而知后果的什么样的.

再来说说测试:

我们的测试人员可说是做得比较好了的,这点我没什么好说的.我只是想说让我们开发产品应该尽早的提交给测试人员和用户进行测试,这样我们可以更早的得到反馈,对产品作出改进和修改.

我想重点对我们开发谈谈,提出一些自己的建议:

为了保证我们的程序具有可靠性,可维护性,可阅读性,让我们产品达到一个高质量的标准,我想唯一的方法就是让我们代码具有可测试性,可测试性的代码是具有良好结构的,优美的,高质量的并且也是简单的.其中以测试来驱动开发(TDD)的方法是我较为推崇的,我在家自己写的程序基本都有Unit Test.

Unit Test又叫单元测试,是针对程序最基本结构单元所进行的测试。而TDD的过程是这样的,写一个测试程序,使其可以运行,重构。在写这个测试程序的时候你考虑的不应该是基于什么结构单元,而是要考虑需要完成的什么功能。实现和重构的时候,具体是不是这个单元完成了这个功能依然不是你应该去考虑的,你考虑的还是——是不是完成了这个功能、是不是代码真的清晰和可工作。你考虑的问题永远是围绕着具体的功能进行的,而不是围绕某种结构进行的。你写这个测试程序的时候,这个结构并不存在,并且今后也可能不存在(由于重构,你在别的结构部分实现了这个功能)。

明白这个道理就可以明白TDD实际还是基于需求驱动的,还是一种前瞻性的设计手段。只不过TDD让这个需求更加具体,让其前瞻性也更可以预测,并且在多种方法中给了你进行多种尝试的机会。而当你认为这个测试只是单元测试的时候,无疑你就把程序的结构早早的做了一个固定,其是基于结构的而不是基于需求的,并且由于其基于结构的一面则设计的前瞻性很难得到保证,而就根本性的断绝了你进行多种尝试的可能。设计的前瞻性是指你的设计可以带来可以预测的结果。而软件的结构是动态的,并且随着你必须进行的重构活动这样的结构变更会日常性的存在。如果你的一个测试高度的依靠某种特殊的结构,在这样的经常性重构的环境下,其被经常性修改的几率会大大增加。而由于其结构的不确定性是根本不可能逆转的,所以针对结构进行的测试根本不可能带来结构上的可预测性,而谈不上什么前瞻性了。

软件开发是一个不断跌代的过程,我们应该小步前进,不应该一开始就固定的程序的结构,

一开始就使用复杂的设计模式,这些程序结构和设计模式都应该是我们通过了N次跌代后得到的结果.应该切忌为了显示自己的水平而在一开始使用这些复杂的东西.

时间有限,就谈到这里,附上两篇我以前写的关于开发的文章,作为参考,详见附件 1.简单设计

2.挑战极限-测试驱动开发

内容仅供学习,如需复制请赞助VIP会员,赞助后即可全站范文免费复制!


赞助会员请点击:开通会员

×