个人第1次作业:阅读与准备作业

阅读与准备作业

格式描述
这个作业属于哪个课程 课程链接
这个作业要求在哪里 要求链接
我在这个课程的目标是 1.学习并掌握软件工程的基础操作。2.学习如何通过博客园用Markdown发布出实用美观博客。3.学习并掌握简单的代码编程。4.与gis专业结合开发出简单的软件
这个作业在哪个具体方面帮助我实现目标 1.了解了如何使用Markdown发布博客。2.对自己的人生规划有了简单的认识

1.个人介绍

  • 博客地址
  • 我是来自地球科学与技术学院地理信息科学专业的一名学生。
    学习过c#等编程语言的简单编写,在大学期间学习了c语言,SQL语言,c#等简单计算机语言。
    擅长打乒乓球,在高中时开始简单了解了乒乓球的入门操作,在高中时曾经获得学校乒乓球三等奖,在大学也报过乒乓球俱乐部练习乒乓球。

2.阅读与思考

(1)回想一下你初入大学时对你所在专业的畅想

  • 当初你是如何做出选择你所在专业的决定的?
    刚开始是被学校调剂到这个专业来的,刚开始不知道这个专业是干啥的,一开始想过转专业,后面在了解学习过后,觉得地理信息科学也挺有意思的,所以就留在了专业。

  • 你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?
    符合我所在专业的期待,因为我们这个专业是多学科多分枝广范围专业,接触到的课程有测量学,遥感,gis等各种课程,这些课程都是学识性的基础课程,为以后工作或研究打下基础。

  • 你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?
    相对来说是我喜欢的领域,因为我比较喜欢计算机类的学习,这个专业有比较多的软件开发等计算机操作。
    现在来说不是我擅长的领域,但是我会去研究学习,实践等让它变成我擅长的领域。

  • 将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
    会从事与专业有关工作,城市在成都,岗位是gis数据工程。

(2)对照前人们走过的路和描述未来发展,现在的你

  • 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业。
    专业知识现在只是初步了解,很多专业知识现在还是流于浮表,还未深入研究。技能现在只有supermap,arcgis等地理信息软件的基础操作,还有C语言等简单代码编写。
    现在已经写过的代码量大概在500行左右。
    最复杂的作业是上学期的c#实验,需要编写一个学生信息管理系统的Windows程序,需要有登录账号密码,将数据库与程序连接起来,通过程序来修改数据库中的数据信息。

  • 离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?
    现在我所学的专业知识仍是流于浮表,还未深入学习其中的原理与经典的思想。
    在技能上仅是专业所用的地理信息软件还需要深入学习,各种编程软件也需要大量练习,以至于能够熟练运用。
    在能力上还需要学习与人组织和沟通的能力,创新和学习的能力。

(3)目前是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。

  • 对照以上你阅读的前人们的经历,你的选择是什么?
    我的选择是考研。通过考研进一步提升自己的价值,提升自己的专业知识与能力。

  • 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
    优势是读研以后可能更容易得到公司offer,就业来说相对比较容易,自己也能在专业上得到进一步提升,在学术上也会有更深的研究和精通。
    劣势是读研的三年时间里,自己的经验阅历可能没有直接就业的同学丰富。

  • 针对你的选择,你给自己的大三设定的规划安排是什么?
    在大三上学期提升自己的英语基础,了解专业报考的学校,大三下学期开始基础复习。

  • 你对于实现自己的梦想已经做了或者计划做什么样的准备?
    计划再巩固专业知识,提升自己的英语水平通过英语六级,深入学习有关地理信息的各类软件,如果以后往地理信息开发方向研究,则需要深入学习有关软件开发的知识和多多实践。

