第一次阅读与准备作业
第一次阅读和准备作业
格式描述 | |
---|---|
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/homework/4518 |
我在这个课程的目标是 | .学会团队合作完成项目,了解软件开发的流程,学会利用软件工程原理来开发软件 |
这个作业在哪个具体方面帮助我实现目标 | .团队完成一个有意义的项目,提升代码能力,了解未来的工作内容 |
一.建立博客并介绍自己
1.博客:https://www.cnblogs.com/swpulc/
2.我来自2017级地理信息科学。我喜欢美剧,对美国流行文化十分感兴趣,虽然英语很菜,但依然不妨碍我对它的热爱。对大多数事情抱有热情,但都浅尝辄止。
二.阅读与思考
1.回想一下你初入大学时对所在专业的畅想
- 当初你是如何做出选择你所在专业的决定的?
当时看到名字带有信息两字便想着这个专业应该不会太过无趣,于是把第一志愿填到了地理信息科学,后来仔细想想可能CS或者EE才是更符合自己兴趣的专业。 - 你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?
些许符合,比如面向对象编程,数据结构,数据库原理等有关计算机方面的课程学起来较有乐趣,但有关地理方面专业课的乐趣还在探索之中。 - 你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?
谈不上喜欢也谈不上讨厌,目前开设的实际动手的课程还是太少,学到的知识也只是皮毛,至于是否擅长,我想只有等我有了足够的实践经验才能给出答案。 - 将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
会。毕竟学习了四年,如果有机会的话我的研究生也将会继续攻读这个专业但所选择的方向可能会更偏向于有关地理信息系统的开发。至于想去的城市,公司和岗位的话,我想如果一切都顺利进行的话,我应该会在北京攻读自己的硕士学位,努力提升自己,进入一家大厂,做一名工程师。
2.对照前人们走过的路和描述未来发展,现在的你
- 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业
在过去两年里学习了C,C#,数据结构,数据库原理和GIS相关的课程,大多都止步于书上的知识,实践能力还十分欠缺。目前写过的代码量大约在2000,最复杂的算是之前与现武汉大学计算机的高中同学做的一个小游戏写了一两个模块功能,是第一次将上课所学的指针,结构体,文件流操作运用到实践当中,虽然还是遇到了不少问题,但幸好都解决了。 - 离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?
尽管在校的课程都合格的通过了,但事实上对一门编程语言达到精通的水平,甚至是专业软件上的使用也仅限于书本上的实例与基本操作。离一个合格的本科生还差的远。
3.大三是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
- 对照以上你阅读的前人们的经历,你的选择是什么?
我的选择是考研,毕竟就本科而言所接触到的和所看到的都太狭隘,更不用谈知识和实践能力上与研究生阶段的差距了,这也是目前为什么考研的人年年上涨的原因。 - 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
优势的话,可能我所在课外学的东西相对较多,比如前端,python,以及用python写过一些与Arcgis相关的功能。劣势的话,自己还是比较懒,学东西都大多只限于皮毛没有坚持下去,比如前端也只限于页面的制作,python也仅限于学会了爬一点网上的数据。 - 针对你的选择,你给自己的大三设定的规划安排是什么?
精通一门编程语言,在空闲之余补补之前的数学和英语,跟着老师做一些和专业相关的项目,为研究生的科研打下基础。 - 你对于实现自己的梦想已经做了或者计划做什么样的准备?
每天都坚持完成一点点自己的目标。
三.提有质量的问题
1.在书中第二章第一节中提到了“独立性——单元测试的运行/通过/失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性”,其中‘人为构造数据’该如何去理解?是否可以理解为通过人为强行的让软件通过单元测试?
2.在书中第九章中提到了“PM”的概念,PM作为一个管理/领导者,PM具体应该包哪些那些素质和能力?,比如与开发者一样具有编码能力,或者对一个项目的可行性与工程量有理解等?
3.在书中第十二章提到了“UI”,在一个项目中,UI与后端开放固然是不同的,但在一个完整的软件里前端应该是与后端有数据交互,这类工作一般是由谁来完成?
4.在书中第十三章提到了“效能测试”,指的是软件在不同的压力下做效能测试,但测试的好坏结果是否有一个基准来去判断是否应该改进或者通过?
5.在书中第十四章提到了“软件测试”,通过了软件测试是否就可以认为这个程序是没有bug的?如果在用户体验中反馈出了bug,这个修复是由软件测试者负责还是由开发人员负责?
四.了解和调查源程序版本管理工具
上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些,列举至少三个或以上的版本管理软件各有什么优缺点? (提示:搜索一下Microsoft TFS、Git、Mercurial、GitHub、Bitbucket、Trac、Bugzilla、Rational,Apple XCode)
GitHub
优点:
- 1.完整的支持Markdown语言,而且支持Emoji表情
- 2.支持直接复制图片到页面,会自动上传图片(非常好的功能,知乎也支持)
- 3.比较好的支持Mobile。虽然github没有手机客户端,但是一般开发者,写好的blog都会通过微博进行分享,所以点击过来之后,就可以在手机浏览器里面访问。
- 4.使用github原生的功能,就可以进行类似评论的功能
- 5.支持@用户功能
- 6.支持标签,当然是你repository里面
- 7.强调个人,符合hacker更看重名誉/成就感的天性
- 8.功能设计简洁实用上手很快,可用性好,已有很多相当质量的各类项目和优秀开发者在上面。
缺点:- 1.GitHub 使用 git 分布式版本控制系统,而 git 最初是 Linus Torvalds 为帮助Linux开发而创造的,它针对的是 Linux 平台,git 和 Windows 从来不是最好的朋友,因为它一点也不像 Windows。GitHub 发布了GitHub for Windows,为 Windows 平台开发者提供了一个易于使用的 Git 图形客户端。 - 2.国内访问速度太慢,经常出现connect time-out
- 3.不能很好的解决GB2312/GBK,对中文不够友好
- 4.wiki功能太弱,直接导致文档(对于开源项目很重要)经常被分离到一个独立站
- 5.免费套餐不支持私有项目,无非解决企业内部的需求,github:fi价格过高(最便宜要$5,000/年)
- 6.基于git,学习曲线陡峭,企业大规模用git根本不现实。尤其国内大家都刚学会svn
- 7.github有时可能被墙,或者不稳定
Trac:
优点:非常灵活,可以随心所欲控制可以和SVN集成
缺点:功能不是很强大
Bitbucket:
优点:
-
1.提交大文件速度很快
-
2.对于小型团队免费,且不限容量,节约成本
缺点:
-
1.不开源;
-
2.系统不稳定