第一次作业
阅读和准备作业
这个作业属于哪个课程 | 课程的链接 |
---|---|
这个课程的要求在哪里 | 第一次个人作业:<阅读与准备> |
我在这个课程的目标是 | 学会创建自己的博客以及了解软件开发基础知识 |
这个作业在哪个具体方面帮助我实现目标 | 用Markdown编写自己的博客,在博客园中阅读前人们的心得体会 |
一.个人介绍
大海何等无垠?草原何等辽阔?沙漠何等宽广?渺小的我就像是大海里的一滴水,草原上的一棵草,沙漠中的一粒沙,但我有属于自己的精彩世界。
我是计科二班的,来自东坡故里四川眉山。我平时喜欢看一些稀奇古怪的小说,爱好听音乐和羽毛球,偶尔和三五朋友去旅游。我喜欢安静的环境,不喜欢热闹,所以我可以静得下心来学习。为人友善,但不是特别擅长于交际。
二.阅读与思考
1.回想一下你初入大学时对你所在专业的畅想
(1).当初你是如何做出选择你所在专业的决定的?
小时候喜欢打游戏,大一点了就很想知道这些东西的原理是什么,要怎样才可以创建一个游戏。之后又因为从电影里面看到黑客什么的,就决定选择计算机这个专业。当然还有一个就是程序员好找工作,待遇也不差。
(2).你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?
还是符合自己的期待吧。初次接触C语言让人很头疼,但是之后慢慢掌握又会有一种成就感。数据结构可以说是闻之色变了,但是每每学会一个知识都会让我非常欣喜。现在积累一些经验,我相信以后一定不会简单,但是一定会顺利。
(3).你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?
我所在的专业确实是我喜欢的领域,但是现在谈擅长还算不上吧,充其量只是比小白要厉害很多。计科会学硬件的知识,但是我并不是很喜欢硬件这方面。我相信随着时间的推移,代码量的增多,它一定会变成我擅长的领域。
(4).将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
会从事,现在各行各业都离不开计算机,因此很好找工作。我以后想去沿海一带的城市吧,毕竟那些地方有更多的机会,公司嘛还没想好,岗位就是后端工程师了。
2.对照前人们走过的路和描述未来发展,现在的你
(1).自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业。
除了已学的专业知识外,还学了Java。代码量也就千行吧。做过的最复杂的就属学生管理系统和俄罗斯方块了。因为当时初学C语言,链表这一块还不太会,学生管理系统就搞得特复杂,写了近千吧。然后俄罗斯方块也写得很吃力,在网上查阅各种东西才勉强完成。
(2).离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?
那可就多多了,很多专业知识都还没有开始学,在知识和能力方面依然差距巨大,代码量,熟练度依旧不够。
3.目前是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
(1).对照以上你阅读的前人们的经历,你的选择是什么?
我选择读研。大学时间多,可以再喜欢的行业继续深造。
(2).在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
优势:学习的东西更深,更精,会接触到很多志同道合的人,这一路上并不孤单。
劣势:就是少工作几年罢了,但我相信,深造完之后一定会有一个更高的起点,赶上他们并不困难。
(3).针对你的选择,你给自己的大三设定的规划安排是什么?
继续学习专业知识,参加比赛,了解社会各方面的信息,准备招聘。
(4).你对于实现自己的梦想已经做了或者计划做什么样的准备?
了解了很多想了解的,也学习了很多。我已经在实现梦想的道路上了。
三.提出问题
迷思之一
来自P347 我看到了这样一句话:要成为领域的专家,才能创新。我感觉这句话并不能引起我的赞同。根据相关数据表明,70%的创新者,他们最成功的创新是在拿手领域之外发现的,比如说阿里巴巴。为什么领域的专家有时候没有领域外的创新者那么有创意?
迷思之二
来自第六章 什么是 敏捷开发?
我查阅资料,发现它是一种以人为核心、迭代、循序渐进的开发方法。什么是迭代? 为什么说是以人为核心? 敏捷开发包括了哪些内容?
迷思之三
本书讲的东西有点杂,有点多,但是又很有目的性。可是,这些东西对于现阶段的我们有什么用呢?就只是读一下故事吗?
迷思之四
PM这个东西现在有,但是以后会不会由AI来代替他的工作?是不是AI会做得更好?
迷思之五
P391 创新阶段
并不是所有的团队都会到达这一阶段,但是我们如何保证我们的团队日后会到达这一阶段?
四.了解和调查源程序版本管理工具
GitHub
优点:
1.GitHub是一个非常万能的工具。对于任何大小的项目,他都是理想的工具;他也是伟大的web工作流工具。首先,他可以作为一个版本控制系统和协作工具,用它来发布工作。
2.利用GitHub,你可以将项目存档,与其他人分享交流,并让其他开发者帮助你一起完成这个项目。优点在于,他支持多人共同完成一个项目,因此你们可以在同一页面对话交流。
3.创建自己的项目,并备份,代码不需要保存在本地或者服务器,GitHub做得非常理想。
4.Git最好的特性之一是能够跟踪错误,这让使用Github变得更加简单。Bugs可以公开,你可以通过Github评论,提交错误。
5.在GitHub页面,你可以直接开始,而不需要设置主机或者DNS。
缺点:
1.首先的挑战就是摆正心态——需要不断实践和时间。
2.他可能不是捕捉创意过程和记录创意点子的最佳工具。对于这种特殊功能模拟可以选择LayerVault 或其他相似工具。之前,我们已经强调过Github非常适用代码跟踪,但是却不是最好的设计跟踪工具。将图片内容转化为代码,或者将设计用于产品设置,看起来依旧不是那样顺利。
3.这是由设计者决定的,然而,一些人发现 GUI 有点混乱,选择CLI代替。一些开发人员学习主要使用Git命令,这样可以解释为什么他们不太喜欢GUI的原因了。稍加练习,命令的学习是不太困难的。然而,你喜欢天天写命令吗?特别是跟踪项目历史或解决冲突的时候。所以就有了另外一群喜欢GUI的人们。将提交、修改、移动文件等操作可视化,会有一个更好的体验。而这些,就如之前提到的,需要时间来适应。
Microsoft TFS
优点:
1.在用户习惯上,TFS秉承了微软所有产品的特新,开发人员非常容易上手。软件使用过程中,用户会发现与日常导入操作系统、开发工具(VS),Office软件等有很多共同的体验。
2.可以通过TFS的源代码,查询到代码变更的依据(需求、任务、Bug等)。
反过来,可以通过项目管理的数据(需求、任务、Bug等),查询到相应代码的变动。例如,你可以查询到修复Bug所修改的代码行数。
3.可以通过TFS将代码保持在服务器上,但是不签入到代码库中,实现将你的变更保存在服务器上一个临时的位置。这样,既备份了自己的代码,有不会影响其他团队成员的代码。
缺点:
1.安装TFS非常痛苦。
2.不开源,操作复杂,学习成本高。
3.团队开发大型项目,能够在权限上做很好的控制,而且可以做分授权。在实施全生命周期的管理上,很难全部落实下来。一旦项目的资料越来越多的时候,大家就逐渐失去了探索和发现的耐心了。
Git
优点:
1.适合分布式开发,强调个体。
2.公共服务器压力和数据量都不会太大。
3.速度快、灵活。
4.任意两个开发者之间可以很容易的解决冲突。
5.离线工作
缺点:
1.资料少(起码中文资料很少)。
2.学习周期相对而言比较长。
3.不符合常规思维。
4.代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
5.GIT服务器是基于linux系统的免费的分布式版本控制工具,但是不支持中文,需要使用命令行操作,图形化支持很差。