软件工程学习后的一些体会--------两周

软件工程这门课在印象中就是一门理论课,因为以前没有接触过,想象中的场景是:老师打开ppt,然后照本宣科的开始念经。在第一节课上,作为见面礼,老师开场赠送的一波营养丰富的鸡汤确实很是鲜美,听后信誓旦旦的感觉一定会成就一番事业(不过我更觉得像是一场90分钟的单口相声)。所以课上听得酣畅琉璃,课后不久也就忘得差不多了。然后随之而来的是号称11项的课后作业,其实都是一些简单的活儿。有句话说得好:”难的事情不会做,简单的事情做不好,那你能干啥?“。其实我确实将任务都完成了,但后来分数很是不理想,因为没能按规定的要求进行发布。所以从第一次的课后作业中我体会到:即便你能做出结果,但是如果不能很好的展示给客户,那一切都是徒然。就像你号称自己精通十八般武艺,可是到了比武场却不出拳一样。

  时间来到第二节课,我意识到如果把每节课当成老师的单口相声来听,也只能过过耳瘾,就像拿零碎的时间来看新闻一样,对当时看到的新闻表示震惊,或是感同身受,过了两小时后再要你讲述你看到的事情,却一概不知。所以我决心在听老师的课时,写一些自己应该注意的事项。随着90分钟的逝去,居然足足写了一页的内容,同时也惊叹于看似笑点百出的“单口相声”能有这么多信息量。要学会从别人话中提取信息。同时课后也是留下了一大批作业,看似在前次作业的基础上难度稍有增加,然后想着要以自己理想中的方式来完美实现。就拿题目中的一项“编写程序,实现(正,负,分)数的加减乘除四则混合运算“来说,想着挺简单的,但真正实现时才知道要想好所用的数据结构,设计流程,以及各种边界情况。最后才感到要一次性完成一个理想中的作品是很有难度的,所以我先实现一个简单的版本,然后在下一个迭代周期进行改进,Rome was not built in a day。在需求上不懂的一定要和同学多交流,讨论。需求理解错了后面的一切功夫都白费。我就是花了大半天的时间在一个很简单的需求上(关于重定向的问题),然后始终不能实现。最后发现其实是自己对需求的理解错了。

  在程序实现部分体会到会写代码不是编程的全部,自己对于以前做过的程序,现在看来居然一脸懵,就是因为缺少注释。在网上看别人写的代码都有规范的注释,这一点是值得学习的。对于程序的缩进,话说缩进之后的代码可读性真的很强,甭管代码是否正确,但是在外观上看着就舒服。在博客的书写上,以前都是将结果论述出来就算完成任务,后来发现优秀的同学竟然将博客写的像一篇论文一样,从问题的提出,到需求分析,再到解决方案的提出,实现过程中关键步骤的给出和功能代码的展示,以及未来的可扩展性的描述,讲述的头头是道。甚是觉得自愧不如,应当学习。技术上的难点可以通过外界训练来实现,但好习惯好作风的养成只能靠自己的内在意识。永远不要把事情在最后一秒提交或实现,对于需求尽快完成,就算出现问题也会有很多修改的空间,战胜自己的拖延症。

  最后谈一谈在作业中遇见的几个知识点:

1.对于java的equals方法和“==”之前有所了解他们的不同,但是在编写代码的过程中问题恰恰就出现在这里了,最后解决了。现在对于自己和读者进行一下科普。

Java中的数据类型可以分为基本数据类型和复合数据类型这两种。基本数据类型:Byte,short,char,int,long,float,double,boolean.他们之间的比较用“==”,比较的是值。

复合数据类型(类)用“==”进行比较时,比较的是他们在内存中的存放地址,除非为同一个new出来的对象(地址相同),他们比较结果为true,否则其余的都为false。java中所有的类都是继承自Object这个基类,Object这个基类中有equals方法,此方法的初始行为就是比较对象的内存地址。但是对于String,Integer,Date这些类中,equals方法有其自身的实现,而不再是比较类在对内存中的地址了。而对于复合数据类型中没有覆写equals方法的类,他们用equals方法比较的还是他们在内存中的地址值,因为Object中的equals方法也是用“==”实现的,所以用equals比较后的结果和用“==”比较的结果相同。以String类型举例:

String s1 = "Monday"; String s2 = "Monday";     s1==s2为true,   s1.equals(s2)为true,因为s1与s2指向同一个“Monday”对象,值也相同。

String s1 = "Monday";      String s2 = new String("Monday");    s1==s2为false, 因为s1与s2引用两个不同的Monday对象,内存地址不同。     s1.equas(s2)为true,因为值相同。

引用自 http://www.cnblogs.com/zhxhdean/archive/2011/03/25/1995431.html

2.对于词频统计中文本的保存:txt文件在词频统计时要保存为ANSI格式(默认的),不要设置成UNICODE格式。

3.java在命令行编译问题。我的程序开头有 package com.nune.homework这种包语句,类名叫Test,编译时应该写为 Javac -d . Tset.java (意思是在当前目录下的 com/nenu/homework下生成.class文件) 然后继续运行Java com.nenu.homework.Test才好使。起初我是这样写:Javac Tset.java  然后运行 java Test 会报错"找不到类"。

