第一次阅读作业
这个作业属于哪个课程: | https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2713 |
这个作业要求在哪里: | https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2713 |
我在这个课程的目标是: | 深入了解软件工程开发流程,掌握专业知识与技能。 |
这个作业在哪个具体方面帮助我实现目标: | 提高思考能力,学习软件工程具体内容。 |
一.建立博客并介绍自己
我的博客地址:https://www.cnblogs.com/youthlll/
我是2017级软件工程2班的陈雨莲,我是一个活泼好动的人,自我感觉比较幽默。无聊的时候喜欢听听歌,刷刷视频,也喜欢一个人出去走一走。比较贪玩,所以在学习方面有点放纵自己,是一个很大的缺点。擅长的运动的话,就是乒乓球还可以,因为体力不太行。
二.阅读与思考
(以下内容参考和转载于 北航助教 陈彦吉的 博客 http://www.cnblogs.com/ChildishChange/p/7363123.html )
同学们在上这门课的时候已经大二下期了,你现在面临的困难与迷茫,前人也一定有过。请看看别人怎么学习的,有些是科班,有些是野路子;有些成功,也有失败。请读完下面所有博客 (读这些博客你不吃亏,你也不上当!它们都是血泪经验或教训铸成的文字!)
主题 |
索引号 |
阅读前提问 |
链接 |
科班出身 |
A |
把每天把要做的事情分成ABCD四类:A-紧迫且重要;B-重要不紧迫;C-紧迫不重要;D-不重要不紧迫。你如何保证你的效率? |
|
|
B |
你是否也觉得自己是科班,但没学懂计算机? |
|
|
C |
把每天胡思乱想的东西记在一个笔记本上,作为思维快照,并常常翻回去自省,看看过去和现在的变化。这样的习惯呢? |
|
|
注 |
以上三篇来自《IT小小鸟的故事》 |
|
|
D |
偏科生自学摸索的道路。实习经验对应届生重要吗? |
|
|
E |
速成的培训班和打基础的大学教育有区别么,你是否对大学的基础学科存在的必要性有疑问? |
|
非科班出身 |
F |
很多同学看不起大学老师按部就班地教课,他们心想,我看视频也能学会的,为何要来听课? |
|
|
G |
半路出家,认真学习,对自己狠心,不断在实践中进步 |
|
|
H |
文科生转编程与他对大学教育的批判 |
|
大佬的博客 |
I |
技术栈和大佬的爆栈之旅 |
|
|
J |
大佬在职场中的摸爬滚打 |
|
|
K |
大佬给出的职业规划建议 |
|
|
L |
热情、能力、选择 |
|
|
M |
大佬的成长史与如何进入微软亚研院,他的知乎 |
|
一流的大学 |
N |
第一流的本科教学课堂该是什么样? |
|
|
O |
美国研究生的一些计算机课程和你上过的专业课有什么不同? |
|
|
P |
你在大学中体验到了哪种师生关系?你希望在这门课中采用哪种师生关系? |
|
|
Q |
世界一流大学怎么教软件工程?这种方式是你喜欢的吗? |
|
补充阅读 |
R |
不要轻易在简历上写我热爱编程,我热爱学习。你对计算机的热情是怎样的? |
|
编程人生 |
S |
文章较长,可以暂时不看 |
|
|
T |
文章较长,可以暂时不看 |
阅读以上材料,并回答下面几个问题:
(1)回想一下你初入大学时对软件工程专业的畅想
- 当初你是如何做出选择软件工程专业的决定的? A:其实我是因为调剂而到这个专业的,但是也对这方面比较感兴趣。
- 你认为过去两年中接触到的课程是否符合你对软件工程专业的期待,为什么?A:比较符合吧,因为自己对这方面的认知就是学编程语言。
- 你觉得软件工程是你喜欢的领域吗,它是你擅长的领域吗?A:比较喜欢,但还不是很擅长。
- 将来你会选择从事软件开发相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因 A:会,想做游戏开发,成都,南京吧。
(2)即将大三的你,对照前人们走过的路和描述未来发展,现在的你
- 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?A:具备C语言,C#,数据结构,数据库原理及应用;几千行吧。
- 离成为一个合格的软件工程专业本科毕业生,在专业知识、技能、能力上还差距哪些?A:还有其他编程语言未学,综合能力差,现在就在学软件开发流程。
(3)大三是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
- 对照以上你阅读的前人们的经历,你的选择是什么?A:工作
- 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?A:优势就是提早积累工作经验;劣势是知识储备或学历没有那么高。
- 针对你的选择,你给自己的大三设定的规划安排是什么?A:努力学习专业知识,提高业务能力,增加英语知识储备量。 三.提有质量的问题
- 第3章 软件工程师的成长 中说“各个角色考虑问题的出发点是有区别的,不同意见的冲突在所难免”,提问:一个项目的需求分析不应该是提前做好?为什么是由团队里所有人发表意见,倘若大家的积极方面都不能释放出来,那么最终又该怎么解决。
- 第4章 两人合作 “除了技术方面的考虑之外,一个成熟的工程师要琢磨对方的话语和观察对方的肢体语言,了解他们所表示的潜台词,试着从对方角度看待问题” 提问:两个人合作,更重要的为什么不是坦诚相对,有事说事?在做项目之前,就应该把个人习惯交代清楚,而不是一切要我自己去猜去想,多浪费时间,如果在我无法理解对方的行为,提醒他的情况下,他不做任何回应,该如何解决?
- 第5章 团队和流程 “基于直觉形成的团队模式未必是最合适的”提问:根据什么来判断团队模式是不是最合适的?
- 第8章 需求分析 “有些需求在实现之前,并没有用户明确表达具体的需求,成功的团队可以从某些角度出发,挖掘出需求”提问:如果在做出某个没有被用户明确表达具体的需求的软件之后,发现并不受用户欢迎,该如何解决?是不是我们过度揣测用户的用意。
- 第12章 用户体验 “用户体验设计的一个重要的目的就是要降低用户的认知阻力,即用户对于软件界面的认知和实际结果的差异”提问:倘若这个目的与软件质量发生了冲突该如何选择?为了这一个目的要舍弃其他要求也可以?
四.了解和调查源程序版本管理工具
优点:更轻松的管理。传统的版本控制系统使用集中式的 repository,一些和 repository相关的管理就只能由管理员一个人进行。由于采用了分布式的模型,Mercurial 中就没有这样的困扰,每个用户管理自己的 repository,管理员只需协调同步这些repository。 更健壮的系统。分布式系统比集中式的单服务器系统更健壮,单服务器系统一旦服务器出现问题整个系统就不能运行了,分布式系统通常不会因为一两个节点而受到影响。 对网络的依赖性更低。由于同步可以放在任意时刻进行,Mercurial 甚至可以离线进行管理,只需在有网络连接时同步。
缺点:档案重命名的方式。跨平台时,处理非英文档名可能会有编码问题。拼写难。
2.Git
优点:适合分布式开发,强调个体。公共服务器压力和数据量都不会太大。速度快、灵活。任意两个开发者之间可以很容易的解决冲突。离线工作。
缺点:资料少。学习周期相对而言比较长。不符合常规思维。代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
3.Xcode
优点:为iOS和Mac开发而设计。代码自动补全。便捷的代码管理,自动生成类关系图、函数方法列表等。界面设计器。
缺点:版本更新后,以前的插件就会失效。