此作业的要求参见【https://edu.cnblogs.com/campus/nenu/2018fall/homework/2101】
1.在 cnblogs.com (博客园)建账号
博客地址:博客地址:https://www.cnblogs.com/gongylx/
2.(1)回想一下你曾经对计算机专业的畅想
2014年高考结束后,本以为成绩会令人满意的我得到了一个失望的结果,然后爸妈开始搜集高校信息,这时候选专业这个问题忽然降临到我的面前,本来就带着消极情绪,所以也没有真正做到对每个专业深入的了解,单单是选择了觉得男生应该学的专业和自己所知的以后就业前景较好的专业,比如机械、电气还有金融、会计等。最后被计算机专业录取,然后在大一末选择了网络工程方向。本来对计算机的了解只是单单的敲代码编程序甚至修电脑的层次,但是通过了学习,发现计算机这个专业前景是真的好,首先就业容易,不说劳累与否,养活自己起码是可行的。其实本科前两年的课程还是觉得乏味,但是即使乏味,也多多少少对计算机专业有了一点浅层的认知,知道了函数、类等一些专业内容。
临近毕业的时候,选择了继续读研学习是因为感觉自己本科的内容学的太少,进入互联网的大环境会力不从心,想再多丰富一下自己的知识内容,对自己的期望便是能够拥有足够的知识,在某一领域能有自己的认知,能从容的进入社会环境,不至于不知所措。在未来的工作单位中能有发展的空间而不是简单的完成机械工作。
目前觉得计算机是我喜欢的领域。原因如下,本科毕业和许多高中同学亦或者本科其它专业校友聊天,发现他们的专业领域对我的吸引力不及计算机。其中很大一部分原因我觉得是计算机领域有广阔的空间,未知量很多,不像一些传统学科只是旧知识的学习。虽然我现在对计算机领域的了解才是浅浅的皮毛,但是我想深入的了解,想让它成为以后生活的一部分。
(2)考取研究生,对照前人们走过的路和描述未来发展,现在的你自我感觉你已经具备的专业知识、技能、能力有哪些?离成为一个合格的计算机学生,在专业知识、技能、能力上还差距哪些?
本科至今通过知乎论坛能平台了解过很多所学方向的知识,目前感觉自己的基础专业课内容知识掌握的还算及格,这也是考研的功劳,所考的基础专业课自然是比较牢固,可是考研没考到的学科内容就真的是忘得一干二净了。但是我自知自己编码能力的欠缺,自我评估只能对简单的ACM题目用C语言做一些简单的编码,都算不上编程,自己也知道自己的欠缺,假期把Python看完了,但是感觉虽然理论知识了解了,自己动手编写还是不行,软件工程这节课,通过杨老师的介绍,我也知道编程能力不行会跟不上后期的团队程序创作,所以我想通过最近的时间,捉紧把python语言熟练熟练,尽量不拖队员的后腿。
(3)每天都是一个人生选择的十字路口,学术研究、工程项目、社会实践,不同的选择有不同的努力方向。对照以上你阅读的前人们的经历,你的选择是什么?
目前通过最近的学习与了解,我想选择的方向是学术研究。原因如下,首先,我所选择的导师团队所研究的方向是偏学术的算法研究,整个团队的学术氛围特别喜欢,我想不管什么方向,只要是喜欢的环境,喜欢的状态就是好的。所以我想继续深入学术研究。其次,个人觉得工程项目方面在社会工作中更能积累经验,而学术研究只能在读书期间进行,毕竟到了工作环境,不论怎么样都会影响研究学术的进度与状态。
(4)你对这门课的期待是什么?
上过了杨老师第一节高级软件工程课,我感觉杨老师最大的特点是对学生认真负责,对教学工作严谨。我想通过这门课程,一方面真正深入了解具体项目放到公司是怎么样完成的,团队之间的配合是怎么样的,另一方面我想提高自己的编码水平,自知水平很菜,所以提升空间很大,要认真对待这门课程。不光是写博客随笔和周报等作业,我想完成老师在这门课上的所有要求,严格遵守老师所说的时间规定。我计划每天都拿出一部分时间去完成这门课,要高效率而不是靠时间,真正让自己有所收获。
3.读“构建之法”有感
用了4天的闲暇时间读完了邹欣老师的“构建之法”一书,这本书是杨老师推荐的上课教材,同时我们辅导员也推荐了这本书。买这本书之前还以为这本书讲授的内容是如何如何做软件,如何编程什么,当我拿到这本书之后,翻阅下来发现并不是这样的,它以通俗的语言,有趣的人物,简单的举例讲述了软件工程团队的工作方法以及软件工程课程的独特教学方式。然后我就产生了一定的兴趣,心里还在想研究生读的第一本书,是通俗易懂有趣的,起码比上来读代码书强的多。既然这也是杨老师的一项作业,那就好好开个头,把它认真的读下去吧。
当我读到第六章敏捷流程时,6.3敏捷的团队里面有一段对敏捷团队的要求,自主管理(Self-managing)、自我组织(Self-organizing)、多功能型(Cross-functional),自助管理讲述说我们自己不仅要实现领导布置的内容,还要自己挑选任务,自己提出改进,然后自己实施改进。自我组织说每个人不仅要联合起来对项目负责,还要帮助工作落后的人改进,缺少某类资源还要自己顶上去。多功能型讲述测试由测试人员来写,但是需要每个人都全面负责,自己搞定规格说明书,和别人沟通,同时自己搞定测试。通过这章的内容,我知道现在流行的敏捷流程是工程项目比较流行的流程,但是我还产生了疑问。我的疑问是既然我们是一个团队,有领导带领,那我们为什么要和领导承担同样的压力和责任,如果说我们是创业团队,大家用敏捷流程无疑会是不错的选择,但是既然是在公司,既然有领导,他领的工资还比我多,那我们又应该从哪儿去寻求动力与激情去承担这些责任呢?
当我读到第四章两人合作时,4.5结对编程中4.5.2为什么要结对编程里面有一个优点是在结对编程中,因为有随时的复审和交流,程序各方面的质量取决于一对程序员中各方面水平较高的那一位。这样,程序中的错误就很少得多,程序的初始质量会高很多,这样会省下很多以后修改、测试的时间。我提出的问题是这些优点都是在两个人确实是实力相当并且思维一致的前提下产生的,但是如果说两个人实力相差悬殊,高水平的人员还需要时刻帮助水平较低的同伴,这样不仅不会提高效率还会降低效率不是吗?而且每个人的编程习惯还不同,当两人产生意见分歧时,应该怎么处理呢,及时俩人在经过商量讨论过后决定采取其中一个人的方案,但是时间不也是浪费了吗?
当我读到第十六章,16.1.1中讲到我们熟悉的计算机和IT领域,所有我们看到的“酷”的东西,都是几代人、许多团队前赴后继持续创新的结果。就像拼图一样,很多聪明人都模糊地看出了最终图像,都在一块一块地拼接,往往拼好最后一块的人得到了最大的荣誉。但是没有前人的积累,没有自身扎实的功力、就没有“最后一块”等着大家去拼。我从创新这章中理解到,所有创新都是踩着前人肩膀进行的,需要知识的积累。那我们研究生到底应该是广泛涉猎,多掌握各方面知识,找到创新突破口,还是应该专攻一个方面,对其他无关方面置之不理呢?精力是有限的,想要创新,到底应该怎么样呢?
当我读到第十六章,16.1.7中第5条成功的团队有老大的心理中讲到当你已经是本领域最大、最好的公司时,你还要搞段颠覆性的创新么?你是不是想做一些渐进式、维持性的创新就够了?为什么要再搞颠覆性的创新?我能从中得到什么?颠覆式的创新最大的特点,就是它失败的几率非常大,一个员工身处一个成功的大公司,他可以从事颠覆式的创新而失败,也可以坐而论道。这时候我想到,如果我们身处这样的领域顶端的公司,我们是否有勇气去尝试颠覆式创新呢,如果自己的leader想要带领我进行颠覆式创新,但是结果可能是离开自己的岗位,那我有没有勇气、应不应该去跟随他的脚步,冒风险去尝试呢?
当我读到第十七章,在17.3绩效管理中有一部分划分等级和公开刺激的做法的内容,讲述的是有些人把团队成员分为A、B、C这样的等级,并且认为A类员工最优秀,B类员工一般,而且B类员工会把更差的C类员工招入团队,急剧降低团队质量,因此要尽量只保留A类员工。我不明白的是既然团队是为利益在工作,为了绩效在工作,越是多的A类员工,越是能提升效率,甚至提升创新力,为什么要加入C类员工去刺激他们呢,这样的话对A类员工是不是不太公平,我们出了大多数的工作,最后却要别人分去我们的绩效。这点我是有点迷惑的。
以上几个问题,仅是身为学生的我读完这本书之后的一些见解,没有真正的团队经验以及公司工作经验,可能有些问题略显幼稚,请读者见谅。
4.个人的特殊技能
这个问题想了很久很久,头都大了。自己真的觉得没有什么特殊技能比90%的同学厉害。如果硬是要找出一个的话,那就姑且认为是接受新事物吧。我比较容易适应一些原本不习惯的环境或者是事物,就比如来到东师大,第一夜舍友都失眠了,而我压根没有一点陌生的感觉,倒头就睡了,感觉比自己床都舒服。我自认为这种很快适应新事物的状态是一种能力吧,从小干啥都是自己,经常遇见陌生的人和事,接触陌生的环境和状况,我也喜欢认识新朋友,感觉和自己合的来的人有很多,差不多的都能玩到一起,这或许也是一种特长吧。要说怎么锻炼的,多久锻炼的,恐怕是无形之中锻炼的吧,从小到大,自从初中开始吧,自己处理一些遇到的问题不再开始依靠父母,这时候感觉自己能靠自己去适应一些本来不属于自己的环境亦或是事物,或许是这样锻炼的吧。
5. 采访本课程往届同学(含外校和毕业生). 现代软件工程这门课已经上了好几年了,以前有很多学生做过团队项目(说不定包括本校的学生),请你们找一个以前的团队采访一下:
- 当时的项目有多少用户,给用户多少价值? 现在还有人用吗?
- 这个项目能否给我们团队继续开发,源代码/文档还有么?
- 项目开发有什么经验和教训
- 对学好软件工程有什么建议
问:当时的项目有多少用户,给用户多少价值?现在还有人用吗?
答:当时的项目叫博客园安卓APP,用户数量大约30个,当时有发动身边的朋友还有同学使用。现在不太清楚还有没有人用,但是我自己偶尔会通过博客园客户端去看一看博客。
问:这个项目能否给我们团队继续开发,源代码/文档还有吗?
答:我们团队当时使用的是开源的代码,加上后期自己的一些修改,代码还有安装包,文档在coding.net上面可以找到。如果你们感兴趣也可以继续进行开发。
问:项目开发有什么经验和教训?
答:项目开发,人越多相对来说越轻松。相对的问题也会很多。还是要多沟通,多交流,多说想法。不怕想法有多么不切实际,要敢于说出自己的想法。
问:对学好软件工程有什么建议?
答:软件工程是一门让你多读,多理解,多动手的课程。要真正做到理论与实践的结合。尽量让自己多了解一些现实中的软件开发过程,或者参与到一些简单的软件开发中,了解人们的方法与问题后,再与软件工程中的理论相比较,你就会有意想不到的收获!
6.你目前的代码量是多少?你认为优秀的和一般的计算机专业学生,(根据你的理想选择以下两问中的一个)为了有资格入职软件公司/互联网公司,需要多少代码量?从事高校教学科研工作呢?你计划在本课程结束时,完成多少代码量?这些代码量分布在整个学期中,每周应完成多少代码量?
目前代码量为0,本科真的没有做什么具体的项目,只做过一些ACM题。觉得这是自己欠缺的地方,编程能力实在是太差。我觉得入职软件公司起码要对编程能力要求很高,大约应该要2万行的代码量吧(对这一方面了解甚少)。我对自己的要求是在毕业前起码做几个成功的实例或项目,我感觉应该要有1万的代码量。这门课来说的话,自己的编程能力实在是太差,边学习边进行,我觉得这门课我应该完成至少2000行的代码量,分布在整个学期中,我想前几周可能会有点困难,循序渐进,后面应逐步增加代码量,直至完成这么课程。
7.阅读材料心得
(1)读“大学生上课为什么一定要认真听讲”有感
今天拿出来5分多钟的时间读了这篇文章,感受颇深。
首先,虽然作者是以过来人的身份阐述自己对于大学生听课状态的观点,但是丝毫不见强制教育的感觉,并不是一味的通过老师的观点去灌输思想,而是真正通过利弊得失的方面去分析,得到的结论自然也容易让我们接受。他讲的听讲是一种能力以及聚精会神也是一种稀缺能力我感同身受,考研前期真的是没有办法在短时间内全神贯注,这也是本科前三年上课没有认真听讲养成的恶习,自己长期处于没有办法很快融入以及没有办法长期坚持聚精会神的状态,每次上课,及其容易被一点小事比如手机消息而影响,有几次忘记带手机,自认为重要的专业课,全神贯注听了有几分钟便坚持不下去开始困,接着就睡着了。所以我觉得聚精会神真的是一种能力,这种能力真的是可以从上课认真听讲锻炼来的。
其次,作者所述的课程好坏与是否听讲的关系以及课程的作用是否是大学生格局所能判定的问题。我深切体会到随着自己文化水平的提升以及环境的变化,自己的认知是无时无刻不在发生变化的。其实本科刚开学的时候感觉很多课程都和自己没有关系,觉得“无用”,但是随着知识的深入,真正了解了互联网计算机领域,才发现那些都是最基础的东西,没有了这些课程的积累,就好像盖房子而没有打地基,这样的知识框架是不牢固的,当别人追根揭底的问你问题的来源时,你就会发现你能发现问题出在哪儿而不知道为什么会出现在这儿。学生 的眼光和格局真的是在不断变化不断提升的,每天的课都是新的内容,每天接触到的都是新的东西,这都是导致格局变化的诱因,老师是站在过来人的身份去教学的,而不是边探索边教学,所以我们没有必要去评论课程质量如何,有无用处,即使是课程已经学过,也会有自己没有掌握的地方,老师之所以是老师,便有你不会的地方。
最后,虽然知道自己属于“多动症”型性格,比较容易浮躁不容易深入,但是我还是会严格要求自己,争取培养提升自己全神贯注的能力。这也算是研究生课程中一门重要的“必修课”。
以上,是读“”大学生上课为什么一定要认真听讲”后的一些个人想法。
(2)读“现代软件工程讲义0教学方法”有感
本文围绕教学方法即师生关系作出了多种形式的解释与例证。杨老师的问题是在大学中体验了哪种师生关系。
我觉得我体验到的师生关系算是多种多样的吧。本科读书期间认识了很多很多的老师,有学工办的老师,有教研室的老师,有团委老师、学生处老师还有校部工作的老师。在这里我姑且这么分类,因为我感觉因为他们工作内容的不同所建立的师生关系也是不同的。
接触最多的是学工办的老师,我把和学工办老师的关系定义为朋友关系。原因是他们主管学生的生活学习方面。他们会关心你的状态,关心你的学分,关心你的情绪,总之注意你的一举一动并给予最及时的回应。我干了三年的学生会,从开始的简单的尊敬到最后的当做家人的亲情的尊敬,我感觉学工办老师带给我的感觉就像是自己的哥哥姐姐。他们会在过节的时候请你这个离家千里的学子回家吃饭,也会在你生病的时候去看在校医院打点滴的你。自己觉得关系是通过接触自然而然的生成的。我喜欢这种关系也感激这种关系。
第二个接触最多的是教研室的老师,他们就是我的授课老师,最开始的时候就是简单的上课见面下课就走的状态,随着时间的推移,和教研室的老师也越来越熟悉,我感觉和教研室老师的关系就像杨老师以及文章中所说的教练与健身员的关系一样,可能还多一点责任感,老师不仅无私讲解课堂内容,更是关系你的学习状况,关系你的就业状况,本科毕业论文答辩之后,我们教研室的老师和我们专业同学聊天讨论毕业去向,他们真心为我们找到好工作或者考研到好学校而感到高兴,也真正为那些没找到工作的同学想办法,不论是自己的亲戚还是自己认识的企业,他们都努力帮我们找工作。
其他的例如团委老师、学生处老师我把和他们的关系归结为领导被领导模式,他们会叫你开会,给你灌输思想,让你完成任务,我认为未来的工作生活中也肯定会有这种关系,接触不多但是确实的领导与被领导的关系,这时候能做的就是服从,完成任务,自己对自己满意就很完美了。
以上是读“现代软件工程讲义0教学方法”有感。