路漫漫其修远兮,吾将上下而求索。       

        ---------------共勉!

时间: 2024-10-18 03:08:53

软件工程学习后的一些体会--------两周的相关文章

软件工程学习后问题解答

一.在学期初我曾通过阅读教材发现了五个问题,现在我来对这些问题一一解答 1.问题:教材第二章讲在进行软件技术模块设计时,要越细越好,但是我在进行面向对象程序设计时,总是无法将某些模块分离开,导致某些方法代码行数过多,请问有没有更加具体一点的设计方法模板. 解答:这个问题老师也曾回复过我解决方法就是在设计的时候不妨也进行一些单元测试,这样有助于设计的展开,经过一个学期的学习与思考,我发现其实会发生这个问题主要是因为我编写代码的经验不足和思考问题不够全面导致,在个人项目和双人组队项目中我们的任务都是

学习软件工程学习报告以及心得体会

学习了一个学期的软件工程,到现在基本上已经结课了.我谈谈这个学期我学到的和懂得的东西. 总体来说,我最大的收获是我们的实际能力得到了提高,我们有个人项目,结对项目以及团队项目.我们的互动做了很多,所以动手能力更强了.无论是在上个世纪还是在现在,软件开发所涉及的工作基本上都没有变化,它们都起始于一个实际需要或某个灵感然后就是分析,设计,编码,调试,维护.这些任务以某种方式动态地结合起来就构成了软件开发的整个过程,这就是所谓的"软件开发周期". 但对于这些工作具体怎样做,什么时候做,每

软件工程学习进度表(第十六周)

所花时间(包括上课) 5小时                       代码量(行) 100行左右 博客量(篇) 2篇 了解到的知识点 1.学习了如何进行绩效评估 2.对软件进行了测试

软件工程学习进度表(第十五周)

所花时间(包括上课) 5小时                       代码量(行) 200行左右 博客量(篇) 10篇 了解到的知识点 1.学习了如何处理anroid里的图片 2.学习了更多给页面做美化有关css网页设计的知识

软件工程学习体会

这学期开了一门名叫软件工程的课程——一门可以大大练习我们编程能力的课程.作为计科的学生,在编程方面,这门课程确实会弥补我编程的不足.自从大一开始接触电脑以来,对电脑的热爱慢慢加深,因为大学以前几乎没有接触过电脑.所以从一开始,我都比大多数人落后许多,从打包文件夹到上传作业,我一个都不会,除了开关机.不知道当时是为什么会选上这个专业的.甚至有了一个念头,好好学习,等到了大二争取资格转专业.(谁给的自信(-.-;)).其实到了大二,可以转,但并没有,因为接受了. 第一门课程是C++,那也是我第一次开

最近找到了一个免费的python教程,两周学会了python开发【内附学习视频】

原文链接:https://blog.csdn.net/weixin_41052734/article/details/86528541 最近找到了一个免费的python教程,两周学会了python开发.推荐给大家,希望召集更多的朋友一起学习python. 最近开始整理python的资料,博主建立了一个qq群,希望给大家提供一个交流的同平台: 78486745 ,欢迎大家加入共同交流学习. 本套教程学习时间15天 第一阶段(1-8天) 该阶段我们正式进入Python这门语言的学习,首先通过了解Py

【日常学习】清明前后两周学练总结

要写关键路径,发现图论早已忘得一塌糊涂,悲哀之余,抓紧复习.翻高级本时又看见了前面的贪心,于是就又把贪心练了一下.写了几道比较老的题目,像是积木大赛.之后还突发奇想练了栈一类的.总之,这两周的练习相当凌乱.下面贴一下近期做过的几道题目吧. 表达式求值专项训练 codevs1750 加法表达式 (自带吐槽:直接用读入优化那样的getchar()读入 但是要注意读不了的时候返回值是-1 所以不能用"!" 另外最后一次读不下去要break直接加上) codevs2715 表达式运算 (自带吐

本两周学习总结

这两周主要再看源码,所以没什么好写的,但是绝大大多源码或者记录一些我觉得有意思的代码, 主要记录的有D3源码,date-fns,rx.js主要是需要后期看能不能看看源码,numjs,然后修改成两周更新一次,其他这样的更新其实也是保持新鲜感 this指向问题 function sumArgs() { return Array.prototype.reduce.call(arguments, (acc, val) => { return acc + val }, 0) } console.log(s

软件工程学习总结篇

在经历了12周的软件工程学习之后,我们的在这一阶段的学习也即将画上一个句号,从刚开始之初的一无所知到后来我们一起合作做完成了许多的项目,这些应该就是一个不断学习积累的过程,在这个过程中,我们每个人的收获都是不同的:或许我们学会了如何去管理一个团队,又或许我们学到了更多的专业方面的技能,当然我们也学到了团队的重要性,所有的这些都是在潜移默化的影响着我们以后的工作和实践.所以,虽然我们这一阶段的学习暂告一段路,但我们的软件工程开发之路也应该才刚刚开始. 一.首先我们一起来欣赏一段译文: 软件工程师们