首页 > 公文资料 > 其它公文 >

软件开发学习心得(精编5篇)

网友发表时间 168904

【导言】此例“软件开发学习心得(精编5篇)”的公文资料由阿拉题库网友为您分享整理,以供您学习参考之用,希望这篇资料对您有所帮助,喜欢就复制下载支持吧!

软件开发学习心得1

受某文化公司委托,开发一款用于视频和图像处理的软件,开发难度高,高到从未搞过,开发周期长,长到是我以前项目监控最长开发周期的两倍,开发成本之底,让我觉得程序员成了高级打字员。首先是需求分析书、产品规格说明书、设计说明书、代码规范说明书、测试计划,光文稿就不知道熬了多久才做完。

紧接着,遇到一系列问题,首先是语言选择,vc++和c#都是可以保证开发完成的选择,但是vc++内存容易报错,界面很难修改,而客户要求的界面质量甚至比程序的功能更严格,没办法,客户就是上帝,上帝做事一定有他的道理。c#语言易于 开发,而且图形界面绘制也易于修改,可以做出客户体验很好的界面,但是在资源的消耗上,让我很吃惊。做到第二个月,大概的界面已经完成时,出现界面刷新的问题,刷新时开始卡,界面不流畅。没办法,改。

开会,总结,技术骨干找问题,拿出解决方案,力争第一次做软件把它做好:

重新做软件开发进度计划和软件测试计划,并且让独立功能demo制作和测试先行;

用direct draw、direct 3d或者opengl中的一个替代c#本身的gdi绘图,将在接下来的开发任务中加入进去。

事无巨细,当我满意的看着界面流畅,功能也已实现时,发现软件在低分辨率或者小本上根本乱到没法看,甚至是界面功能按钮错位,重叠等等。没办法,改。毕竟软件的多分辨率兼容和操作系统兼容是必须要做的。

接下来一大堆的麻烦找了上来,软件出现各种各样想都想不到的问题,总算是按时将第一个版本发布出去,并且开始接下来的升级开发任务。

最后,给刚刚接手软件开发项目的朋友一些忠告:

一、相关的文档不是给别人看的,而是给自己看的,相关文档一定要齐备,而且让所有涉及开发的人员都清楚的知道你文档里所要表达的意思;

二、一定要注意多做demo,多做实验,一个demo程序员几个钟头就可以完成,甚至更少,但是不做demo,核心程序没有做实验,其他的东西都围绕核心程序做了上去,到时候耽误的可不是几个钟头

三、程序设计要注重用户体验,当初客户对我要开发软件提出近乎苛刻的要求时我不在意,但是当我自己反复使用软件时有了很多体会,流畅美观的界面带给人心理的快感的确能替代一些尚未开发完整的功能带给用户的遗憾。

四、测试计划多次进行,分批进行,不要全部开发完成再对软件做测试。

还要坚持三个月,软件马上发布,希望大家的支持,谢谢!

只要功夫深,铁杵磨成针。山草香为大家整理的5篇软件开发学习心得到这里就结束了,希望可以帮助您更好的写作学习软件开发。

软件开发学习心得2

时间过的好快啊,为期三个礼拜的实训生活即将结束了,短短的三个礼拜让我们收获很大,专业知识、编程水平都有很大的提高。刚开始三天的高强度的课程安排让我们受益匪浅;接下来的上机实训又让我们可以巩固了课程。这让我觉得实习生活充实而有意义。辅导老师配好了环境之后,我们开始了项目的制作,这次项目实训算是自己小学期间主要完成的项目。最后,自己的努力还是有收获的,看着电脑上记录得满满的代码,看着自己的项目最终能够运行成功,就觉得很有成就感。

在本次的实训中,除了让我明白工作中需要能力,素质,知识之外,更重要的是学会了如何去完成一个任务,懂得了享受工作。当遇到问题,冷静,想办法一点一点的排除障碍,到最后获取成功,一种自信心由然而生,这就是工作的乐趣。有时候也需要虚心请教,从别人的身上真得能学习到不自己没有的东西,每一次的挫折只能使我更接近成功。除此以外,我还学会了如何更好地与别人沟通,如何更好地去陈述自己的观点,如何说服别人认同自己的观点。这次所学知识与实际的应用,理论与实际的相结合,让我大开眼界。也是对以前所学知识的一个初审吧!这次实习对于我以后学习、找工作也真是受益菲浅,在短短的一个星期中让我初步从理性回到感性的重新认识,也让我初步的认识这个社会,对于以后做人所应把握的方向也有所启发!相信这些宝贵的经验会成为我今后成功的重要的基石。

