现代软件工程 作业 第一周博客作业

第一周博客作业

介绍自己 建博客

大家好,我是易婧玮。来自中国科学技术大学,信息安全专业,现在MSRA SC组实习。

我自己的一大爱好是视频图片的处理,在初高中以及大学前三年时学习使用了Adobe系列软件(Photoshop, premiere,xd, 稍微使用过After Effect)。小时候有段时间的梦想是成为视频剪辑,特效制作,建模的从业人员。也曾使用过这一技能制作过一些采访视频和海报以及宣传视频。不过现在使用的次数越来越少了。

另一个爱好是ctf,这个爱好在大二下暑假选定专业是发现的。CTFCapture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。我打比赛的能力并不是很强,只是很那种喜欢在参加比赛以及线下学习时,了解程序内部运行机制、利用一些设计上的漏洞得到flag的过程。在了解这些知识后,也能帮助到自己写出比较安全的程序。

运动上方面,我比较喜欢游泳。一些刺激新鲜的活动我也比较乐于尝试,比如跳伞或者游乐场之类的。

现状经验和计划

技能调查

  1. 我在大一下时选择从物理学院转院至信息科学技术学院,原因是经过一年的大学生活后认为自己的兴趣在计算机方向,并综合了家长的意见,最终选择了信息科学技术学院。之后在大二下是选择信息安全系是出于对各个方向的专业课自己感兴趣与否来选择的。

  2. 技能调查表

    技能 自我评估 你计划通过什么手段提高水平
    程序理解 3 多阅读代码,学习高效的debug方式。
    单元测试 2 学习如何进行单元测试的方法。
    效能分析与改进 2 学习使用效能分析工具进行程序分析,并加强自己效能改进的知识储备。
    处理大数据 2 学习大数据处理的相关知识。
    报告项目状态 2 多学习别人是如何尽心项目报告的,取长补短。优化自己的表达能力。

阅读一下博客,并务必写一些心得:

  • 大学生上课为什么要认真听讲?我是比较赞同博客中的几条理由的:1.认真听讲是一种能力 ; 2. 课程讲的不好不能成为不听讲的理由; 3.课程有用无用不是一个大学生的格局能判定的; 4. 跟上老师的节奏,梳理你的思路,这是最快的进步;5.聚精会神在这个时代已经是稀缺能力,大学应该打好基础;除了博客中列出的以上五点理由以外,我曾听过一位老师说过,不来上课或现在不听讲的学生多半也没有在学习专业相关知识,甚至都没有将时间花在学习上。认真听讲还是有必要的。

  • 我在大学体验到了Retailer / customer (餐馆/食客)、Boss / Employee (老板 / 雇员)、Stranger / Stranger (路人甲 / 路人乙)、Prison Guard / Prisoner (狱警 / 犯人)的师生关系。我认知中的理想师生关系是Coach / Trainee (健身教练 / 健身学员)。如果老师布置的作业对你来说有些困难,我会选择C: 向老师和同学请教,花更多时间,把作业全部完成。

  • 在别人工作的基础上,增加自己的理解或者实现自己的创意(主要工作还是来自自己),我认为这叫做借鉴。一成不变的照搬,并且并未标注出处,我认为这叫做抄袭。

    我认为,抄袭和借鉴最大的不同还是是否有将他人成果直接纳为己有的意愿。

未来准备

  • 几年后,你可以做学术研究、做软件项目、做其他专业的工作,做公务员,出国深造,回家继承家族企业... ,不同的选择有不同的努力方向, 你今天是怎么为将来准备的?

    我将来准备做学术研究,成为一名researcher。或者在国内找一个与计算机方向相关的专业。扩充自己的知识储备和经验是我现在的打算。

    在这种选择下,我的优势是我现在又很好的师资资源供我学习,以及我还有很多时间去准备学术成果。劣势是我现在的能力还需要很大的提高(编程,写论文,debug)

    我本学期的规划是,加快自己实现任务的速度,debug能力以及阅读别人代码的能力。规范自己的代码风格,增加自己代码的可读性。同时管理好自己的代码以及文档,方便之后的同学接手。

课程计划

  • 我在这门课的计划是, 平衡课业任务与mentor布置的任务所花费的时间。,在自己能力范围内完成好老师布置的任务,如果学有余力,我会花剩余时间学习编程工具或者深度学习理论知识。我期待在这门课上学会团队管理以及单元测试等软件工程技能。我目前没有成为助教的打算。

    我目前的代码量是(只是粗略的,没有详细统计过)。为了有资格入职一流的软件公司/互联网公司,应该需要有足够多的项目经验以及算法基础,代码量至少上万吧。

    语言 代码量 来源
    javascript/typescript 5000 igem/数据库大作业/密码学大作业/软件工程大作业
    c/c++ 4000 c语言大作业/数据结构实验/算法导论实验/电子设计
    python 5000 MSRA机器学习任务/ctf脚本/算法导论实验

    我计划每周在本课程花费16-20小时。

    在本课程结束时,完成3000-5000代码。每周应完成500-600代码量。

前人经验

我阅读了辜新星:时刻调整方向 找到人生的蓝海。作者的大一生活和我很像,分不清楚事情的主次、优先级,改下决心放弃某些事情时又犹豫不决。

在进入微软实习的两个月中,我收到很多任务,也深感这种把每天要做的事情区分优先级的重要性。1. 当事情很多时,区分优先级能及时帮你找到目前该做的事。2. 在专属时间内专心致志地做好当前的事情,能够大大提升人的效率。

提一些有质量的问题

  1. 第三章 P70

    书中提出的一个问题引发了我的共鸣,并且最近我也一直被这个问题困扰。

    “小飞在完成某个任务,发现自己的代码可以修改,但是会影响自己工作进度估计的准确性。如果不修改,整个团队会发花费更多时间在后续集成上。”

    书中没有给出标准的答案,想请教一下这个问题。

  2. 第十三章 P269

    既然代码作者被要求最好自己写单元测试,那还要测试人员干嘛?这个问题我没有得出答案。因为在第二章,书中说P40“单元测试必须由最熟悉代码的人(作者)来写”。或者说测试人员的工作不是写单元测试吗?

  3. 第六章 敏捷流程

    敏捷流程中的第三步骤(冲刺)要求每日例会。但在学校上软工课的时候明显感觉,每日例会大家没有太多可分享的内容(大部分时间都被浪费了),效果甚至亚于写每日总结。这个要求是否不太合理,或者说这个每日例会的时间是应该被限制的?

  4. 第八章 需求分析

    P172页中将需求分为了必要需求/辅助需求,功能分为杀手功能/外围功能,并建议使用最小开销完成外围功能。但当你想在某个领域(如ipad笔记本)进行创新,但是这个杀手功能的开发开销已经远小于外围功能开发开销(如完成使用笔手写),但是外围功能又必不可少时(缺少外围功能软件无法正常使用),这个点子是否还有被实现的必要

  5. 第十三章 软件测试

    P267展开了黑盒和黑箱的讨论,并给出了搜索条数。我觉得比较有意思就自己搜了搜,结果得到相反的结果。原文是黑箱测试(100万) > 黑盒测试(70万)


认真写反馈

我会C:认真按时填写。

posted @ 2019-09-08 20:04  yjw1029  阅读(201)  评论(1编辑  收藏  举报