作业属于“软件工程基础”[个人第一次作业] | (https://edu.cnblogs.com/campus/xnsy/Autumn2019SoftwareEngineeringFoundation/homework/4517) |
---|---|
[作业要求] | (https://www.cnblogs.com/harry240/p/11469058.html) |
课程目标 | 提升自己对软件行业职业的认知,拓宽自己的视野,明确自己未来的发展方向。 |
这个作业在哪个具体方面帮助我实现目标 | 通过教材,课堂,课后的作业训练来帮助我认识软件行业。 |
参考文献 | https://blog.csdn.net/yxk_nuli/article/details/82192295 |
参考文献 | https://blog.csdn.net/weixin_34049032/article/details/93358560 |
参考文献 | https://github.com/ |
一、介绍一下自己
我是西南石油大学计算机科学与技术专业2018级的学生胡潇瀚,爱好看书,跑步,篮球。我对于爱好的东西可以保持较长时间的热情。在课余时间我常常去图书馆阅读,或者去操场上锻炼身体,参加一些小范围的体育竞赛。因为兴趣所在,我加入了学校的长跑小团队,在学习之余,与一群志同道合的长跑爱好者一起交流长跑经验。目前经历过的短短几次《软件工程基础》课程让我认识到了编程与开发出可用软件之间的距离。编程只是一部分,编程之前的测试分析,编程之后的测试,维护也是举足轻重的。我希望在今后的学习中拓宽视野,增加自己对软件行业的认知。
二、阅读与思考
1.问:当初你是如何做出选择你所在专业的决定的?
高考填报志愿的时候是很迷茫的,不知道自己喜欢什么,想学什么,但介于以前对电脑有过一点点兴趣,加之计算机正处热潮,就选择了这个专业。
2 问:你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?
大体上符合我的期待,但目前的大学学习方式不是很符合我的预期。大学的课堂是开放的,个性化的,我有一些不适应这种自主学习的方式。我发现现在仅仅学习课本上的知识是不够的,且不足以胜任软件开发工作。
3 问:你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?
就目前我接触到的来说还是没有厌恶感,愿意努力下去的。再者,我觉得谈不上擅长,只能说不抗拒,但我会尽量把这种“无感”变成喜欢,从而上升到擅长。
4. 问:将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因。
我会继续学习知识,最好可以从事与目前专业相关的工作。我想去上海或者杭州,上海作为我国的核心城市之一,而杭州有着阿里巴巴等公司的存在。目前没有具体的目标公司,但bat,华为等等公司肯定是梦寐以求的。岗位的话,目前还没有一个确定的目标,我正在尝试各种不同的方向,在这些方向中找到最中意的方向发展。
5 问:自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业。
目前会基本的c语言,对前端有一定的了解。写的代码不算多,估计有两千行吧。最复杂的项目其实也很小就是之前写过的贪吃蛇。。。。(惭愧惭愧)
6 问:离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?
我认为一个合格的本科生应该可以独当一面了,不仅仅在谋生手段上还是日常生活,为人处世都应趋于成熟。在专业知识上,我会的东西还远远不够,熟练的技术太少,积累的经验不够,没有过开发项目的经历。这些我会在这一年里努力弥补,学习。
7 问:对照以上你阅读的前人们的经历,你的选择是什么?
我的选择是考验或者出国。读了前辈的文章大多都能总结出一个道理:持续不断的学习,对一个小方向的精通。我想考研或者出国都是对某一领域的深入。
8 问:在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
我想我的优势就是在明确方向后可以快速静心吧。劣势应该是我的沟通协作能力不是很好。
9 问:针对你的选择,你给自己的大三设定的规划安排是什么?
大三我会朝着我擅长,确定的方向努力学习,同时尽可能参加公司的实习,了解行业现状。
10 问:你对于实现自己的梦想已经做了或者计划做什么样的准备?
目前阶段我会努力增加自己的知识量,为大三做准备。在注重专业知识学习时也兼并英语学习。
三、提出问题
Q1:《构建之法》第四章,结对编程。
我看了结对编程这节内容之后我在思考结对编程的“性价比”。在编程过程中因为有另外一人的审查是不是会影响编程人的效率,总想着减少错误,而忽略了“敏捷流程”一说。团队编程似乎比其更有意义。
Q2:看了《构建之法》这本书我在想,当一个软件行业人员老了之后怎样转型?
“程序员”是碗青春饭,这是大家公认的问题,这本书提到了软件工程师的成长,让我不禁思考软件工程师走下坡时该怎么办?难道都转型管理岗吗?或者像本书作者一样都置身于教育行业吗?
Q3:《构建之法》第十二章,用户体验。
用户有太多太多,文化程度层次不齐,设计软件是众口难调的。我们基本不可能满足所有用户的要求,那么我们应该如何做取舍呢?
Q4:《构建之法》3.3.1职业发展——考级之路。
书中提到了一些我国的计算机等级考试。大家都知道这些证书对于软件行业者来说大多几乎没有什么含金量,那么为何不改进这些考试,让其更加权威?这些职业能力考试就想英语四六级一样,如果真的有意义了是可以督促大家的学习积极性的啊。
Q5:《构建之法》第六章,任务分配
由于每个人的能力不一,做事的效率也参差不齐,如何去调整任务分配,将效率最大化呢?
四、了解和调查源程序版本管理工具
Microsoft TFS:
优点:
任务版上能将需求、项目进度一览无余,同时可以与 VS 无缝接合
缺点:
个人使用TFS成本较高
TFS通过复杂的看似功能强大配置管理,将联机看做是整个项目周期的常态,这在实际使用中造成极大的不便。
整个系统是用 asp 实现的,用浏览器访问时相当慢
GitHub:
优点:
基于web,所以使用浏览器访问方便
同时又是全球著名的“同性交友网站”,开源的程序可以让更多人看到,同时自己也可以借鉴他人的思维,相互学习
github的公开项目是免费的,对我们这些经济能力不高的学生友好
缺点:
学习,熟练操作的周期较长
因为是开源的,所以保密性差,有得必有失
Git:
优点:
git是一种开源的分布式的vcs(version control system)版本控制系统。分布式的版本管理,对比集中式的版本管理系统来说不会出现中心服务器死机就影响工作,而是可以先存储在本地,等服务器修改好还可以接着进行工作,并且git的社区灵活,拥有丰富的资料来进行学习查阅,并且git是开源的,它强调个体,并且对于公共服务器压力不会太大,大小项目均可管理,拥有良好的分支机制,git的分支只要不提交合并,对其他人没有任何影响,并且git是统一管理元数据,存放在称为.git的文件目录里面。
缺点:
git的版本之间的兼容性不好,可能在上个版本的项目内容放到另一个git版本会出错
学习的周期较长
end.......