软件工程第一周作业
第一周作业
| 这个作业属于哪个课程 | 计科24级78班 |
|---|---|
| 这个作业要求在哪里 | 第一周作业 |
| 这个作业的目标 | 熟悉Markdown和github的使用方法;了解课程学习目标、思想和内容细节;了解个人能力现状并制定学习目标 |
1、介绍自己
一个普通的,平凡的人。爱好广泛,什么都学过一点,什么都没学懂。没什么闪光点。
2、现状、经验与学期计划
(1)专业选择与职业技能
其实自己本来没想着选计算机这个专业的,初中的过往经历充分地让我认清了自己不适合计算机这门学科,但报考时因为各种各样的原因阴差阳错地还是进入了这个专业
对照技能调查表,我列出了以下我认为对我特别重要的技能
| 核心技能 | 目前水平(0~9) | 目标水平(0~9) | 提高方法 |
|---|---|---|---|
| 编程语言 | 2 | 5 | 1.阅读优秀开源代码学习编程思维 2.尝试做一些算法题目积累有效代码量 |
| 团队协作和沟通 | 3 | 6 | 1.习惯性完成技术文档或者博客梳理思路 2.主动沟通遇到的问题和分歧 |
| 需求分析 | 2 | 6 | 1.多从用户角度思考代码开发方向 2.多了解其他开发者优化开发的思想 |
| github版本管理能力 | 1 | 5 | 1.了解熟悉常用git指令 2.练习分支管理、版本回溯,形成规范开发习惯 |
| 软件测调能力 | 2 | 6 | 1.练习使用debug工具追踪变量 2.学习编写单元测试 |
(2)阅读心得
a)为何要认真上课
聚精会神在这个时代已经是稀缺能力,尤其是现在这个充满了短平快娱乐方式的时代,静下心来专注地思考一件事情越来越困难。通过认真上课来培养自己静心思考知识和别人的观点的素养,在这个信息爆炸的时代能更具有竞争力。
b)在大学里我体验到的大部分的师生关系都是老师讲,学生学的关系;
这门课我希望体验的师生关系是教学相长的师生关系。
作业较难的话,我的选择是 C:向老师和同学请教,花更多时间,把作业全部完成。
只有弄清楚不懂的地方,水平才能真的提升。对于团队作业,我还会主动协商,保证进度。
c)引用和抄袭
引用参考是注明来源、借鉴他人成果做自己的研究,而抄袭剽窃是不注明出处,把别人的文字或成果冒充成自己的学术不端行为。
(3)对于未来的准备
目前我自己对于未来的目标还不是特别明确,比较迷茫,所以也没有特别去准备什么东西。
对照前人的经验来说,可能会选择就业
3、提有质量的问题, 给认真的反馈
以下是我阅读完《构建之法》后产生的5个问题:
问题一:结对编程在高压加班的国内企业环境下,该如何落地?
对应章节:第 4 章 两人合作,4.5 结对编程
我的疑问在于:国内多数互联网项目工期紧张、开发任务饱和,程序员本身工作压力大。两个人做同一个功能,直观上看人力成本翻倍。如果项目有明确截止日期、人手紧张,管理者很难接受结对编程带来的人力消耗。现实中很多公司几乎不采用结对编程。
问题二:敏捷开发 “拥抱变化”,该如何避免需求无休止变更?
对应章节:第 6 章 敏捷流程,6.2 敏捷流程的问题和解法
书中提到敏捷不是无限制接受变更,要由产品负责人筛选需求。但实际工作中,业务方拥有话语权,很难拒绝新想法。我的困惑:敏捷要怎样建立清晰边界,区分 “真正有价值的变更” 和 “随意的想法改动”,防止项目范围失控?
问题三:软件追求 “足够好”,这个 “足够好” 的评判标准由谁来定义?
对应章节:第 3 章 软件工程师的成长,3.2 用户体验与用户同理心
中反复强调软件工程师要有用户同理心,做软件要站在用户角度思考,挖掘真实用户需求。但是很多商业软件,会为了广告收入、会员营收,加入很多用户反感的弹窗、推送、付费诱导。这些功能从用户体验角度是糟糕的,却可以给企业带来收益。这里就产生矛盾:如果完全听从用户,企业收益受损;完全追逐商业收益,又牺牲用户体验。
问题四:软件追求 “足够好”,这个 “足够好” 的评判标准由谁来定义?
对应章节:第 1 章 概论,1.3 软件工程的目标:在约束条件下创造 “足够好” 的软件
书中提出软件工程不追求绝对完美的软件,目标是产出足够好的软件,在时间、成本、质量之间做权衡。但是 “足够好” 是模糊概念。开发者、客户、管理者、普通用户对 “足够好” 标准完全不一样。开发人员追求代码健壮;管理者追求按时交付;用户追求好用稳定。当各方标准不一致的时候,以哪一方为准?
问题五:创新章节中,区分创新和瞎折腾的边界是什么?
对应章节:第 16 章 创新,16.1 创新的迷思
书中讲创新的多个迷思,不是新奇想法就是创新,创新需要落地,产生实际价值。很多团队盲目追逐创新,为了新技术而新技术,强行引入新潮框架、新方案,把简单问题复杂化,最后项目维护成本飙升。疑问:我们该怎么区分 “真正值得尝试的创新” 和 “无意义的折腾”?很多时候很难预判一个想法未来价值。
4、前车之鉴
对于前人的经验教训,我针对其中两篇的具体感想如下:
感想一:关于时间管理
文章链接:把每天把要做的事情分成ABCD四类
感想:不要用盲目忙碌自我感动,要学会把事情按重要、紧急分类,划分优先级,在专属时间专心做事,拒绝多任务并行,以此提升效率。学习时间有限,要分清主次,大学机会虽多,但不能什么都抓,懂得取舍,才不会在繁杂事务里荒废核心目标。
感想二:关于科班迷茫
文章链接:你是否也觉得自己是科班,但没学懂计算机?
感想:分数和课程只是基础,主动思考、动手实践、深究底层原理,才是学懂计算机的关键。过去欠下的理解与实践,总会在面试和工作中暴露出来。应当摒弃只听课刷分的被动学习,学核心课时多动手,不要只记概念,尝试亲手实现算法与代码,打通知识点之间的联系。
附:
github仓库:网址

博客园 Markdown 编辑器设置截图:


浙公网安备 33010602011771号