2017软件工程作业---第一次
首先自我介绍一下,我叫李传康,江苏徐州人,毕业于吉林建筑大学,专业是计算机科学与技术,为人还算友善,欢迎随时来扰。
一、下面,让我来回答一些问题:
(1)回想一下你曾经对计算机专业的畅想
当初你是如何做出选择计算机专业的决定的?
你认为过去接触到的课程是否符合你对计算机专业的期待,为什么?
你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗?
(注:不可以回答 "不是","是"。请把这当成以后工作时面试题,需要回答足够长度,提供足够信息,让对方了解你。比如,给出为什么。)
说实话,没进大学的我,对于计算机专业的认知是非常少的,家里人也有和我一样的理解:计算机现在谁不会玩,学这个有什么前途吗。我不确定,所以我的第一志愿也不是计算机专业,而是土木工程,进入这个专业实属无奈。随着大一大二的学习,我对这个专业有了新的看法,一些专业课的开设,让我看到了计算机的内在,比如工作原理。记得有一次上课提问,现在计算机的键盘就里有很多按键,但是对于熟练的开发高手来说,只需要三个键就够了,知道是哪三个吗,这节课的名称叫做C语言程序设计,留个小问题你们来猜猜看,当时我回答上了两个,第三个在老师的提示下任然没有回答上来,后来知道答案的我,恍然大悟。大学四年,让我知道了IT行业的未来前景,但是学校开设的课程基础的居多,开发语言的太少,而且不能满足我的需求。有些同学转了专业,但是我坚持了下来,并且热爱这个专业,我喜欢玩手机电脑,喜欢逻辑性很强的事物,而且还特别满意可以通过开发工具的编译,把头脑中的想法变成可见的页面,未来如果有可能的话,希望可以更进一步,变成实物。
(2)考取研究,对照前人们走过的路和描述未来发展,现在的你自我感觉你已经具备的专业知识、技能、能力有哪些?
离成为一个合格的计算机学生,在专业知识、技能、能力上还差距哪些?
这个专业成功的前人的路我没有太多的关注,感觉他们离我太遥远,而且我也认为自己没有那么强大的心理素质和专业技能。但是对于未来的发展,在我听完学长学姐的实践经验和看完构建之法后,就完全推翻了以前的看法。以前认为自己的专业知识储备的还不错,给自己打个73分,后来发现37分都感觉太多了,对于很多知识,都只停留在表面,比如TCP的三次握手,这个相信不少人都知道,但是谁能完整的说一下具体的过程,CLOSE_WAIT,TIME_WAIT是什么状态,怎么产生的,对服务有什么影响,如何消除?这样的问题太深奥,老师可能不会讲,甚至有可能书本里都没有,然后问题就来了,大型公司面试的问题诸如此类的,不会少,我们如果没有做过项目,没有足够的拓宽知识面,后果可想而知。简略的说一下我目前的专业知识、技能和能力,目标正在备战软考,所以专业知识方面会从以前的初步了解上升一个小层次吧;技能方面会用Java进行编程,也曾经编写出几个程序(bug很多的那种),没有对Java的进行全面的学习,一些线程、并发之类的问题不会,数据结构和算法也都停留在书本上;能力方面能吃苦耐劳算不算....
(3)每天都是一个人生选择的十字路口,学术研究、工程项目、社会实践 (?) ,不同的选择有不同的努力方向。
对照以上你阅读的前人们的经历,你的选择是什么?
在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
针对你的选择,你给自己的本学期的规划是什么?
前面说了,我很少关注前人的经历,所以我目前的想法是在研究生期间多接触一些工程项目,在拓宽眼界的同时,学会并使用学到的技能。说到优势,可能没有,但是劣势是很多的,比如昨天丢丢就说我人家是立长志你是常立志,持之以恒方面严重不足,对于喜欢的事情积极性百分之百,对于不喜欢的事情也能保持百分之六十的耐心,记忆力方面也不好,应该是进入学习的状态时间太长,凭白浪费了太多时间。对于本学期,我定了一些小目标,比如正式入门编程行业,了解一些常用的编程规则,能熟知主流的技术产品,在老师的带领下,对于软件工程的开发有长足的进步。
(4)你对这门课的期待是什么?
你打算平均每周拿出多少个小时用在这门课上?
我对于这门课程的期待很高,希望可以通过学习,完善我知识体系里的软件工程部分。我打算每周拿出20小时来学习这门课程以及相应的知识。
二、接下来,我想说说构建之法这本书,说一说我的读后感以及疑问。
首先,这是一本好书,一本可以让人读进去的好书,一本可以收获未知的好书。在书里,前面十几章说了很多软件工程的知识,很详实,最起码是我以前忽视的,或者说了解不是很清晰的。里面的内容很全面(在现在的我看来,未来说不定我可能要改口了)。
个人能力,团队合作,小组分工。以前的我没有接触过,除了第一个,因为我曾经自己半努力半求助做出来几个小小型的系统,虽然有很多毛病,但是当时很有成就感,但是看完这本书后,看到一些稍微大一些的企业,动辄就是十几万行代码的项目,数据结构和算法,貌似占的比重也不少,顿时感觉自己不行了,跟不上时代的马车了,掌握的技能太少,阅读量也不够,要不然怎么没有在几年前发现并读这本书呢。
在这本书里,很温柔的也很残酷的把开发人员的等级给你展现出来,把至少具备的各种能力给罗列出来。然后就发现,自己还没有入门,而且距离入门还有一定的差距,读完之后,我的脑海里占据比重较大的是测试,各种各样的测试,甚至有种感觉,测试是开发过程中最重要的部分,然后我就有了一个疑问,单元测试是开发者自己测试,可以有效的避免明显的错误,但是一些开发者自己没有想到的bug,怎么办,结对编程虽然可以大幅度减少这种思维漏洞,但是仍然会有出错的可能,这时候需不需要第三者帮忙?集成测试有没有明文规定,还是大部分功能实现了,PM觉得可以了,然后在集成测试?回归测试是不是要比单元测试更严谨?
第二个问题:融入团队的问题。通篇阅读下来,发现越大的项目,越需要团队的通力合作,但是书中也写了几个个人能力超强的人独自完成项目的,而且会的少了贸然加入一个项目组里,会不会拖垮工程的进度,怎么样才能最好的在刚进入项目组里时就体现出自己的价值?
第三个问题:需求分析和典型用户和 场景问题。书中说一个程序员会以不同的典型用户的视角来看待问题和工作,是否是说程序员需要了解一组用户的想法和习惯,这个工作是程序员自己了解的,还是顾客提出来的,还是团队一起分析得出来的?
第四个问题:创新问题。是接触的的越多越容易创新,还是接触的少越容易创新?见识的越多,越容易产生自卑,自己会的东西,接触的东西太少,然后就开始吸收这些东西,这个过程会慢慢的杀死创新的细胞吗?还是接触的少,因为某些需求,可以奇思妙想,大胆创新?
第五个问题:模板问题。什么样的才是合格的,老手总会对新手说,我给你找几个优秀的模板,你照着改改。第十三章有个关于错误报告的对话,两份截然不同的文档,一个很粗略的说明了系统有bug,一个详细的说明了系统怎么出现的出现了什么样的bug,这说明模板的好处。有了标准模板会不会影响创新?
三、根据历年学生 (含https://edu.cnblogs.com/中其他学校的作品) 发布的git代码和随笔,评论3部软件作品。
社团学生平台
相关链接:http://www.cnblogs.com/wowotoubuaa/
这个项目致力于社团活动消息的发布,和学生的互动交流。
看完了他们的整个项目所经历的流程,感觉每一步都是必不可少的,看了他们的项目简介和所希望做出来的功能模块,就觉得这是经过深思熟虑的,考虑的很全面,网站由学校统一认证的身份登录,保证用户的真实存在,以方便后来一些要求的提出,比如社团活动申请教室。社团论坛,可以发布消息,为了保存以往的活动消息,打算做一个网盘功能;为了方便通知,做一个短信群发的功能;还有申请教室,活动报名,社员信息管理,社团文化交流等等。
在真正做的时候,他们进行了技术的分析,对每个人的能力进行了分析,然后查缺补漏,开展学习和设计,每周进行例会,讨论研究现阶段的任务完成情况和下阶段需要做的事情,条理分明,不紧不慢。会舍得,对于一些难度较大的功能,目前没有能力做到了,先做可以短期内实现的,团队合作很重要,团队分工更重要,每个人各司其职,群策群力,一定可以完成目标。
餐站
相关链接:http://www.cnblogs.com/sixsix/
一款用于订餐的APP,有将合适的菜品推送给用户的功能。这里面有一个我很感兴趣的技术,叫做网络爬虫,可以获取数据,这个对于这款订餐APP很关键。成功的案例大都有相似的过程,他们也是先进行分析,然后进行组员的任务分配,可以看到,首先初始分配,然后在项目的进行中,还可以进行微调和组员互助。
用了NABCD分析法,明确了这些之后,就开始进入正题,细化设计,测试和发布。从这个项目中,我学会了坚持和保持充分的耐心,因为想要在同类产品中胜出,需要分析比较多家产品,有时候还需要一点顿悟,商业头脑。他们刚开始的时候,进行的很慢,因为网络爬虫他们了解的不多,所以花费了比较长的时间来学习,这也启示着我们,遇到不会的技术,不要怕,只要想学,总会学会的。最后产品发布了,但是遇到了一些bug,有的解决,有的没有,能力水平有限,闲杂的事情更容易分散精力。
学霸网站
相关链接:http://www.cnblogs.com/ourteam/p/4060619.html
这是一个在前人基础之上再次开发的项目,这类项目的操作感觉应该相对容易一些。小组成员在原有的功能基础之上,设想添加一些新的功能,包括在用户信息管理、提问、搜索、分类、评论、个性化界面、用户反馈、娱乐、积分获取等,然后对这次新添加的功能进行了细致的说明,。确定了需求,然后成员进行了任务分工,每个人都进行了风趣幽默的自我介绍,感觉很新奇,对于用户登录的安全性做了一些补充,比如登录错误的提示不会很明显,模糊的指出。对于用户体验的界面也做了优化,更加符合学生群体的审美,提供了匿名方式,诸如此类的很多改动,更加的人性化,合理化。
四、采访本课程往届同学(含外校和毕业生). 现代软件工程这门课已经上了好几年了,以前有很多学生做过团队项目(说不定包括本校的学生),请你们找一个以前的团队采访一下:
-
当时的项目有多少用户,给用户多少价值? 现在还有人用吗?
-
这个项目能否给我们团队继续开发,源代码/文档还有么?
-
项目开发有什么经验和教训
-
对学好软件工程有什么建议
(1)学长说用户不多,几十个用户,自我评价的是给用户的价值不多,现在没有人在用了。
(2)学长说可以,但是源代码现在他那里没有了,但是他当时的组长还有,所以是没有问题的,源文件文档方面。
(3)学长说,一定要和团队搞好关系,这样才能一起努力搞项目,要知道自己的长处,主动要求做擅长的方面,这样可以减少团队的压力,因为有些人不明确自己会什么,会到什么程度,学习的能力如何,这给当时的开发增添了很多不必要的困扰。还说,每次开例会都要积极发言表态,这样项目的进度才会加快。
(4)学长的建议就是听老师的,还建议我《构建之法》这本书很有趣也很实用,没事可以多翻翻。
五、每周例行报告
(1)进度
进度 | 第一周 |
代码行数 | 0 |
博文字数 | 4290 |
知识点 |
构建之法
|
(2)饼状图
(3)博文字数