在此,我非常感谢学院领导和指导老师对这次实训的大力支持。

软件开发学习心得3

软件开发过程中的任何一个活动都是为了能够产出优秀的代码。所以,代码才是核心。

1. 代码是软件开发的基础

编码是软件开发过程中最基本、最底层的技艺,然而也是最重要的技艺。任何一个领域的专家都需要花费大量的时间来进行基本技艺的锻炼,木匠需要花费大量的时间来锻炼他们对各种工具的掌握,厨师则需要练习刀工和火候。程序员也是一样的,对我们来说,语言的各种特性必须要了然于胸。而对软件的管理也需要从代码做起。

从20xx年到现在,国内兴起了一股软件工程热,需求管理、配置管理、甚至CMM。面对纷至沓来的各种方法学、UML、OOA,大家似乎已经热衷于这些概念本身了,却往往忽略了软件开发中最基本的元素:代码。在和很多软件组织的接触过程中,我们认为大多数组织急切需要的并不是这些工程理论,不是说这些理论不重要,而是这些组织的症结不在于此。很多的组织连代码的质量都管理不好,又何谈其它呢?代码管理是基础的基础,从管理的角度上来看,任何一个组织的管理都需要一个从上至下的管理过程,有基层的管理人员,也有高层的管理人员。对代码的管理就是软件开发中的基层管理,它起到的作用就是能够把需求、设计的思路贯彻到最终的代码中。

“管理无大事”。对软件的管理也是一样,大部分的问题都是由于很小的原因引起的。例如,一个产品如果后期在debug上花费了大量的时间,那么,这种现象是由于什么原因引起的?一种可能的原因是前期的代码设计中对代码质量的把握不严。每一次代码功能的演化并不会产生太多的问题,但是当代码累积越来越多的时候,问题也就慢慢出现了。那么如何解决呢?可以加强QA的力量,也可以引入复审,还可以引入单元测试。总之,要有一种方法对代码进行控制。

软件的开发过程就象是一部精密的机器,任何一个环节的变化,都会对其它的环节产生影响。把软件过程按照瀑布的形式进行划分是一种分解的处理思路,但同时我们还应该看到不同活动之间的相互影响。软件开发中的生命周期模型也是一个层次模型,从业务建模一直到软件实现,需要跨越数个层次,同样会出现执行不力的情况,例如,代码设计偏离需求、偏离设计的情况比比皆是。

如何避免这种情况呢?这就需要我们从源代码的角度,反思其上游的实践活动,是否足以约束代码设计?就拿XP来说,他解决这个问题的方式是尽快的进入代码开发阶段,从代码开发中发现问题,并在下一轮的开发中解决。这种思路是正确的,但XP毕竟是方法论,他不会告诉你过于细节的东西,尽管XP已经提供了大量面向代码的实践。因为方法论的抽象级别比较高,使得他必须舍弃部分的细节。而这篇文章告诉你的,就是这些细节。就像我们在下一节中讨论的例子,需要在代码中加入对异常的处理,那么,异常的源头在哪里呢?是需求,在需求中,我们发现了一些业务的非正常的处理序列,发现了一些业务实体的限制性的要求,所以在代码实现中,就需要有相应的异常处理。在例如,一个优秀的异常处理,还需要让客户端程序员了解可能发生的异常,以保证不同代码间正确的集成。

2. 面向对象的代码

面向对象的代码已经在现在的软件开发中占据了主流的位置,面向对象的思路也有其优势所在,就像后文所讨论的,面向对象代码有着非面向对象代码的很多优势,而软件业中很多新的思潮的产生,也都是基于面向对象语言的,所以我们关注的代码将是面向对象代码。

面向对象的思想来自于抽象数据类型。对于面向对象来说,它最重要的改进就是把世间万物都描述为对象,而类则描述了同一种对象的特征,而不是像传统的开发方法那样,按照机器指令的执行顺序来进行设计。当然,面向对象代码最终仍然是要按照时序来执行的,但是从程序员的角度看来,面向对象代码更侧重于对象之间的交互,多个对象各司其职,相互协作以完成目标。而面向对象技术的发展,也是朝着更加贴近我们世界观的方向发展。从这点来看,有人说完全没有程序设计经验的人学习面向对象可能会更加的容易,因为他不需要从原先的时序程序的桎梏中摆脱出来,但这未必是事实。面向对象决不是一种简单的程序设计思路。这是我们的观点,也会在下文中反复的论证。

