第一次作业:reading and prepare
这个作业属于哪个课程 | 课程的链接 |
---|---|
这个作业要求在哪里 | 作业要求的链接 |
我在这个课程的目标是 | 理解软件开发流程,更好的开发自己的软件 |
这个作业在哪个具体方面帮助我实现目标 | 对“工程”有了更直观的感受 |
一、自我介绍
- 目前是一名在校大学生,日常的工作就是学习
- 热爱各种新鲜的事物,也热爱历史人文
给我时间和一个目标,我便能慢慢坚持下去,努力去做到它,虽然不一定能成功,但我可以静下心去完成某一件事情,这是我最大的优点
二、阅读与思考
### 当初你是如何做出选择你所在专业的决定的? 朴素的真理,为了钱,同时这也是我想在中国这个商业市场上,少有的可以多依靠自己去吃饭的行业。同时,它本身也是一门更容易让大众去接触去学习的一门学科 ### 你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么? 之前看的博文中,很多大佬都强调了实践和自学;我不知道别人是怎么样,但我从上大学之前,就已经被教导过大学老师不再会像初高中那样去每一个知识点都去指点我们,他们仅仅只是引路人,一切的一切都最终要看自己的付出。 ### 你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗? 我想任何事情或者工作都是复杂的都有自己的乐趣所在,只看自己能否发现它,至少在我选择这门专业之前的时候,只是一心想要多赚点钱,但当我真正开始学习到它的时候,也会发现它的美好。对外而言,我很喜欢这种创建属于自己东西的感觉。至于擅长的话,我更相信后天的努力以及学海无涯,就目前而言实在谈不上擅长某一领域。 ### 将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因 是的,我现在开始对自己的专业越来越有兴趣,正如那位想去搞数学的大牛,他们最后随着对自己专业的了解而爱上了它,他们会来搞it。要说最想去的城市那便是上海,目前想当一名服务器开发人员去腾讯上班。 ### 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业。 目前我自认为对我所学习的知识都只是入了个门,毕竟我没有太多时间去实践自己的知识,这是一门要在实践中才能学好一门知识的学科,不过我依旧了解到了很多东西--->MySQl,c++/c,python,git。这些工具或者知识我有的了解较多,有的学了却很少用到而逐渐忘记。至于代码量我并不清楚,但我知道学东西一定要多敲,尽管可能会比其他人慢上一些。我目前做过的最复杂的项目便是一个飞机大战游戏了,是用python写的,尽管还有许多应该改善的地方,中间对模块化的划分以及逻辑的欠缺都是我应该加强的。 ### 离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些? 对现有知识的加强与深化,以及都操作系统和前端、网络的了解,以及像有的大牛所说的去打好自己的底子,以便让自己工作的时候可以更快的学习到东西 ### 对照以上你阅读的前人们的经历,你的选择是什么? 在考研和工作之间选择一个吧,工作也许可以更快的让人在实践中成长起来,但是却不如当一个研究生一样可以有跟多时间学到更多理论的东西;当一个研究生却不如工作更来的有书本之外的收获。虽然我的直观感受,读过更多的书,对人的长远影响更大,也更容易成功一些。所以,实在让我选择一个的话,我应该会选择考研。 ### 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势? 1. 可以学到更多的理论知识 2. 可以认识更多的优秀的同龄人 3. 读的书越多对世界的价值观就会有更好的形成 4. 更容易找到工作针对你的选择,你给自己的大三设定的规划安排是什么?
多读书,多去网上找自己的学习资料,多去看别人是任何做的,努力踏实的准备。
你对于实现自己的梦想已经做了或者计划做什么样的准备?
暂时不太清楚,我多习惯一个一个小目标的去完成,比如锻炼身体,规律生活,才有更多精力去学习知识。
目前的计划是做一个网站再去学习服务器的开发。
三、提有质量的问题
p16---Bug的看法
书中并未直接给出答案而是说了两种bug:1.不满足顾客需求的;2.程序本身的不稳定
一般是指在电脑系统或程序中,隐藏着的一些未被发现的缺陷或问题,简称程序漏洞。另外bug还有一种引申意义,用来形容某事物厉害的超乎想象。--->百度百科
在我看来bug应该分成几个成次:
- 是否满足用户需求,方向不能错,这是最主要的
- 是否修改软件中发现的问题,使得软件主够好
- 是否让顾客认为软件满足需求
p124---敏捷开发
什么时候使用敏捷开发?
对于一个团队什么时候使用敏捷开发,就书上所言,团队成员实力要过得去,还得有一个合格的Scrum Master,这些条件满足之后,对各种方法的极致应用与搭配创造了敏捷开发,它应该使用在中小型团队的接单上面,大量承办项目进行敏捷开发,将敏捷开发的弊端降到最低。
p133---对事情的意见
对此事负责任的角色要自己拿主意
也许与他人讨论并不能很快说服对方,但我认为开发者还是应该听听别人的看法,也许不会才纳,但说不定去会在我们开发的时候创造一点灵光。
p169---目标、估计和决心
在开始估计之前,我们要先分清楚几个概念:目标、估计和决心,如果我们混淆了目标、估计和决心,那就会犯错误。
根据后文的观点,即使在一开始我们并已经有了一定的准备去估计,但依旧有可能计划赶不上变化,就如同不可能把一个软件的方方面面都考虑到一样,不仅可能付出的时间代价已经足够影响后续的开发了,那么弄清楚这些概念,我并不觉得对于软件开发的时间估计有重大意义,顶多让我们对前路有着更直观的个人想法。
P347---要成为领域的专家,才能创新?
历史上的重大发现,比如万有引力,电磁理论,它们大多数都是在不经意间发现的,继而改变了世界,专家只是提供了足够的知识给你,但发现问题继而创新,却是难点,毕竟无论是万有引力现象还是电磁现象被发现的时间远比它们被理论化的时间久的多,但这并不代表着领域外的人不能有贡献和创新,思维的不同,更能激发创新的火花,只是它们往往难被所谓的专业人士重视。
四、了解和调查源程序版本管理工具
- Git liunx之父一星期研发出来了他的第一个版本,也是我目前使用的分布式管理软件,后来还开发了网站版的github,可以直接在电脑上进行版本控制,十分便捷,还可以将自己的代码发布到github上,也可以从上面pull或者clone他人优秀的项目,与大牛一起开发项目。缺点的话就是只有付费才能将项目设置为private项目。
- Rational RUP的优点 1. RUP是建立在非常优秀的软件工程原则基础上的,例如迭代,需求驱动,基于结构化的过程开发。 2. RUP提供了几个方法,例如每一次迭代产生一个工作原型,在每一个阶段的结束决定项目是否继续,这些方法提供了对开发过程的非常直观的管理。 3. rational公司已经并将继续对RUP进行开发,使这个基于html的软件工程能够被裁减以适合你的组织的实际需要。 RUP的缺点 1. RUP仅仅包含了开发过程。它没有完全覆盖软件过程,从图1能够明显看出,它丢失了维护和技术支持这两个重要的阶段。 2. RUP不支持组织内的多项目开发,导致组织内的大范围的重用无法实现。 3. RUP缺少开发商的支持。你能自动完成软件过程的每一个方面?rational提供了所有的工具供你选择,例如是否有rational help desk或者rational persistence modeling 4. RUP在度量管理,重用管理,人员管理和测试上有缺陷。
- Bugzilla 优点: 就功能来说,BugZilla的定制功能很强,能满足更多用户差异化的需求; Mantis本身提供了十几国的语言可以供用户直接选择,很本地化; 不需要自己部署或者配置服务器。 缺点: BugZilla的界面几乎可以说惨不忍睹;