《构建之法》第一次作业
这个作业属于哪个课程 | 课程链接 |
---|---|
这个作业要求在哪里 | 作业要求链接 |
我在这个课程的目标是 | 学习软件开发流程并运用所学知识开发软件 |
这个作业在哪个具体方面帮助我实现目标 | 需求分析,程序设计,测试和写文档 |
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,但我仍希望自己能管理好自己的情绪,克服焦虑和懒惰。希望能做出令自己满意的游戏,做出有社会意义的游戏,做出艺术品般的游戏。