和所有的职业一样,程序员,或者是面向对象程序员,始终坚持的一点就是严谨。你会看到各种各样优秀的代码,但那决不是一次能够写成的,要不断的尝试,不断的改进。为什么重构和测试优先是敏捷方法中很重要的一项实践?因为程序员不是神,他们需要慢慢改进他们的代码。虽然罗马不是一天能够建成的,但是在编写面向对象代码的过程中,有一些实践是需要坚持的,它体现了我们所说的严谨。

3. 编写并管理面向对象的代码

编写优秀的面向对象代码并不是一件容易的事情,优秀的OO代码如行云流水,糟糕的OO代码让人觉得浑身起鸡皮疙瘩。编写优秀的OO代码要求程序员有一定的自我修养,能够以抽象的思路看待问题,找到问题的核心并对问题域进行分解。它强调的是一种解题的思路,但这个解不是唯一的。

典型的例子是设计模式,设计模式确实给了我们以很大的启发,通过它,我们能够了解到优秀的代码是如何用于解决实际问题的。但是是不是你必须在软件中照搬设计模式呢?如果你这么做,那么你对设计模式的理解仍然不够。我曾和在建筑行业的朋友聊起Christopher Alexander的建筑的永恒之道。他很兴奋的告诉我,那确实是一本很好的书,能够引发人很深的思考,但是现在也有另外的一种观点,认为美仍然是无形的,应该发自建筑师的内心。对这句话我思考了很久,其实建筑是给人使用的,因此最重要的是它能都给人带来的价值,隐含在其中的那种活生生的气质,这是建筑师文化底蕴的外在表露。所以,Christopher Alexander在那本书中的目的,也是为了找到一种总结自己观点的方法,来总结自己对人文的认识。至于现在大家对他的思路提出了质疑,那也是一件好事,这说明大家对建筑之道的认识到了新的高度。建筑是这样,软件中的模式也是一样的,我也曾热衷于研究模式的使用,直到某一天我猛然惊醒,与其沉迷于模式的表面形式,为什么不去研究隐藏在它背后的文化底蕴呢?武侠小说中常说无招胜有招,模式的应用也应当到达这个境界,你如果可以在不经意间应用模式的思想,那又何必拘泥于模式的形式呢?

编写优秀OO代码虽难,但还有更难的事情,就是让整个开发团队都产出优秀的OO代码。我们刚才说了,OO对问题的解不是唯一的,但各个不同的优秀解汇集到一起,可能就是一个糟糕的解,这是风格和架构的问题。你如何在团队中制定制度,营造氛围,让优秀OO代码成为团队最终的成果?这些问题,在我看来,要比CMM难得多,这个问题并不是靠花钱就能够解决的。如果能够解决这个问题,这个团队的创造力一定是惊人的。

4. 面向对象软件开发过程

普通的软件开发过程和面向对象开发过程有着很大的不同。回想我们在非面向对象中开发过程中,最经常采用的任务分配方法就是以软件模块为单位,这样的好处是分配简单,不同任务之间耦合程度低,容易操作。坏处是几乎无法做到重用,也缺乏整体性的设计。而面向对象软件开发则不同,它是以类、类集合作为基本单位的。类之间关系错综复杂(虽然我们提倡低耦合的设计,但类之间的关系仍然是相对复杂的)。这种情况下程序员之间相互协作的要求就非常之高,这种关系如果处理恰当,则能够完全体现出面向对象的威力,否则,那将会是一场大灾难,面向对象的软件开发过程要养成一些好的习惯:

4. 1 尽量简化和稳定客户端。

个人编程可以是一种享受,但团队开发始终是一项严谨的职业活动,因此多考虑别人,不要设计复杂的接口,虽然你省事了,但这会给理解和使用你的接口和人造成障碍。

准备一份简洁的文档,并保持更新。

随便一种形式的稳定,可以是代码,可以是UML图,也可以是纯粹的文字(估计没几个程序员喜欢这种形式)。只要它能够传达你的代码的目的,那就足够。记住,更新代码后,同时更新你的文档。过期的文档不仅是废纸这么简单,它会给其它人造成麻烦。切记!

4. 3 尽可能多的考虑异常和错误的情况。

软件开发学习心得4

来到北大青鸟通州校区学习已经快一年了,虽然时间不算太长,但对于我而言,在北大青鸟,我的收获是无法用时间长短来衡量的!

因为在来北大青鸟之前,我从没接触过软件方面的知识,所以刚开始很担心自己学不了,自卑的情绪很严重。但是细心的班主任发现了我的问题,总是很耐心的找我谈心,开导我!慢慢的,我想明白了,不要盲目的和其他同学作比较,今天的我只需要比昨天的我有进步,我的目的就达到了!