3.提出有质量的问题

  • ** 1.【第3章,3.1团队对个人的期望】在开会讨论之前,开始一个新工作之前,一个新项目之前,都要做好准备工作。
    我的问题:如何做好准备工作?在查阅资料后,有这些说法:1.确认软件项目范围。2.粗略计算工作量。3.进行人力资源配置,确定软件项目的人力需求。4.进行客户沟通。5.确定开发过程。我在上学期和同学一起合作做c#实验时,当时没有确认小程序的开发范围,导致做了之后发现不符合要求,就重新改了又改浪费很多时间。但是在查阅资料后还是不明白如何有效的进行人力资源配置。

  • 2.【第3章,3.5成长和代码的关系】软件工程师的工作就是写代码,相关专业的练习也是以阅读代码,写代码为主。
    我的问题:代码量和工程师的水平线性相关吗?在查阅资料后,有这些说法:代码量是工程师水平的必要条件,但不是充分条件。在足够代码量的基础上,工程师不断总结、提高、超越,才能逐步提高自己的水平。否则,如果不总结提高,100万行代码量,也可能只不过是100行代码重复1万次而已。我在编程中的代码量只有500行左右,代码量还远远不够,没有代码量的基础,我常常不能将编程的想法变成代码现实。我的困惑是多少代码量大概才算入门。

  • 3.【第4章,4.3代码规范设计】异常实在“异乎寻常”的情况下出现的,了解异常及处理异常的花销都是不可忽视的开销。
    我的问题:如何正确高效的使用异常?我查阅了资料,这些说法是每个public方法在执行实际的逻辑之前都应该验证所有必须的先决条件,当验证不通过时抛出合适的异常。一个catch块中的代码都应该至少部分地处理了所捕捉的异常。否则,就不要使用catch块。我在编程中大多数时间没有接触过异常,这是一个非常不好的习惯,所以之后我会正确谨慎的使用异常,我还有不懂的是异常的花销如何正确减少?

  • 4.【第13章,13.1功能测试】功能测试的范围由小到大,测试者也由内到外。
    我的问题:什么是功能测试?我在查阅资料后,了解到功能测试指的是,根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求,也叫黑盒测试或数据驱动测试,只需考虑需要测试的各个功能,不需要考虑整个软件的内部结构及代码。查阅后我明白了功能测试就像是一个软件完成后必须测试它是否满足测试者需求和用户需求。

  • 5.【第16章,16.1创新的迷思】在课上,许多同学也提出了不少宏达的创新想法,但是到了课程结束时,什么也没做成,只剩下一个空的构思。
    我的问题:为什么想法未变成实践?这段在我的体会中发现刚开始编程有许多想法,如何将程序做好,如何完善,但是往往在开始就卡壳了,在编程没有将想法编程逐步的构思,而且代码量又足以实现想法。我在网上查了下又发现有些程序人员在学会了语言后,却又没有了思想。所以我的困惑是如何正确调配编程构思与执行之间的关系?

4.了解和调查源程序版本管理工具

  • Git:是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。
    优点:
    1.分布式开发时,可以git clone克隆一个本地版本,然后在本地进行操作提交,本地可以完成一个完整的版本控制。在发布的时 候,使用git push来推送到远程即可。
    2.git分支的本质是一个指向提交快照的指针,速度快、灵活,分支之间可以任意切换。都可以在本地进行操作可以不同步到远程
    3.冲突解决,多人开发很容易就会出现冲突,可以先pull远程到本地,然后在本地合并一下分支,解决好冲突,在push到远程即 可。
    4.离线工作,如果git服务器出现问题,也可以在本地进行切换分支的操作,等联网后再提交、合并等操作。
    缺点:
    1.git没有严格的权限控制,一般是通过系统设置文件的读写权限来做权限控制。
    2.工作目录只能是整个目录,而svn可以单独checkout某个有权限的目录。
    3.git上手可能没有svn那边顺手,需要经过学习一下。

  • Trac:是一个为软件开发项目需要而集成了Wiki和问题跟踪管理系统的应用平台,是一个开源软件应用。
    优点:
    1.非常灵活,可以随心所欲控制可以和SVN集成。
    2.权限体系比较完备。
    3.时间表按顺序显示所有当前和过去的项目事件,使获取项目概述和跟踪进度变得非常容易。
    缺点:
    1.功能不是很强大。
    2.不能单独进行应用,需要有Python环境的支持。
    3.由于它的 核心功能很少,如果不安装插件就没法使用。
    4.由于它是外国产品而且中文化又没有完善,所以没有专业接触过的人使用起来会比较困难,同时它还不能显示中文名。

  • Bugzilla:是Mozilla公司提供的一款开源的免费Bug(错误或是缺陷)追踪系统,用来帮助你管理软件开发,建立完善的BUG跟踪体系。
    优点:
    1.定制功能十分强大,能满足更多用户差异化的需求。
    2.是一款免费软件,与其他软件相比使用时不用付费。
    3..具有强大的检索功能,强大的后端数据库支持, 丰富多样的配置设定。
    缺点:
    1.界面不是很精美完善。
    2.流程固定,不能根据不同的问题类型定义不同的工作流。
    3.也是外国产品而且中文化又没有完善,汉化后可能出现乱码。

  • BitBucket :是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户。
    优点:
    1.具有无限制的私有仓库个数,无限制的磁盘空间。
    2.支持https/ssh,支持API。
    3.具有灵活的权限控制,可以自定义域名。
    缺点:
    1.bitbucket已经支持中文了,不过仍然不完美。
    2.bitbucket是不开源的,并且系统不太稳定。

posted @ 2019-09-11 07:05  IE吃饭  阅读(199)  评论(4编辑  收藏  举报