现代软件工程——第一周博客作业

时间:2021-06-09 21:54:01

(本博文为现代软件工程课程第一周博客作业)

介绍自己

大家好,这是我在MSRA现代软件工程的第一次博客作业,这也是我的第一个个人博客,以前也有段时间想过创一个博客来管理自己的一些信息和平时的一些资料,但可能还是因为自己比较懒吧,这事就一直耽搁了,现在趁这个机会可以好好管理自己的博客,有时候看着自己的积累不断增多也是一种幸福呀!

先简单介绍我自己,我是中科大物理学院的学生,同时修读了计算机双学位,虽说不是计算机科班出身,但也算是半个科班出身了吧。我对计算机的热爱开始于我在大一的时候,大学以前我对编程一无所知,进入大学以后我才知道原来学会编程了可以做那么多有趣的事,于是我开始疯狂的学习计算机的各种技术。听学长说python语言很好用,好,我去自学python,之后又去自学了爬虫技术,在豆瓣网上爬了几十万本书的信息和一些书评,又去学习了像MATLAB,Mathematics这样的科学界较常用的语言。就这样,大一就这样漫无目的的学习各种技术中结束了。

我大二时意识到这种学习方式可能不太行,没有系统的学习,学习再多的技术最后也只能算是个计算机爱好者。于是我选择了修读计算机双学位。修读双学位也是有利有弊的,名义上好像拿了两个学位证书,但牺牲的是在大学里的生活,你必须花两倍于别人的时间放在学习上。这会是很辛苦的,但坚持下来,成果将也会是双倍的。感觉说了太多关于学习的事了,哈哈,或许可以去开一个博文讨论“该不该将修读双学位”。

平时生活的话我比较喜欢看科幻类的书籍或者是电影,偶尔会去爬爬山看看风景之类的,喜欢比较休闲的生活方式。

现状、经验和计划

在你一生中身体最健康,精力最旺盛的时候,能在大学全职学习和研究,这是少有的机会。请说明一下,你是怎么选择了这个专业的?

就如我自我介绍中写的,我是物理专业的,高考毕业后选专业时选物理是因为物理是我整个高中的精神寄托,可以说是物理让我坚持了高中三年。虽然我很喜欢物理里的理论,但是实际的物理研究却是很乏味的,而且很多实验对我们的现实生活并没有很大的影响,我更希望我能做一些更加实际的东西,能对我们生活快速带来方便的东西,于是我来到了IT专业。

离成为一个合格的 IT专业毕业生,在专业知识、技能、能力上还差距哪些?请看这个技能调查表, 从表中抽取 5 - 7 项你认为对你特别重要的技能, 记下①你目前的水平 (用数字 0..9 表示水平, 5 表示能通过面试,9 表示世界一流); ②你想在课程结束后达到的水平 (数字 0..9 表示); ③你计划通过什么手段提高水平 (必须至少列出 5 项)。

  • 软件实现,目前我的水平应该只有3吧,因为我到现在也没有真正意义上写一个实用性的软件,更多的是写一些小的工具也只是自己找机会锻炼自己罢了。另外我还需要提高自己快速读懂别人代码的能力,因为现在是开源时代,越来越多的人将自己的代码放到网上,拿到一份陌生的代码快速看懂是很必要的。我希望能达到5,方法的话我希望能和同学们一起做出一个真正可以有用的软件。

  • 质量意识,一份好的代码不仅自己能读懂,要让别人快速读懂才行。以前写代码时虽然也有注意代码质量这一块,但还是做得不够好,只有3的水平吧,我希望能够达到5,方法的话都和同学合作,一起合作结对编程时才能将将整个软件模块梳理清楚,代码质量也会得到提高。

  • 单元测试,测试时重要的,但我以前的测试方法只是对一个模块做简单的几组测试,并不会对每个模块写特定的测试程序,这是我需要好好学习的,所以我认为我这方面只有2,我希望能够达到4以上吧,以后尽量会对自己的代码多做测试,增加自己代码的鲁棒性。

  • 工具/社区,我在这方面只有2吧,以前在网上我是自私的吧,只是从网络上汲取而不奉献,对社区的贡献几乎为零,在Github上也没有分享过自己的代码,可能也是自知自己的代码质量不高不好意思分享出来,Github只是成为我的代码管理工具。使用工具的话我对machine learning目前比较主流的框架像pytorch,caffe2,mxnet和tensorflow都有涉及,虽然都谈不上精通,但也都会使用了吧。我希望我能在这一方面达到5,具体做法我会多和社区的人交流,也为社区奉献自己的力量。

  • 职业技能,不论哪个行业,职业技能是必不可少的,对于IT行业,如何计划任务,如何按时完成任务,如何和他人一起合作这些都是必不可少的职业技能。我在这方面有3左右,我平时很喜欢给自己定计划,要求自己按照计划完成任务,虽然也有计划赶不上变化的时候,但我也会努力按时完成任务。我希望我这个方向能达到6,因为这不仅仅是技能方面的提高,更是我们自己做事的原则。

阅读一下博客,并务必写一些心得

我看完这几个博客对抄袭的那个博客最有感触,因为我在大学里当过C语言的助教,也改过同学的作业,也发现过抄袭的现象。当时改的作业是一份代码,有个同学用的方法很创新,但有个小bug,我还是给了他满分,但我又改到一个一样的方法,一样的bug时,我就很奇怪了,对比两个人作业时发现第二个人只是把所有的函数名改了一下而已,我当时真的苦笑不得,最后我把两个人的分数都给了一个很低的分数,我看来给别人抄袭的和抄袭同罪。抄袭,说的好听时叫参考,我们写作业时或多或少都会参考别人或者前人的一些资料,参考是看到别人的东西后自己加以思考觉得他是否有道理才决定要不要参考,但不加辨别的直接搬运是不对的。引用则是对他人的知识产权的认同和一种尊重,引用一定是经过认真思考过才引用的。

几年后,你可以做学术研究、做软件项目、做其他专业的工作,做公务员,出国深造,回家继承家族企业... ,不同的选择有不同的努力方向, 你今天是怎么为将来准备的?

就目前的道路来看我将来会走向偏研究的工作吧,优势的话我在MSRA能有更多优秀的师兄和同学们一起交流,能够有更加快速的提升,这一年要做的就是尽可能快的提升自己的实力吧,不论是硬实力还是软实力。

提有质量的问题

  • 第16章 IT行业的创新 P347

迷思之五:要成为领域的专家,才能创新

这一部分举了蒂姆·伯纳斯·李的例子,我查了一下蒂姆·伯纳斯·李的一些资料

1973年至1976年间,他就读于牛津大学王后学院,并获得一级荣誉物理学士学位。毕业后,伯纳斯-李在多塞特郡普尔的Plessey电信公司担任工程师。1978年,他加入多塞特郡芬当的D. G. Nash公司,替打印机编写了排版软件。

所以在我看来蒂姆·伯纳斯·李其实并不能算是真正的物理学家,而且他有充足的相关知识让他提出HTTP协议。另外我觉学术圈的专家们不认可他的工作是不是因为有一些研究方向冲突的点,就像前面提的电报与电话的例子一样?

  • 第16章 IT行业的创新 P370

创新与作坊

小作坊可能更有可能有创新的可能性,我思考是不是因为大公司早已经有自己的一些习惯,如果需要创新的话可能打破原来公司的一些习惯或与公司的理念违背,导致大公司所能做的只有在现有的方向继续发展,改变的话可能带来损失。所以现在大公司采取的策略是收购那些有创新性的小作坊。

之后看书有不懂的地方再提问题吧,平时看书没有提问题的习惯。。。