想通了以后,我自己也越来越自信了。就像一只从起跑线上开始爬行的蜗牛,虽然很慢,但是我目标很明确,很坚定!或许很多人会认为学习软件是一门很枯燥的课程,但是我觉得这乏味中也有不少乐趣。例如学习。NET和C#时,我们小组就自己制作了一款小游戏,虽然是一款很简单的小游戏,只能有一些普通的攻击动作,但是它就是我们的学习成果。玩着自己编写出来的小软件,想着以后能开发出更厉害更完善的系统,让我们对未来的工作和学习充满了动力!

刚开始接触三层架构的时候,我上课听老师的讲课真是一头雾水。但是我并没有放弃,而是更加认真,调整好心态,强迫自己反复的看书,查资料,一遍遍的练习,遇到不懂的就马上去问老师,就这样,终于攻下了一道道难题。

如果你问我在学习软件的过程中,什么学习方法最重要,那我会认为勤奋是最重要的。一定要反复的练习,这样你才会掌握得更扎实,基础打得好,后期的学习才会更省力!另外,我觉得课余时间应该好好的利用起来,不要局限于课本,要主动的去学习更多的知识和技能,为以后的工作准备更多的能力!

软件开发学习心得5

这次实训使我们明白我们所欠缺的不仅仅是技术知识,更重要的是有一种处理事情的方法、面对问题的心态和动手能力。面对完全陌生的新知识、新技术、新项目以及整个IT行业,我们不能畏惧,要以一种积极的心态去面对,分析并抓住关键所在。因为我们所即将应对的每一个项目都是既需要实际操作,又需要详细规划的。作为组长,协调组员、激励其他学员和积极参与项目研发是我每天必做的工作。我认为每个人都应该在团队中做好自己应尽的职责,再优秀的个人也可能完成一个即庞大又复杂的项目工作,我们必需紧密的联合在一起,以一个团队的角色来面对。

一公司有一项对项目经理的调查显示,项目经理平均每周参加6个会议,其中25%的时间浪费在无用的讨论上。会议效率低最普遍的3个原因是:会议没有很好的计划、会议没有被适当的领导、无纪律的与会者。我们软件项目也会遇到相同的问题,项目启动会、评估会、大大小小的评审会、技术会、周例会等等一系列会议会随着项目进展而召开,如何保证高效的会议效果,我的一些会议技巧与大家共享:确实需要开会时才开会;订立会议纪律;非常清楚的明确会议目标;提前准备一个会议议程;提倡各会议参与人的会前准备;鼓励参与,但在会议过程中遵守会议议程;把团队建设融入会议、作会议记录、会后跟踪所有安排任务的执行情况。

程序员需要关心尊重。曾经有个例子,某公司开发人员王某由于刚开始学习编程,技术水平差一点,常常受到经理的“另眼相看”,每次软件出现了问题都怀疑是他的原因,老开他的低级玩笑,这位员工会有怎样的表现就可想而知了。经理通过这种手段能够迫使这一位自动辞职吗?非也,这位员工后来工作非常不负责任,把代码写得既长又重复,且在代码中留下大量的隐患,此时,经理却反而不敢过份得罪他了(否则,留下的巨量代码很难维护)。如果认为某人不适合目前工作,为何不另请高明?既然已经请他作了这件工作,就得尊重他。

不能指望开发人员在非工作场合谈吐得体、办事周到、眼观六路、耳听八方,正所谓“尺有所短,寸有所长”,例如要求技术人员在酒席宴上象公关小姐或公关先生一样举止适度,从来不会有好的效果。软件人员普遍喜欢自由而宽松的工作环境,最好不要做过多的无谓的规定,例如不准迟到、上班必须换拖鞋,否则罚款等等。如果确实有人经常上班迟到,工作不认真等,首先应该了解原因,此时多作思想工作是必要的,许多公司的经理们认为“思想工作”是过时的东西了,其实不然,私企职工背负的心理压力其实很重。他们特别需要有人关心,特别需要心理上的“减负?

软件项目管理,需要我们不但关注项目管理技术等在软件行业中的应用,还应该关注如何与软件新思想和技术的整合,例如XP等思想,使我们得到更高效益的产出。欲想琢其玉,必先利其器,项目管理和我们软件开发、质量管理等得一系列工具和模版,是我们事半功倍的利器。他山之石可以攻玉,关注一些管理界的发展,例如目前的中国式管理等,将其经验用于软件项目管理实践并总结,将为我们带来更大实效。

相关推荐

热门文档

70 168904