写在前面:
作业课程:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/
- 了解软件工程
- 提高coding能力,规范代码格式
- 学会团队协作,在团队中发挥好自己的作用
- 不断总结、提升自己
- 督促治懒癌,学会与人交流沟通,独立思考
一.建立博客并介绍自己
博客链接:https://www.cnblogs.com/Sabrian-Liu/
介绍自己:
- 一只普通的大二狗,爱幻想,爱打嘴炮
- 喜欢睡觉和看动漫美剧的死肥宅,能不运动就不运动,晚上尤其丧
- 略懂 Python ( Spyder 真好玩) 和 Cpp ,最近在认真学算法,略看 Shell 和操作系统
- 准备考研 (绝不咕咕咕!
二.阅读与思考
(1)回想一下你初入大学时对软件工程专业的畅想
- 当初你是如何做出选择软件工程专业的决定的?
一方面是因为计算机的就业形势好,市场对计算机人才的需求很大,且供不应求。
另一方面是自己对此的兴趣,如果自己能亲手做出一个产品,会是多么有成就感。
- 你认为过去两年中接触到的课程是否符合你对软件工程专业的期待,为什么?
虽然与期待的还有差距,不过还是勉强符合。过去接触到的还是计算机基础课程,虽然也都很重要,但还未接触到软件工程的核心专业课。从这门课开始,才真正有了在上软件工程课程的感觉,也算是满足我的期待了。
- 你觉得软件工程是你喜欢的领域吗,它是你擅长的领域吗?
从目前来看,软件工程确实是我擅长的领域,也是我喜欢的领域。
- 将来你会选择从事软件开发相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
会的。想去深圳腾讯做一个算法工程师(还需好好努力的),想工作的地方离家更近。
(2)即将大三的你,对照前人们走过的路和描述未来发展,现在的你
- 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?
目前掌握的更多的还是学校教的专业知识。除开目前上过专业课,略懂 Python Django 、Python Scrapy 、Python Socket ,略懂 HTML 和 CSS,略懂 LaTeX ,略懂 Cpp 和 MATLAB , 一点 Ubuntu ,除课本以外的一些基本算法,目前还不具备独立开发的能力,码量不多。
- 离成为一个合格的软件工程专业本科毕业生,在专业知识、技能、能力上还差距哪些?
还欠缺很多。无论哪个方面,目前我会的也只是基础,也不具备开发的技能和思维方式。以算法举例,我的数学差,掌握的基本知识也不够,长路漫漫
(3)大三是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支
- 对照以上你阅读的前人们的经历,你的选择是什么?
考研
- 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
提前准备考研,会有更充裕的时间复习迎考。然而也会因此失去课余时间和一些比赛和项目,但如果能考上,一切都是值得的
- 针对你的选择,你给自己的大三设定的规划安排是什么?
大二准备数学,大三准备专业课让自己的 GitHub 能看并再过一遍数学,大四准备政治,刷英语。英语单词随时记。
三.提有质量的问题
- 关于结对编程:(见79页)既然程序各方面质量取决于一对程序员中水平较高的那一位,那结对编程的意义是什么,与直接让水平较高的那个人做完所有工作的区别是什么。即使不断的复审,有些错误水平不够可能也还是看不出来。
- 关于竞争性需求分析的框架:如何清楚了解我方的劣势(见160页)。在实现需求时,总有一些需求是我方无法实现,而竞争对手能实现的,我们要如何发现呢,发现后又要如何很好的规避呢。同时,又如何定位我方的优势,又如何综合优势和劣势,实现利益最大化。
- 关于 PM 做开发和测试之外的所有事情:(见185页)PM 作为一个软件团队的 leader ,如何给每个人分配工作,让每个人发挥最大的价值。
- 关于图形建模和分析方法:(见225页)书中,作者给我们介绍了多种给事物构建模型的方法。这些方法有各自的优缺点,也能表述出各自的特点。可是否有一个统一的方法和表达方式,使其更加形象。
- 关于用户体验设计的步骤和目标:(见261页)按照流程,若用户体验发生变化,如何快速发现,并按照客户的体验需求作出及时的调整呢。
四.了解和调查源程序版本管理工具
(1) Git
优点
- 比svn更快速的分支切换,因为分支都在本地。这使得git特别适合处理临时需求,或者小实验。
- 可以在星巴克写代码的时候随时提交,因为各版本快照(commit)都在本地。
- 是一个全世界最大的开源社区,上面可以看到各种优秀的各语言代码,去官网语言列表看看才知道有那么多语言。
缺点
- 因为是分布式的,每台机器上都 commit 的时候,有的时候忘记了push到远程服务器(github),那就不同步了。不过常常status一下看看状态,问题不大。
(2) Bitbucket
优点
- 对于小团队免费,这意味着最多5名成员的团队将获得无限数量的免费存储库。
- 一个集成的查询管理系统。
- 通过社交媒体和GitHub认证。
- 集成Jira工具。BitBucket和Jira在整个开发阶段都做了整合,通过集成的错误跟踪组件,JIRA自动更新有关检测到的问题的信息。
- 导入现有Git项目。
- 支持Git,CodePlex,Google Code,HG,SourceForge,SVN导入。
缺点
- 不开源
- 系统不稳定
(3)GitHub
优点
- 错误跟踪,此功能属于协作功能,可以通过在项目中检测到的软件错误记录来提高代码质量。
- 快速搜索,存储库提供方便的项目结构,允许有效的搜索和排序。此外,功能良好的SEO允许用户在公共存储库中找到任何代码字符串。
- 社区,截至2017年4月,GitHub的用户数量已经超过2000万。这个世界范围内极大的开发团队是共享经验和技能的重要来源。用户可以进行沟通,评论,编辑和跟踪新闻。
- 共享,项目源代码不仅可以使用Git进行复制,还可以作为归档下载。
- 协作开发,GitHub为团队管理提供了高效的功能。
- 兼容性,源代码位于GitHub的项目可以轻松地定制到任何云主机服务。
- 支持Git,SVN,HG,TFS导入。
缺点
- GitHub的服务不是完全免费的,如果想要享受GitHub提供的所有功能,需要付费。
- 大小限制:文件大小不能超过100Mb,存储库可以托管信息1Gb。
参考链接:http://tech.it168.com/a2017/1026/3176/000003176180.shtml