2018091-2 博客作业
此作业的要求参见[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2101]
1. 建博客(1分)
在 cnblogs.com (博客园)建账号(1分)。
关注 杨贵福(0分)。
我的博客地址:https://www.cnblogs.com/silentteller/
2.博客作业(10分)
(1)回想一下你曾经对计算机专业的畅想
A.当初你是如何做出选择计算机专业的决定的?
之所以选择计算机专业我想有两个方面的原因,一方面在初高中的时候比较喜欢玩电脑游戏,那时候很天真,认为学计算机以后就能做电脑游戏玩,而且在信息技术课上,当时教的VB编程和数据库操作学的很快,自我感觉有这方面天赋?另一方面,在报考志愿时,由于各种原因,加上了金融类的专业(平行志愿),所以填报时第一个是金融工程,第二个是计算机科学与技术,由于分数的原因,我就被计算机专业录取了,所以选择计算机专业,一半是我自身的选择,一半可能也是老天的选择吧(笑)。
B.认为过去接触到的课程是否符合你对计算机专业的期待,为什么?
我觉得以前的课程算是达到了合格的标准,但是并不符合我对这个专业的期待。首先,学校设置课程以及授课方式和内容的设定自然有他的道理,像各种编程语言的课,还有算法课我觉得很好,可我曾经还上过大学物理这样的课,跟计算机关系真的不太大,这让我很是费解。此外,就对于专业期待而言,就比如我想学习制作游戏的编程知识,但这在学校是没人教你的,学生们想学的知识,学校很可能不教,学校的课程所讲授的知识,很多同学并不爱学,而且很多课程大都是老师在上面讲,或者读PPT,所以我觉得以前计算机专业的一些课并不符合我的期待。
C.你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗?
如果这是面试的问题的话,我想我肯定会说喜欢。但实际上我只能说不讨厌,因为以前所接受的教育,并没有找到自己喜欢的方向和专业,大学所选的专业也仅仅是考完到填报志愿中那一个月做出的决定。大学中的学习更多的只是完成任务,但也并没有感到痛苦,有时候做题到也会觉得挺有意思的。认为以后从事这方面工作也可以,毕竟计算机行业的优点还是有很多的。不过我想在研究生期间让计算机变成我喜欢的领域,或者说我变得喜欢上计算机。
就目前而言,计算机还不是我擅长的领域,这也是我读研的一部分原因,我也希望能够在读研期间多积累经验,多学习,使得自己变得擅长计算机,或者说擅长计算机中的某一领域吧。
(2)考取研究生,对照前人们走过的路和描述未来发展,现在的你自我感觉你已经具备的专业知识、技能、能力有哪些?离成为一个合格的计算机学生,在专业知识、技能、能力上还差距哪些?
现在的我在很多方面都不足,本科期间并没有太多专业知识和能力的积累。目前C语言还是可以的,因为本科的实验以及一些题目都是用C语言实现的。数学方面也还不错,以及在面对一些复杂问题和困难时,一般都会坚持去做,去思考。
相比一名合格的计算机学生,我想我在很多方面都有差距。专业知识上我认为不仅要多看自己未来从事的方向,其他方向的知识也应了解一些。而对于专业技能,目前只是C语言比较熟练,Python会一些,如果想要成为一名合格的计算机学生,在编程语言上应当精通两到三门语言,对其他的也应略知一二。以前在大学期间,还是偏理论的东西多一点,实践经验比较少,我也应该加强自身实践能力,学以致用,这样才能向成为一名合格的计算机学生前进。
(3)每天都是一个人生选择的十字路口,学术研究、工程项目、社会实践 (?) ,不同的选择有不同的努力方向。
A.对照以上你阅读的前人们的经历,你的选择是什么?
我的选择是工程项目,原因是我读研的目的就是充实自身,多学一点本领,在研究生毕业后找一份相关的工作,所以工程项目的数量以及经验便会增加未来找工作时的筹码。
B.在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
我的优势是:我学习新东西的速度较快,能够快速的掌握以前没有接触过的东西。其次是我的反应能力也不错,适应新环境,新团队的速度较快。在工程项目的开发中能找准自己的定位。最后是我自身也愿意做一些项目,工程相关的工作。
我的劣势是:本科阶段并没有做过项目,仅仅是完成相关课程的实验。不了解一个项目开发的具体流程,也没有项目开发的经验,编程技能和相关能力不足,这些都是我的劣势。
C.针对你的选择,你给自己的本学期的规划是什么?
本学期的规划是:
1:学习Python,C++。
2:多听组里的讨论班,多参加一些讲座,听听前辈以及大牛的思想。
3:过六级
4:如果实验室里有项目的话就积极参加,积累经验
5:学习一些机器学习,数据分析相关的知识
(4)你对这门课的期待是什么?你打算平均每周拿出多少个小时用在这门课上?
大学时曾经上过软件工程这门课,不过当时的课比较水,最后虽然以小组的形式提交了一个小项目,但也只是在曾经做的实验里改一改应付的。希望能在高级软件工程这门课中学到一些“高级”的知识,真正熟悉一个软件开发的具体流程,也希望能学到对未来进公司做实际开发工作真正能用到的知识和技能。
通过第一节课杨老师的描述,我知道这门课的作业量非常大,所以我打算每周拿出至少12个小时的时间来用到这门课上。因为周一到周五有课,以及实验室的任务,所以平日里的时间就要少一些,在周六周日里多花费一些时间在这门课上。
周一 ~ 周五 4小时
周六,周日 8小时
总计12小时
3.博客作业(10分)
通读《构建之法》,发布随笔1篇,要求列出5个问题,可以是读后不理解的,或者读后反对的。要有观点、有证据或分析。字数不是直接的考核标准,但是要求长到能把观点表述清楚。
问题一:在第5章团队和流程中的5.2软件团队的模式,书中介绍了多种团队模式,例如主治医师模式,明星模式等等。而很多软件公司的团队最后都演变成功能团队。但看了这么多团队模式,对于刚刚创业的小型公司,有没有适合人数少,但效率较高,又能尽量发挥每个人能力的团队模式?
问题二:在第9章项目经理中9.3PM做开发和测试之外的所有事情,提到PM所需要的能力是1.观察,理解和快速学习能力,2分析管理能力,3一定的专业能力4自省的能力。PM所做的事情更多的是沟通,交流,分析等等。那我想问PM会不会在未来演变成一个不会编码,而对于软件开发的理论方面功底十分扎实这样的职业?或者说我不会写代码,但我想做PM,有没有可能?
问题三:在第11章软件设计与实现中11.5.5小强地狱里谈到“如果开发人员的小强数量超过一规定值,则此君被送到小强地狱,他唯一能做的就是修复小强”,可是在实际开发中,如果有人开发的部分有很多的bug(已经超过了阈值),但又有别的人等待他开发新的功能,才能继续开发下去。或者说在修复bug和新功能的实现两者中的必须要优先一个,我们应该选择哪项?
问题四:在第12章用户体验中12.1.6用户体验和质量里如果用户体验和产品的质量有冲突,怎么办?并讲诉了核磁共振机的故事,里面说到将机器做的宽一些,牺牲一些成像质量,来换取用户体验。我有两点表示质疑,其一是,我觉得这里用这里用医疗器械来做比喻有些欠妥,病人来医院检查,就算是用户体验不好,但我想为了看病治病,一些痛苦的体验也是不可避免的,而且如果权威的医院需要你做各种检查,我想大多数人都是会接受的。但用户使用软件并不是看病治病,而且现在同一类型的软件有很多,如果我在A软件上的体验不好,我大可以换一个有相同功能的软件去使用。第二是,12.1.6开始问牺牲质量去追求用户体验,用户能接受吗?后面提出这个故事,表示在一定程度上牺牲质量来换取用户体验看起来是能接受的,但我觉得这个有一个大前提,是用户对此不知情,或者说根本不知道牺牲了质量。试想如果医院为了让来检查的病人舒服些,减少了检查仪器的质量,我想病人们更多的是愿意接受痛苦来换取更好的检查质量吧。
问题五:在第16章IT行业的创新,读了书中的内容和例子之后我想问的是,就目前环境而言,个人怎样去创新?或者个人创新也着重于哪方面?就算现在有好的想法,也很难与现在成熟的企业去竞争,企业也在想创新,可能你的创新刚刚有一点眉目,便被大公司所收购,或者大公司直接投入更多的人力和资源直接超越你,但人也很难说能够闭门造车个几年,出来便一鸣惊人的。所以想要做到创新,做到别人都承认的创新,我们应该怎么努力?
4.博客作业(10分)
很多人有不为大家所知的本事,而这个能力可以超过周围90%的人。比如课堂中教师提到,如果表现得不像高度近视,如何伪装得不像脸盲,能做40个俯卧撑。当然,也可能是篮球、足球、钢琴、ACM、演讲。请给出你超出朋侪的特殊技能,并告诉我们,你如何通过何种努力、花了多久获得这样的成就。
我会单簧管(黑管)这项乐器。小时候父母认为应该掌握一门才艺,便想让我学习一种乐器,我个人是很喜欢钢琴的,不过由于有老师说这孩子手指不长,不适合学。所以学一门吹奏的乐器,在单簧管和萨克斯中选择了单簧管是因为乐器老师说单簧管虽然难一些,但学会了之后就也能吹萨克斯,所以便学习单簧管。在第一年学习考了6级,第二年学习考了10级(业余演奏级),我觉得作为一个爱好,也算是学到头了,虽然老师极力希望我走艺术这条路(因为我学的确实很快),但我原本就没有这种目的。在第三年的时候跟老师学吹了一些中外的演奏曲目之后便结束了我单簧管的学习生涯,而且很久都没再拿起来演奏了。不过在大学时候尝试捡一下这个技能,发现我确实还能吹奏一些曲子,现在想想会一门乐器还是蛮不错的。
5.博客作业(10分)
采访本课程往届同学(含外校和毕业生). 现代软件工程这门课已经上了好几年了,以前有很多学生做过团队项目(说不定包括本校的学生),请你们找一个以前的团队采访一下:
A.当时的项目有多少用户,给用户多少价值? 现在还有人用吗?
我采访了实验室的徐师兄,他们小组当时开发了一个贪吃蛇游戏,其价值是在玩的同时也帮助了用户去背单词。当时项目有15人左右,现在没有人在用了。
B.这个项目能否给我们团队继续开发,源代码/文档还有么?
现在这个项目没办法继续给我们团队开发了,源代码和文档由于保管不当已经丢失。
C.项目开发有什么经验和教训
徐师兄谈到的教训便是开发项目时要注意备份,因为项目的丢失现在觉得蛮可惜的。经验就是在项目开发中任务安排要详细合理,针对不同的成员制定不同的任务,要切实可行。
D.对学好软件工程有什么建议
徐师兄给的建议是,虽然这门课程任务繁重,但要摆好自己的态度,积极完成作业,把参与这门课当成一次宝贵的学习机会,最后肯定会有所锻炼的。
6.博客作业(5分)
以下统计精确到一百行。你目前的代码量是多少?
想了一下,如果不算做题这一类的代码,仅仅看课程设计,毕设等,应该有5000行
你认为优秀的和一般的计算机专业学生,(根据你的理想选择以下两问中的一个)为了有资格入职软件公司/互联网公司,需要多少代码量?从事高校教学科研工作呢?
我觉得为了有资格入职软件公司/互联网公司,需要2w——3w行代码
你计划在本课程结束时,完成多少代码量?这些代码量分布在整个学期中,每周应完成多少代码量?
因为到目前还不清楚这个课最后的小组项目会是什么,所以就先暂定2000行代码,不过我觉得随着课程的推进应该会不止2000行。如果将这些代码分布在整个学期中,我想每周应完成150行代码,不过由于每周的任务都不一样,这个分布量应该是不均衡的,在任务繁忙时多些,在任务简单时少些。
7.阅读材料,写心得(10分)
以下两篇博客必读,并务必写一些心得:
(1)你为何要来上课并且认真参与 [http://www.scalerstalk.com/816-attention]
(2)你在大学中体验到了哪种师生关系 [http://www.cnblogs.com/xinz/archive/2011/05/16/2048044.html]
对于第一篇博客我是很大程度上是赞成的,作为一名学生,来上课并且认真参与是应该做到的事,但就目前大学情况来看,很多学生(包括我)都没有做到,很多时候因为各种原因,例如课水,今天太困了,各种各样的理由不去上课,而有时候去上课了也没有认真听。这些都是不好的行为,文章给出了很多认真听课,聚精会神的观点,我很是赞同。但其中有一点对于某些水课,因为可能大多数学生所经历的课其实没有那么水,但我在本科期间上过一门课,真的很水,同学们都是这样认为的。我不是否认老师的水平,只是确实有这样的老师,随意选一本教材,拿着教材上给好的PPT进行教学,而内容全都按照PPT上的念,课堂上也没有任何与学生的互动,如果遇到这样的教师,我想任何人都会觉得不听会更好的。当然,对于研究生课程我想我会按照博客里说的,做到认真听课,跟上老师的节奏,梳理自己的思路,多思考。而且在上课时要做到聚精会神。
对于第二篇博客对于师生关系的阐述真的是太好了,在以前初高中的时候,师生关系就如同保姆/幼儿,老师们如同保姆一样对待学生无微不至,将知识一勺一勺的喂给学生,有什么问题也都可以交给老师来解决。而上了大学,我发现上过的课中师生关系也有好多种,有狱警/犯人这样的,每节课都点名,还会在课堂上搞小测验。也有路人甲/路人乙的这种师生关系,这种课大都是开设的公共课,老师来了讲自己的,学生选也是为了凑学分的。所以当我看到作者将理想的师生关系比作健身教练和健身学员的关系,真的是让人眼前一亮。确实,在健身房中,需要请健身教练的人是对健身有需求的,而健身学员在得到健身教练的指导过程中双方都有很好的反馈。如果哪里练的不对了,教练会指出来,如果学员想着重练习某一部位时,教练会给出很好的建议。如果是这样的师生关系,我想每一位学生都会得到很好的收获,学生在学习时多与老师交流,及时沟通。但这种关系的建立前提是学生有需求,如果学生不想学习,不想在课上有所收获的话,我想最终师生关系还是会演变成上面几种关系的。