2018091-2 博客作业

此作业的要求参见[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2101

1. 建博客

博客地址:https://www.cnblogs.com/wangyike/

2. 博客作业

(1)回想一下你曾经对计算机专业的畅想

         Q:当初你是如何做出选择计算机专业的决定的?

         A:2014年的暑假我接到了渤海大学的一封录取通知书,上面写的录取的专业是物联网工程,说起来进入计算机这个大类里面的一个专业来进行学习实属无心插柳,但也正是  因为与前两个专业失之交臂,我才有机会来了解计算机这个现在不断进行发展更新的学科。

               整个过程基本都是自己摸爬滚打过来的,感触颇多。

刚进入大一的时候是一个什么都不懂的小白,连电脑都没有摸过几次,打字还是“二指禅”,打字速度停留在一分钟可怜的个位数,对计算机在我脑海中的概念就是一张白纸。但是已经进入了这个专业,就不得不来面对它,入门摆在面前最大的问题就是打字,C语言。我记得非常清晰,我们要求在大一上学期期末考试的时候,我们打字要求60字/min。不会也得硬着头皮上啊,没办法,逼着自己去了解关于计算机的一切:每天去机房或者图书馆练习打字一个小时,去网上百度各种跟电脑硬件、计算机历史有关的知识。就这样到了期末自己成功的过了考试,就觉得我还是可以学的会的。大一上学期对于我来说就是疯狂恶补各种基本知识,别人习以为常的东西都要仔仔细细的学,把他们变成自己的东西。毫不夸张,大一的上学期我觉得天空都是灰色的,每天就在基本知识里面摸爬滚打。

               大一下学期,我做了我觉得是改变了我整个人的思想的决定:我决定考进我们学校的卓越班,来进行更加高强度的学习。经过了笔试,面试,我成功进入到班级里面,我们有自己的机位,有自己的位置,有空调,现在回想起来感觉真的都是高配。进入卓越班之后我们的课业量基本算是翻倍:因为我本专业偏硬件,但是进入卓越班之后我们需要学习整个学院的课程,所以我又修了计算机科学与技术,软件工程两个专业里面关于软件的课程。

               大二开始我真的有感觉有一点点摸到了计算机的大门,我可以自己做一些符合自己需求的小程序,且也开始做了一些关于自己本专业的一些小项目,最后也有的拿到一些比赛中进行评比。最重要的是我在大二一年我认识一个对我本科影响最大的两个同学:L同学(现工作于上海振利公司进行前端开发工作)和P同学(现工作于华为公司做产品开发工作)。P同学的机位就在我机位的旁边,平时就有时候聊聊天,P同学帮助了很多很多,一来二去就认识了他的室友L同学。如果说P同学是“大腿”的话,那L同学就是“大神”。从最开始的一起吃饭到经常他请教问题,到后来班级确定小组的时候我抱着机箱强行加入他们,成为 “四人男团”的第五人(我们一般都是六人一组,我们六人组最后加入的L同学对我帮助也很大(保研到中国科学院大学沈阳计算机研究所),另一位我们组X同学现工作于兴业银行做运维工作),就这样不断向我们组里的男同志们学习,和大家一起加班在实验室做各种大作业,在这期间自己做着东西度过了平稳的大二。

               大三算是自己积累两年之后得到一定结果的时期,自己积累了两年,第一次承担发展了自己的一个大项目,当成品出来的时候自己非常激动,感觉自己两年的功夫没白费,它是我三年学习的一个总结。

               回头使劲回忆,选择计算机专业是我预想之外的事情,就好比我们都站在起跑线上,我们不能因为自己站的跑道不是自己期望的我们就放弃,还是得跑下去。

         Q:你认为过去接触到的课程是否符合你对计算机专业的期待,为什么?

         A:我学习过的课就是如何可以让自己跑的更好的方法,我认为符合我对计算机的预想,甚至大大超出了我对它的期待,因为在我学着怎么跑的更好的时间里我遇到了我的小组里面的大兄弟们,一直向他们学习,才有了现在的自己。

               我们本科卓越班的考察方式基本不笔试,都是上交作品或者大作业,而且我们每学期都要压缩课程两个月上完四个月的课时,基本每个月都要在实验室住一周来加班自己学各种东西,并且每周都有对应科目测验,记录到总成绩里面,我印象最深刻的就是Java程序语言设计这门课,每次都努力让自己在前十名内提交作业(我们当时考试规定提交正确程序越早分数越高)。我觉得这种方式在很大程度上锻炼了我们的动手能力,包括开发文档等一系列的能力,且我们课上老师授课很少,我们自行学习的时间比较多,也大大提高了我们的自学能力。

               综上,我认为我过去接触到的课程符合我对计算机专业的期待。

         Q:你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗?

         A:计算机可以说是我喜欢的领域,因为在这条跑道上奔跑了四年,我觉得我可以继续跑下去,我想看看更多的东西,认识更多的人。并且每天可以和朋友们聊天的时候交流我们学习到的东西我们也是有话题可聊,是一件开心的事情。

              计算机不是我擅长的领域,因为学习时间太短,还处在坐井观天的阶段,无论是技术,理论或者是数学方面感觉都没有达到可以称为“擅长”的境界,所以我认为计算机是我不擅长的领域,但是我会保持一个持续学习的态度,不断学习下去。

(2)Q:考取研究生,对照前人们走过的路和描述未来发展,现在的你自我感觉你已经具备的专业知识、技能、能力有哪些?

         A:本科期间我在自己的小组主要负责文档与测试部分,个人认为获得了一定的软件需要的各类文档,企划书、申报书等文档的撰写与一些基本的测试能力。

               在项目上的提出或者进行创新点的发展等有自己的方法与思想。

               在代码能力上有一定的欠缺,不能做实际工作中的活(在公司工作主要是学习各位前辈的能力,因为实习时间只有半年,所以不能承担实际公司中的活),只能停留在完成学校的基本大作业程度(增删改查),但是自结束实习后到现在都一直在不断学习提高这方面的能力,每天都会码一点东西。

         Q:离成为一个合格的计算机学生,在专业知识、技能、能力上还差距哪些?

         A:我认为离成为一个合格的计算机学生,首先在最基本的技术上有一定的欠缺,而且非常缺少非常完整的算法思想,不能建立专业的知识体系,且在与同龄人沟通方面存在着非常大的障碍,这些都是自己能想到的在各方面欠缺的方面。

(3)Q:每天都是一个人生选择的十字路口,学术研究、工程项目、社会实践,不同的选择有不同的努力方向。对照以上你阅读的前人们的经历,你的选择是什么?

         A:我希望在学术研究的方面继续自己的人生,因为自己经过四年所一直做的都是为了完成一个实体的东西而去做东西,在公司实习也是把别人的东西拿过来来用的。还没有自己真的提出一些理论上的东西,非常希望可以通过自己的努力提出一些问题然后解决掉他,让别人拿我的方法来解决他们的问题。

         Q:在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?

         A:优势:

                        在选择学术这方面我觉得我相比其他同学来说我在本科期间有参加过小组进行多个项目整个的完成过程(包括需求分析,项目开发,文档撰写,测试,发布),并在公司进行过实习,且有一定的英语基础,我认为对于善于接受新知识与理解论文都有很好的帮助。

                        本科期间做的所有项目无论是不是负责人,都是我来负责进行项目介绍,所以我觉得也是有一定优势的。

                        本科期间自己进行过创新项目(不是随便做的,是自己从零做起,完完全全自己做起的),对如何做创新点,有自己的判断力,方法与想法。

               劣势:

                        本科期间对于写代码的掌握还不够熟练,没有一种语言可以称的上是能够熟练掌握的,且对于实际工作中的活来说自己还不能够达到上手的程度;且在看完老师推荐的《构建之法》之后,我发现自己对自己在开发团队的定位有很大问题与疏忽,也了解到自己所组建团队的生存之期如此之短的原因,也发现了自己以前一直是摸着石头过河,一直在瞎弄,感觉自己还有很长的路要走。

         Q:针对你的选择,你给自己的本学期的规划是什么?

         A:在保证代码行数的基础上,对软件工程本身的理论基础也要做到一定的掌握并将其运用到实际的团队合作中。

(4)Q:你对这门课的期待是什么?

         A:因为这门课老师推荐阅读的是《构建之法》所以我希望在这门课可以系统的把整个软件生命周期重新梳理一下然后希望对团队建设管理与保持一个什么样的心态参与开发项目这几个方面有更深刻的理解;自己更会利用这门课好好的提高自己码代码的能力,希望通过这门课可以积累一定的代码量,有自己的一个比较上手熟练的语言作为自己的开发工具,为后续的学习打基础。

        Q:你打算平均每周拿出多少个小时用在这门课上?

        A:我觉得每天我都可以拿出来3小时来学习代码(包括基础学习,刷oj等)与精读《构建之法》。

3. 博客作业:通读《构建之法》,发布随笔1篇,要求列出5个问题,可以是读后不理解的,或者读后反对的。要有观点、有证据或分析。字数不是直接的考核标准,但是要求长到能把观点表述清楚。

       首先,老师推荐的这本书对我的影响非常大,我觉得里面的内容非常有价值,已经把这本书分享给我的朋友们了。

       对于《构建之法》的第六章——敏捷流程这章印象非常深刻,特别是敏捷开发原则中的第三条原则:经常发布可用的软件,发布间隔可以从几周到几个月,能短则短。对这条原则我想提出个问题:如果说敏捷开发是这样的原则,这是否促进了现在手机软件中大量快餐无用APP的发展?我根据在网上还有在各种软件商店的浏览发现,除了我们手机里必会安装的微信,微博等软件,其实还有好多不知名的小软件存在,评价差的软件比比皆是,且我也下了其中的一些软件,这些软件是可用,但是用户体验非常不好,粗制滥造,可以明显让人感觉是随随便便做出来的,完全没有一个正常软件的使用感觉。通过我自己的了解发现,大部分的软件软件开发仅仅用了半个月左右的时间就上架了,然后就在其中放入软件来挣钱。我对这条原则抱有怀疑的态度,我认为这条原则在一定程度上催生了“僵尸软件”的诞生,有的团队或者是个人只是为了单纯的在软件商店发布更多的App在其中装入广告来争取一个稳定的经济来源(且不说广告费是多少,但是打开这个软件制作者就会得到一定的奖励)。当然不可否认的是,敏捷开发的流程中确实需要大大缩短发布的间隔,以尽早满足顾客的需求。所以我认为第三条原则应该改变为:在保证产品的生命周期的前提下,发布间隔可以从几周到几个月,能短则短。

       我想阐述的第二点是在我第一章中了解到了托尼·霍尔对计算机科学与软件工程的不同侧重点后,我进行了思考:计算机科学和软件工程的关系最后会发展到什么样子?因为根据我到现在的了解我们同学之中大部分准备的都是就业,而且软件工程和计算机科学专业的同学选择就业的岗位也基本相似;还有继续学业的同学在硕士阶段选择的专业也是把两者混为一谈,所以我觉得现在在我们学生中并没有对两者有很大的区分。而且我也想到了最后的理论都是要进行实践的,那样的话计算机科学是否都会转向到软件工程的方向,进行工程类的工作,是不是计算机的发展会越来越少?

       第三点我是根据第七章实战中的软件工程中与顾客合作小节提到:产品团队要与顾客进行交流与合作,并不是产品团队拿到合同后,就闭门造车,直到产品完成才告诉用户,给他们一个惊喜(通常“惊”大于“喜”)的这句中的“惊喜”联想到的:我们如果可以好好利用好这个“惊喜”,会发生什么?首先我要表达的是这句话我完全赞同,一个产品一定不要是我们觉得好才好,我们要从不同的受众群体来看,只有用户觉得我们做的东西好才是好的。接着我就想到了,如果我们给的“惊喜”是用户没想到的呢?就像我们在写我们自己的软件的时候,我们有自己的特点,让我们的特点惊喜到我们的客户,我们特点有可能就是其他人没有的,这就是我们的软件的核心竞争力,然后慢慢地产业内都会选用我们的“惊喜”,成为我们产业的标配,这也就会大大的推动产业的发展,如苹果手机打开全面屏市场。所以我们认为如果一个团队要真的向前看往前走的话,这个团队一定要经常想到“惊喜”,在完成甲方的需求后,发挥团队的能力做到“极致编程”。

       第四点我是看到第八章需求分析中第三小节获取用户需求——用户调研这小节想到的,这小节提到的调研方法有焦点小组、深入面谈、卡片分类、用户日志调查、人类学调查,我想到一般的初生的团队并没有大量的经济基础一般没有经费来进行这些调研方式。所以我觉得我们可以稍微转一下角度,我们不仅应该注重和目标用户“同吃同住同劳动”,我们更应该多去用同类软件,调研自己的竞争对手,就像我在自己做东西的时候不仅要问周围的人他们怎么用的,还要了解关于自己要做的东西的一切来让自己的作品取长补短,有更大的竞争力,所以我认为应该在调研中加上多用同类产品。

       第五点我想提到的就是第十七章人,绩效和职业道德的第7小节萝卜和白菜的故事中,我认为可以有第二种结局:白菜不离开公司,我觉得萝卜和白菜都应该留下,并结对相互鼓励,互相帮助。因为我觉得一个团队不仅仅应该有像萝卜一样的干事利落,曝光率高,修复bug的能力强的人存在,而且也应该有像白菜一样的稳稳当当的,可以很稳妥做事的人,我认为他们是互补的,可以互相帮助的。我认为如果只留用萝卜,单单“Bug hell”做惩罚,只不过是死循环,萝卜继续做很快,再继续有很多bug,再去改,治标不治本。我认为萝卜和白菜可以结对试试一起结对,我觉得这可以让他俩都有很好的提升。

       综上就是我对《构建之法》所提出的五个问题与自己的理解,我还会对这本书继续精读,研读下去,因为这本书真的就像老师说的一样,是一本非常好的书。

4. 博客作业:很多人有不为大家所知的本事,而这个能力可以超过周围90%的人。比如课堂中教师提到,如果表现得不像高度近视,如何伪装得不像脸盲,能做40个俯卧撑。当然,也可能是篮球、足球、钢琴、ACM、演讲。请给出你超出朋侪的特殊技能,并告诉我们,你如何通过何种努力、花了多久获得这样的成就。

       可以连续剪辑十个小时视频。

       用一个礼拜时间学习PR,然后通过自己的兴趣来做到的,就像网上说的一样:为爱发电。

5. 博客作业:采访本课程往届同学(含外校和毕业生). 现代软件工程这门课已经上了好几年了,以前有很多学生做过团队项目(说不定包括本校的学生),请你们找一个以前的团队采访一下。

        Q:当时的项目有多少用户,给用户多少价值? 现在还有人用吗?

        A:当时我们的系统是图书馆防占座系统,是当时软件工程的大作业,当时的项目用户是整个班级59人,给用户做到的就是用户可以通过我们的软件看到图书馆里面的座位使用情况,现在没有人用。

        Q:这个项目能否给我们团队继续开发,源代码/文档还有么?

        A:能,因为涉及到硬件排布与软件的更新维护,不适用于现在的图书馆,没有。    

        Q:项目开发有什么经验和教训

        A:测试很重要,非常重要,而且测试占到了整个的很大的比率。要重视测试工作的完成,开发确实是整个软件开发的一个很重要的一部分,但是更重要的是测试来回实践,找bug,当时的整个流程很混乱,想到什么做什么,通过这个项目希望可以了解整个的流程然后一步一步科学的完成软件工作,还有一定要重视团队中的测试人员。

6. 博客作业:以下统计精确到一百行。

        Q:你目前的代码量是多少?

        A:1000行左右。

        Q:你认为优秀的和一般的计算机专业学生,(根据你的理想选择以下两问中的一个)为了有资格入职软件公司/互联网公司,需要多少代码量?从事高校教学科研工作呢?

        A:5w-8w的代码基础。

        Q:你计划在本课程结束时,完成多少代码量?这些代码量分布在整个学期中,每周应完成多少代码量?

        A:2w左右的代码量,每周应该完成300行左右的代码量。

7.阅读材料,写心得:(1)你为何要来上课并且认真参与 [http://www.scalerstalk.com/816-attention]

                                   (2)你在大学中体验到了哪种师生关系 [http://www.cnblogs.com/xinz/archive/2011/05/16/2048044.html]

        我觉得像软件工程这种课就应该是“做中学”,因为我们是工程类的学生,首先应该保证的是我们的动手实践能力,当然理论知识也是不可或缺的,但是我们学的很大一部分都是要用到实际中去的,就算是软件工程中提到的PSP,我们也是用到实际的生活中去。就是因为是“做中学”的这种方式,我非常同意教师与学生的关系是教练与运动员的关系,我们在每一次的跑步中确定下一次要怎么跑,这次我哪里跑的不对,下次不这么做了可以让自己跑的更快更好。

        对于上课这件事,我觉得我们在课堂上学的不仅仅是老师传授的知识,也是我们学习老师对待知识态度的一个过程,我们完成老师给我们的任务就是来提升自己的过程,无论是走上讲台来讲一些的东西还是做一些东西来说,都是一个提升自己的过程,无论老师是照着教科书讲还是拓展很多的讲,我觉得他们身上都有我们可以向他们学习的东西。

原文地址:https://www.cnblogs.com/wangyike/p/9658279.html