《构建之法》第一次作业

这个作业属于哪个课程 课程链接
这个作业要求在哪里 作业要求链接
我在这个课程的目标是 学习软件开发流程并运用所学知识开发软件
这个作业在哪个具体方面帮助我实现目标 需求分析,程序设计,测试和写文档

1.自我介绍

  • 喜欢战争、政治、历史、经济,对透过表面现象看到内在因素感到着迷。也喜欢动漫、小说、游戏,有趣的世界观、惊艳的故事令我回味无穷。因为受自身和环境影响,焦虑与懒惰并存,大学两年唰的一下过去,却没啥过硬的技术。立过很多flag,现在已经习惯了菜鸡的自己。没啥朋友,有时有点难受,有时却又乐得清静。容易心态爆炸。

2.阅读与思考

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

  • 黑客
  • 编写受欢迎的程序,挣大钱

当初你是如何做出选择你所在专业的决定的?

  • 高考完挺迷茫的,没啥特别的爱好,要说喜欢方向的话有生物、心理学、计算机。之所以选择计算机方向,是因为学生物、心理学好像会饿死,所以选择了计算机方向的软件工程。还有一个原因是软件只有开发成本没有生产成本,这意味着只要有个笔记本就能依靠个人开发软件并售卖,赚钱门槛低。

你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?

  • 课程到是挺符合专业的,但是在大一下的时候忽然发现自己想要的方向--游戏制作人。专业里的数据结构、计算机系统基础、数据库原理对游戏开发来说是必备的。但有些课程不喜欢比如java项目开发,而且我有点不满卓越班计算机网络,操作系统这些课下学期才开。

你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?

  • 不讨厌,但我更喜欢游戏设计领域,不擅长,还得多加练习

将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因

  • 会去当游戏程序员,然后看能否成为制作人。杭州的网易游戏部门,腾讯的游戏部门,深圳的凉屋游戏

2)对照前人们走过的路和描述未来发展

现在的你自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业。

  • unity游戏开发,游戏设计。代码量远远不够。没写过啥最复杂的东西

离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?

  • 操作系统、计算机网络的学习,系统基础、设计模式的巩固,对算法的深入研究。

3)未来规划

  • 对照以上你阅读的前人们的经历,你的选择是什么?
    • 工作,如果能去网易腾讯就去体验一下,不过我可能受不了996,毕竟工作是为了生活,因为工作没了生活就得不偿失了。目前倾心凉屋游戏,他们的招聘广告很诱人,并且游戏比起大厂的逼氪逼肝换皮手游,更有游戏的趣味性。
  • 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
    • 优势是null
    • 劣势是荒废了两年,在开发能力上很差。
  • 针对你的选择,你给自己的大三设定的规划安排是什么?
    • 肝算法题,补数学,啃英文资料。深入理解操作系统,计算机网络。学习安卓开发,图形学。玩unity和看游戏设计方面的书。多看看书,好好思考自己的人生。做好情绪管理
  • 你对于实现自己的梦想已经做了或者计划做什么样的准备?
    • 学习unity引擎,看游戏设计方面的书。但是还不够,我还缺一个自己的作品

3.问题

  • 第三章将全栈工程师比作单人乐队不恰当,全栈是什么都会,但不是专门用来写代码,是用来统筹全局的。一个现代化的项目,是一个非常复杂的构成,需要一个人来掌控全局,他不需要是各种技术的资深专家,但他需要熟悉到各种技术。对于一个团队特别是互联网企业来说,有一个全局性思维的人非常非常重要,全栈工程师就是这样的角色。
  • 第四章结对编程中,如果两人代码水平都不高,思路混乱,无法合理安排任务该怎么办?
  • 弟九章讲述了PM得到/得不到团队成员支持的结果,那么该如何得到团队成员的支持呢?如何令人信服?
    -第十二章用户体验中,遥控板的设计做了大胆的减法,只剩下音量频道电源按钮,我认为这不是好的设计,有时调的频道相差太远,就需要数字键,有些功能不常用但不代表不用。我觉得好的设计应该凸显常用功能同时做好功能说明书。
    -我觉得我缺乏软件开发的经历,也没学习详细了解过软件的开发流程。提问题我觉得应该在学完本书或者有软件开发经验后再提。

4.源程序版本管理工具

SVN

集中式版本控制工具,将项目集中放在服务器,工作在自己电脑,在同一个地方下载最新版本,之后提交到服务器

  • 优点:
    • 1、采用集中式,易于管理,保证安全性;
    • 2、管理方便,逻辑明确,理念符合常规思维;
    • 3、适合人数不多的项目开发;
  • 缺点:
    • 1、服务器压力太大,数据库容量暴增;
    • 2、必须连接在服务器上,否则基本不能工作、提交、对比、还原等;
    • 3、单点故障:如果服务器损坏,则所有历史数据都丢失

Git

分布式版本控制工具(在开发人员电脑的本地就能进行版本控制,所有版本的历史在本地都有存储,有效避免单点故障)

  • 优点:
    • 1、适合分布式开发,强调个体;
    • 2、大部分操作在本地完成,不需要联网
    • 3、完整性保证,避免文件在传输过程中损坏或丢失
  • 缺点:
    • 1、学习成本大,学习周期比较长
    • 2、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

Github

GitHub是一个面向开源及私有软件项目的托管平台

  • 优点:
    • 1、从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单。
    • 2、托管各种git库,并提供一个web界面。
  • 缺点:
    • 1、学习成本大,学习周期比较长
    • 2、国内访问速度慢,且随时可能被墙

5.一些希望

尽管立了很多flag,但我仍希望自己能管理好自己的情绪,克服焦虑和懒惰。希望能做出令自己满意的游戏做出有社会意义的游戏做出艺术品般的游戏

posted @ 2019-09-11 22:39  (>▽<)  阅读(178)  评论(2编辑  收藏  举报