《构建之法》第一次做业

这个做业属于哪一个课程 课程连接
这个做业要求在哪里 做业要求的连接
我在这个课程的目标是 学习系统分析与设计的能力,包括开发模型、代码规范等
这个做业在哪一个具体方面帮助我实现目标 软件工程专业能力提高
我本身的博客 夏小树的博客园

1、我的的自我介绍

一个爱刷B站和知乎的人,体育爱好羽毛球,不怎么看流行小说(除了《三体》和《龙族》),对日漫还没入坑但元旦想去日本旅个游。仰慕各类大佬,目前在乐程团队“划水”。html

2、阅读与思考

1.回想一下你初入大学时你对所在专业的畅想,
  • 当初你是如何作出选择你所在专业的决定的?
    其实我原本是经管院的经济学专业,可是做为一名理工直男看到那一堆要背的东西就头大,转个专业的强烈想法打败了惧怕秃头和找不到女友的恐惧,如今感受遇到一群强者仍是很开心的。另外,当时没有什么特别的畅想,由于对这个专业不是很了解,只知道经管院总喜欢找计科院作网站,作APP。git

  • 你认为过去一(两)年中接触到的课程是否符合你对你本身所在专业的期待,为何?
    我是转专业的,C语言自学的,这个入门级的基础就不说了。后来的数学课以及专业课数据结构与算法、离散数学、程序设计范式等课程也使我受益不浅,打扎实了基础。因此整体来讲过去这一年半接触的课程仍是很符合个人期待的。github

  • 你以为你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?
    虽然相对软件工程专业,我以为我更喜欢大数据,不过这也不影响我到底将来往哪一个方向走。我以为本科期间专业之间区分度还不是太大,都是在打基础,无论走哪一个方向,都是可让咱们走的更远。算法

  • 未来你会选择从事和你专业相关的工做吗?是的话给出你想去的城市、公司和岗位,否的话给出缘由
    会的,不过应该不会是去作网站、APP了,可能偏向于大数据、通讯等(对这两个方向有点好奇)。
    想去的城市包括杭州(有个故人在那里)、成都(喜欢这个城市)或者深圳(据说来了就是深圳人)等,想去的公司那必然是华为了,岗位应该是算法岗。数据库

2.对照前人们走过的路和描述将来发展,如今的你
  • 自我感受你已经具有的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你作的最复杂的项目/做业。
    已经具有的专业知识、技能、能力大多仍是一些基础能力,好比C\C++和Python基础,数学,数据结构算法和一些机器学习的算法。
    已经写过的代码量不是特别清楚,由于不怎么作工程项目,之前刷的算法题累计却是有一点代码量。前先后后大概在3~4万吧。
    作过最复杂的项目是一个关于石油的机器学习算法研究。安全

  • 离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?
    计算机网络,操做系统,数据库等专业知识目前还没掌握。同时对一些我感兴趣的领域如大数据、通讯等知识还不够了解。服务器

3.目前是一我的生选择的十字路口,考研、工做、考公、出国,不一样的选择在大三就有不一样的努力方向。而不管考研仍是工做的每条路径,也有许多不一样的分支
  • 对照以上你阅读的前人们的经历,你的选择是什么?
    考研
  • 在这种选择下,你认为你相比其余同窗来讲有何优点,有何劣势?
    优点:学术层面接触到的要高一些,并且能学到本身最感兴趣的领域知识
    劣势:少工做几年,实战经验未积累
  • 针对你的选择,你给本身的大三设定的规划安排是什么?
    大三上继续学习专业课
    大三下准备考研
  • 你对于实现本身的梦想已经作了或者计划作什么样的准备?
    养好精神,逐步回到正常的做息,减小对电子产品的依赖

3、疑惑问题

  1. 第四章两人合做。书上68页
    提到注释使用的字符应该只用ASCII字符,不然会影响程序的可移植性,这里我不是很懂,一是移植性,二是为什么使用ASCII字符。想起以前在使用GBK编码后去其余平台会出现乱码,提倡只使用utf-8字符集,这二者有什么关系或者冲突么?
  2. 第四章两人合做。书上69页
    4.3.2小标题,认为函数最好有单一的出口,为了达到这一目的,可使用goto语句,但是以前咱们接收到的思想是goto语句破坏了程序结构,使程序可读性变差,尽可能不要有goto语句。如何权衡?
  3. 第八章需求分析。书上155~156页
    在谈到作用户调研时使用的焦点小组方法,提到讨论者对于他们不熟悉的事物(如全新市场,颠覆式的创新)不能表达有价值的想法,那么该如何作需求调研呢?用相似事物诱导讨论者么,那这又是另外一个弱点——讨论者容易受到主持人有意或无心的影响。因此,该如何作呢?
  4. 第六章敏捷流程。书上117页
    提到Scrum Master不是一个官,而是一个没有行政权力的沟通者,还要在团队中作具体的工做,那么这个Scrum Master究竟是一个什么样的角色,技术力压众人的大牛么?在团队中是否还须要负什么重要责任呢?
  5. 第十一章软件设计与实现。书上226页
    ERD的小标题彷佛有点小问题,ERD应该翻译为“实体联系图”而不是“实体关系图”,已获得数据库原理及应用老师证明。

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

1.Git

Git一个开源的分布式版本控制系统,能够有效、高速地处理从很小到很是大的项目版本管理,是为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
(1)优势:网络

  • 适合分布式开发,强调个体
  • 公共服务器压力和数据量都不会太大
  • 速度快、灵活
  • 任意两个开发者之间能够很容易的解决冲突
  • 可本地离散使用

(2)缺点数据结构

  • 中文文档较少。
  • 项目保密性差
2.SVN

SVN是一个开放源代码的版本控制系统,经过采用分支管理系统的高效管理,简而言之就是用于多我的共同开发同一个项目,实现共享资源,实现最终集中式的管理。
(1)优势:机器学习

  • 管理方便,逻辑明确,操做简单,上手快。
  • 易于管理,集中式服务器更能保证安全性。
  • 代码一致性很是高。
  • 有良好的目录级权限控制系统。

(2)缺点

  • 对服务器性能要求高,数据库体量大。
  • 必须联网,必须链接服务器
  • 不适合开源开发。
  • 分支的管控方式不灵活
3.Github:

Github是一个集成了git的服务。它能够以网页或者客户端的形式,帮助用户把git本地的数据提交到远程的服务器里。一样的服务还有git oschina,git 京东,git csdn。这些服务都是免费的。
(1)优势:

  • 能够互相吸收经验,借鉴别人的代码

(2)缺点:

  • 对中文不够友好
  • 公开代码才免费,创建私人仓库须要交钱
相关文章
相关标签/搜索