阅读与准备工作
格式描述:
这个作业属于哪个课程 | 课程链接 |
这个作业的要求在哪里 | 作业要求 |
我的课程目标是:
了解软件开发流程,清晰自己的思路,在以后工作中能够少走弯路。
具体实现:
结合书中的知识通过与同学组队共同完成老师和课程布置的作业,在做中学,学中做,真正把书上的东西变成自己的。
作业正文
一、个人的自我介绍
我个人认为自己比较懒,不但不喜欢运动,而且爱好美食,但唯独爱好乒乓球,超级喜欢猫咪。在学习方面学习能力较差,导致我的基础比别人要差很多,这么多大牛曾让我压力山大,
二、阅读与思考
1. 回想一下你初入大学时对你所在专业的畅想
- 当初你是如何做出选择你所在专业的决定的?
你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?当初在填写志愿时是真的不知道要填写什么才好。家人特别是我大姐推荐我选择计算机这个行业,其实当初我是拒绝的,我脑子不好使,觉得学起来可能会很吃力,一度想要报考农业大学的。。但在家人的坚持下,我还是报考了软件工程这个专业。
你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?我对这个专业的最大的期待就是:我能够了解一些软件应用、网站之类,在它们的背后是怎么样形成运行的。学习了两年后,对这些也有了一些了解,在完成老师布置的作业的基础上,我也和和同学组队写了一些纯属娱乐的小程序和网站,但我的技术太菜,总是拖队伍后腿,我仍要继续学习,仍有很长的路要走。
将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因这个专业不是我最喜欢的,更不是我擅长的领域。但是有舍才有得,为了以后能够得到自己喜欢的东西,现在必须要牺牲一些东西,毕竟人生不是一直都是如意的。
将来会选择与这个行业相关的行业,毕竟其他领域我也没有接触过,总不能回家种地吧,哈哈。工作的话我还是喜欢在成都,离家近,一切的一切都是为了让家人过更好的生活。
2. 对照前人们走过的路和描述未来发展,现在的你
- 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业。
离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?我的基础较差,努力学习也是基本掌握了一点c语言,c#,Java基础;代码量自我感觉没有多少,最复杂的项目可能就是今年暑假的网站项目了吧,以前没有接触过,前后端的知识太少,项目做起来很是吃力。
这个差的有点多,我过去的学习都是只停留在表面,没有深入,还有很多东西要学,操作系统和算法对我来说都是极其晦涩难懂。
3. 目前是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
- 对照以上你阅读的前人们的经历,你的选择是什么?
在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?我会选择就业,想在岗位上针对性地磨炼技术。
针对你的选择,你给自己的大三设定的规划安排是什么?感觉没啥优势,他们一个个的都跟啥一样,努力学习才只是勉强追上他们的脚步,还是学习能力太差了。
你对于实现自己的梦想已经做了或者计划做什么样的准备?在学校努力学习知识;在社会上找份好工作;让家人过得更好。
高中努力学习考取一个好的大学,学习专业知识为以后找工作做铺垫。
三、提出有质量的问题
1. 在书中的第三章提到,软件开发不光指团队的流程,还包括个人的开发流程,在团队中每个人都有自己的独立的开发流程。可见团队对个人的期望很高,那么我们要怎么去锻炼自己能力和锻炼那些方面的能力,才能为我的团队带来一个更高的效益呢?
2. 在第六章讲到了敏捷开发,敏捷开发对项目质量有保证、投资回报率高、而且具有较高的开发速度等诸多优点,但据网上的很多消息:敏捷开发在中国的市场很难发展(敏捷开发为什么在中国难落地——胖大蛮),那么中国是不是真的需要发展敏捷开发呢 ?在中国现有情形下又该怎么发展呢?
3. 在8章中提到:软件开发的过程,就是满足“用户最需要的东西”的过程。假如在双方达成协议之后,用户的需求发生了变化,而恰巧这时你的竞争对手掌握了满足用户需求的相关技术,也就占有了优势。在这种情况下,我们又该怎样去弥补差距,在市场中站稳脚呢?
4. 代码的规范性既然那么重要,为什么在学习语言基础的时候没有强调这一点呢?代码的规范性是不是每一个公司都不一样,是不是需要在工作岗位上才去学习专门的规范?
5. 书上16章讲到了创新,一个团队的产品和多个竞争产品竞争,在竞争环境中谁能创新便能取得胜利。但从零开始自主创新的路上有无数道坎儿,不合时宜的创新,也不能解决问题,怎么样抓住方向,创新应该怎么走。
四、了解和调查源程序版本管理工具
目前比较流行的源程序版本管理软件和项目管理软件:Git、GitHub、Microsoft TFS、Bitbucket、Mercurial、Trac、Bugzilla、Rational,Apple XCode
1、github
优点:
1.速度快,比较灵活
2.离线工作,管理代码成本低,不需要依赖服务器
3.良好的分支机制,可以让主干代码保持干净
4.Git对程序源代码进行差异化的版本管理,代码库占极少的空间。易于代码的分支化管理
缺点:
1.代码保密性差
2.学习周期相对而言比较长
2、svn
优点:
1.采用集中式,易于管理,保证安全性
2.管理方便,逻辑明确,理念符合常规思维
3.操作简单,使用没有难度,美工人员,产品人员,测试人员,实施人员都可轻松上手。使用界面统一,功能完善,操作方便
缺点:
1.不适合开源开发
2.服务器压力太大,数据库容量暴增
3.必须连接在服务器上,否则基本不能工作、提交、对比、还原等
3、Trac
优点:
1.Trac做一个SCM配置管理平台,意味着它有良好的扩充性
2.非常灵活,可以随心所欲的定制,可以和TortoiseSVN集成。
缺点:
1.不支持多项目,需求和缺陷没有分离
2.核心功能很少,不安装插件基本上没法用
3.用 wiki 来替代 Word 等工具编写文档对于产品策划来说门槛太高了