part1 读材料回答问题
(1)回想一下你曾经对计算机专业的畅想。当初你是如何做出选择计算机专业的决定的?你认为过去接触到的课程是否符合你对计算机专业的期待,为什么?你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗?
说实话,我从来不是一个有梦想的人,即使现在依旧不是。高中时对报考真的很迷茫,不知道自己想做什么,能做什么。当时选择报考计算机是因为高三寒假时,偶然间看了李开复博士的一本书,名字叫做世界因你而不同,当时真的是中二般地被激励到了…当时就觉得计算机真的是可以改变世界的东西,就觉得如果我学了计算机也能够改变世界。所以在选择的大学固定的条件下,即使高考分数多于计算机系蛮多的,但是它依旧是我的第一志愿。不知大家有没有过这种感受,突然间因为一件事,一个经历甚至只是一句话而选择了自己的人生,虽然有点中二,虽然有些冲动,但是即使现在那部书的所有情节我都不记得了,我依旧记得那句make a difference。
以上种种就是我做出选择的原因,它帮助我选择了人生,但是说实话也影响了我对计算机的认识。所以第二个问题的答案当然是:NO!!!我大学以前对计算机可以说是一无所知,我进入大学时对计算机程序员的印象就是很酷,可是我进入大学,所有的课程都不是那么"酷",都是理论知识,唯一的c语言上机也是编写简单算法程序,基本都是按部就班的学习,这也导致我大一对计算机的热情急速下降。到了大二才开始调整心态,踏实学习基础知识,开始自己接触编程。我可以很肯定地说计算机是我喜欢的领域。但是却不敢说擅长,我至今记得当初面试时说自己擅长写java被面试官问得哑口无言的情形(是有关线程池方面的)...了解,掌握,精通几个关键词走到哪一步,我们永远无法自己判断,只有深入核心,扎稳根基,不坐井观天,自以为是。
(2)考取研究生,对照前人们走过的路和描述未来发展,现在的你自我感觉你已经具备的专业知识、技能、能力有哪些?离成为一个合格的计算机学生,在专业知识、技能、能力上还差距哪些?
我对于机器学习方面的研究很感兴趣,考取研究生也是为了能够有一段充足的时间对这方面进行学习。在大学本科时期我对于学校规定的课程进行了相应的学习,如果需要用标准说明的话,每年都有拿奖学金,但不是最好的那一类。在技能及能力上我参与过java项目开发,也独立完成过android软件的开发,因为考研复试要求c语言也还可以。
但是因为本科阶段学习的计算机基础课程都是最基本普遍适用的知识,所以目前还要学习研究生阶段具体研究领域的知识,比如矩阵基础,统计基础等等。实际编程方面也需要进行更深层次的学习,前几天看了大公司面试题,真的连好多基础知识点都认识的不深刻。
(3)每天都是一个人生选择的十字路口,学术研究、工程项目、社会实践 (?) ,不同的选择有不同的努力方向。
虽然我毕业后打算进入企业进行项目开发,但是因为兴趣原因在研究生阶段也想发篇有价值的论文,否则总觉得还不如毕业直接工作呢…因此,在对编程进行深入学习的同时,也会进行相关方面的理论研究,虽然两头兼顾会有些难,但是目前是这样打算的。
(4)你对这门课的期待是什么?你打算平均每周拿出多少个小时用在这门课上?
首先希望能过……其次的话希望能够掌握一些进行大项目的方法及工作流程,加强与他人合作完成任务的能力。
因为不知道接下来的作业量,所以很难估计,现在打算大约匀出10-12小时的时间完成这门课程的要求
part2 构建之法读书笔记
今天翻看新到的构建之法这本书,因为时间关系只能从头到尾大致通读了一遍。首先给我的是一种对软件工程这门课程的全新思索。在大学本科,软件工程的课程所留给我的印象就是背好各个阶段的工作内容(可行性分析,需求分析等等),记忆包括瀑布模型在内的各种模型,画好UML图以及做很多测试用例,这样就可以学好这门课,可以拿高分。但是当我的目标不再是分数,而是要写出一个好项目,我所学的东西到底如何才能应用到实际中,这是我一直困惑的地方。
提出如下问题:
(1)基本只要说到项目开发,大家就一直在强调合作,在这本书中也提到了这一点。但是说实话,至今我也还是不太知道这种合作到底具体是在指什么,我没有过开发超大项目的经验,大学时开发项目只要大家分好工,完成属于自己的任务,做好接口对接,写好文档就可以基本达到预期,争论也基本主要发生在设计阶段。而这显然不应该是大家口中的“合作”,合作应该不止是沟通那么简单吧,希望在学完这门课的时候,我能真正懂得它的含义。
(2)按时完成项目是所有老板对员工的期望及要求,从数学角度我们可以知道人员的数量和进度之间的关系绝对不可能是单调增减,人员多了,任务分解个人时间会减少,但是同时需要的沟通也会变多,成本也会增加,而且每个人的能力也不同,那么在开始一个大项目的时候,到底是如何进行分配,以达到进度和成本的平衡呢?
(3)今天与朋友聊天偶然提到很多小型公司根本不具备聘用大量测试人员的能力,而且我认为大部分的小型项目也根本没有时间来进行完整的软件工程过程。书中所提到的核心部分:构建管理,源代码管理,软件设计,软件测试,项目管理。这些项目究竟涉及了哪些。那我是不是可以认为软件工程仅仅是为了大型项目使用的。
(4)对于书中敏捷编程提到的燃尽图,我从来没用过,我上网查了它的具体操作等等,对于燃尽图我有一点疑问,燃尽图需要每个人都忠实地记录自己的工作日志,story的数量也会影响燃尽图,还有燃尽图如果不能及时维护,都会导致很大问题,在网上也可以看出相当多的团队的燃尽图都是跳楼式的。图中的曲线是否真的能够代表剩余的工作量,难道只有有丰富工作经验的团队才适合使用燃尽图?
(5)我经常遇到一种情况,在设计软件之初,我自认为已经将一切想的很全面了,但是往往在编码的时候,在这个软件从抽象逐渐具体的过程中,尤其是后半段的时候,往往会不断有不错的idea浮现在脑海,甚至会完全推翻原先的想法,但是所有的软件都有时间要求,而我如果想实现它就会花费很多额外的时间,这个时候我到底要不要实现它呢?
part3 评论软件
评论一:java俄罗斯方块NEO
本人自制使用视频链接(经剪辑大约1分20秒)http://pan.baidu.com/s/1qYynNv2
使用评价:软件响应速度非常快,方块形状变换很流畅。方块到达最底端的时候会变换颜色,左侧有分数排行,操作简单,而且每一级方块掉落后都会变换颜色,是一款非常不错的小游戏。个人觉得如果增加背景音效和暂停选项会比较好。而且如果分数低的话会看不到自己位置,如果增加一个本机用户排名的选项会更好。
另附:
code地址:https://coding.net/u/Boxer_/p/homework/git/tree/master/final
项目组长博客地址:http://www.cnblogs.com/Boxer1994/p/6128666.html
评价二:食物链教学工具
自制的实际体验软件的视频地址:http://pan.baidu.com/s/1jHQAdJS
(因为此款软件强调使用简单,为客观的体现最初使用者的体会,所以所录视频为本人第一次使用时所录并且未加剪裁,可能会显得冗余)
这款软件是由去年“领跑衫“获得者黄兴师兄所在组完成的项目,这款软件完成度很高,界面也很美观,能完美的达到用户需求。除了软件本身的编码工作之外,软件的使用说明也十分简洁全面,使得初次使用时很简单。但是界面有些小,如果很多动物都加进去就会有些拥挤,建议增大界面或者减小动物图像的默认大小。
另附:
博客链接:http://www.cnblogs.com/huangxman/p/6127626.html#3574024
程序下载地址:http://pan.baidu.com/s/1kUTas0B
评价三:记账本
这是本校郑蕊师姐的团队所完成的项目。我已经下载使用了这款android软件。从用户角度来看,首先点击图标直接进入主页面,页面是收支明细,界面简洁明了。在设置中可以设置手势锁,设置后再次进入app会要求输入相应手势。提供了收支表弥补了明细无法分类查看的缺陷,作为一款记账软件,大体上可以满足用户需求。
同时我也查看了郑师姐和同组另一位师兄的博客文章,对他们整个项目过程有了一个浅显的认识,感觉到了整个软件逐步完善的过程以及团队成员所付出的努力。
在我使用这款软件的过程中,感觉软件中有些小缺点,也在此列出:
(1)没有用户登陆功能。
(2)使用sqlite数据库,只能本机使用,不能同步。
(3)第二次设置及取消手势时不需要重新确认以前的手势密码,右侧点击键没有相应的text文本显示。
(4)个人觉得报表模块中从支出切换到收入时,表应该清空会比较好。
Coding地址:https://git.coding.net/puchenglin/AccountApp.git
下载地址:http://download.csdn.net/detail/pu_cheng_lin/9526225
视频地址(这个是项目组的视频,非自制):http://v.youku.com/v_show/id_XMTU3NjQ1MTk4NA==.html
part4 采访师兄师姐
采访的是同样上过杨老师课的尹师兄,因为是同一个老师所以感觉他能更加真诚认真地回答我的问题,所以并没有采访其他不熟悉的往届生,以下是采访的问题及他的回答,和我所做的工作。
- 当时的项目有多少用户,给用户多少价值? 现在还有人用吗?
-
答:我们当时做的是在线考试系统的设计,给了我以前的大学老师做计算机基础考试测试,当时使用的用户是测试用户一个班级30个人。现在有没有人用不确定。
Tips 翻看了尹师兄的博客获得如下信息:
- 这个项目能否给我们团队继续开发,源代码/文档还有么?
学长给出的回答是不可以,因为课程结束后所有的文档及代码都已经删除了,所以无法再继续开发
- 项目开发有什么经验和教训
因为尹师兄在他们组担任的是组长的职务,所以所有的任务分配,人员的安排都由他来把控。他认为所有的安排必须授权明确,因为他们组曾经因为分配问题使得项目的进度大大拖延。而且他还说沟通是非常重要的,而且面对面的交流永远比其他途径更加有效率。
- 对学好软件工程有什么建议
答:软件工程就是编程的前期工作,做所有的事情都不能不管不顾埋头苦干,有计划的人往往更加有完成任务的能力,与其把自己陷入一团乱麻的境地,不如把时间花费在计划与调控上。软件工程比起理论,懂得它思想的精髓往往更为重要。
part5 表格
psp:
psp饼状图:
进度图:
博文数累计折线图