2018091-2 博客作业
此作业的要求参见[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2101]。
2018091-2 博客作业-1
1.在博客园已建立博客;
2.已关注杨贵福;
2018091-2 博客作业-2
1.回想曾经对计算机专业的畅想
选择计算机专业其实也是比较偶然吧,因为是被调剂到软件工程专业的。当时高考成绩不太理想,距离理想的学校差距很大,当时正好山东开始有了平行志愿,前几个都报的有点高了,家里那时候挺想让我当老师的,就让我填个师范学校,其实当时也是为了敷衍一下他们就填了东北师大,也没想到前三个都没过,就被东北师大录了,师范专业分还不够,然后就被调剂到了软件工程。其实之前对计算机专业了解的真的很少,基本上仅限于高中学的很少的Basic语言。
之前有段时间特别喜欢刷知乎,所以对轮子哥还是非常欣赏甚至崇拜的(逃,一开始对于计算机的期待大概就是做一个像轮子哥一样的程序员大佬,按他的说法就是没那个难就进了微软,根据自己的兴趣爱好做项目,做编译器,老师推荐的博客里轮子哥的那篇博客之前也在朋友圈里被好多人转发过,我想应该很多人最开始对程序员的一种向往就是轮子哥那种吧。学院的课程是否和期待的一样,我感觉在我心里还是有一个变化的过程的,开始觉得数据结构、C语言、操作系统等课程以后在工程上用的很少,甚至在网站开发上有些东西根本用不到,离自己期待的还有些远,后来才慢慢发现工程代码也不是纯粹的写各种代码,还是要有思想在里面的,后来大三的时候也面试过好多公司,那时候是真的切实的意识到基础课的重要性,我还很清楚的记得第一次面试的时候面试官问了一个关于进程的问题我就只有印象却什么说不出来的窘境,所以那次面试也非常的惨,我估计面试官也还绝望吧。现在回想一下,特别是在看完几个大佬的博客之后,觉得对于现在的我来说,学院的课程基本上应该是符合期待的,这些都是在以后能用得上的,但是遗憾的是当时没有意识到这个问题,所以现在应该再去回顾一下这些基础课,亡羊补牢,为时未晚,共勉吧!
对于现在的我来说,计算机当时是我喜欢的领域,我觉得计算机现在是最能改变人们生活方式的一个行业,本科时候潘老师经常跟我们说,做项目的想法有很多,随时观察身边的事物就不愁项目没有想法,如果觉得生活中有什么事或者什么方式你觉得不方便,就可以去想是不是可以通过编程的方式去解决,如果可以,就进一步去挖掘这个想法的潜在价值,这样一个项目就可以进行下去了。之后做的国创或者科研立项等等都是在生活的基础上进行的,做过店铺排队的系统,也做过商场的服务APP,我觉得这些都是做出来能对周围人的生活产生积极的影响的,我觉得这个行业很有价值,这个价值不单单是自己如果学的好一点的话薪水可能会高,同时也会有一种自豪感,回家的时候可以说你们经常用到的软件的什么功能是我做出来的,我个人觉得是一件非常有意义的事情。包括现在非常火的自动驾驶、医疗专家系统等等都是为了提高人们的生活水平和改变人们传统的生活方式。
计算机自然也是我擅长的领域。在理论方面,我熟悉基本的数据结构,掌握常用的排序、搜索、查找等算法,对操作系统以及计算机网络都有一个清晰明确的认识并对计算机基本组成原理有深入的学习研究。在工程方面,本科阶段我做的是Java开发,也学过初级的软件工程课,从需求分析、代码编写、单元测试、回归测试等过程我也经常完成,Java集合框架、设计模式、多线程、网络编程、垃圾回收机制、Java虚拟机等我也了解其原理,对一些常用Java框架SpringMVC、Mybatis等能够熟练使用,项目开发过程中使用github作为代码托管工具、一个月至少写两篇技术博客等,这都是我通过上课、实践或者网络等方式学习到的专业技能,这些技能可以支撑我完成计算机领域的一些工作,所以计算机现在是我擅长的领域。但是擅长也不是说我对这个领域达到精通的程度,我对自己也有清晰的认识,计算机领域实在是太宽泛了,我只是在我现在处于的这个阶段达到了计算机从业者的基本资格,还有非常多要学习的地方,相信通过今后的学习,可以把自己变得更好。
2.作为研究生的我现在具备和欠缺的知识与技能
(1)我现在具备的知识与技能:
- 计算机基础:
通过在考研的过程中对专业主干课的强化,现在对计算机组成原理、数据结构、计算机网络、操作系统的基本内容有较深的理解; - 数学基础:
同样是考研过程中留下的宝贵经验和技能,掌握微积分、矩阵、概率统计等计算机中常用的数学技能; - 英语基础:
每天坚持在扇贝单词上背单词打卡在英语流利说上阅读英文原文新闻,目前扇贝已打卡584天,流利说打卡39天,阅读六级和研究生考试难度的文章基本没有障碍; - 项目经验:
自己做过国创、科研立项等项目,做过的项目包括web、微信服务号开发、微信小程序、安卓开发等多个方向,对Java语言有较深了解; - 自学能力:
项目开发方面的东西比如Java、机器学习、Java项目开发等大多数都来自于自学,自学平台包括慕课网、网易云课堂、腾讯课堂、博客园、csdn等网络学习平台;
(2)我现在缺乏的知识与技能
- 感兴趣领域的知识框架:
我现在想从事的方向是机器学习方向,但是只了解梯度下降、逻辑回归等基本算法,对神经网络和一些非监督学习算法理解不够,对深度学习框架等了解太少,对数据挖掘没有清晰的概念,对于数学上一些比较复杂的公示算法不够了解和熟练; - 英文写作能力:
英文写作能力相对薄弱,还不能完成英文论文的写作,既缺乏专业词汇的积累也缺乏英文论文结构的整体把握和行文风格; - 项目中的协作能力:
本科阶段没有加入工作室锻炼,做的项目大多数是自己在做,国创的时候图省事把工作都自己做了,对工作安排和分工没有清晰的规划能力;
3.我选择的努力方向--工程项目
(1)我的优势:
- 兴趣和热情:
我对自己选择的方向很有兴趣也有很大的热情去学习相关内容,有动力也能让我可能比其他人有优势,但是,这只是很小的影响因素,读博客的时候看到过这样一句话,觉得很有道理就写下来了,“兴趣和热情只能让你很执着,但并不一定能让你走好这条路,只有你的能力和你的强项才能让你走好这条路。”所以兴趣和热情在其中的影响远不如能力来的重要,而且大多数情况下二者是相辅相成的,接下来就说能力了; - 计算机基础:
数据结构和算法在工程中有极为重要的作用,基础可以使我在工程中更加得心应手; - 项目经验:
如上文所说的,我虽然在团队协作上存在不足,但是也有一定的项目经验,对项目的流程相对比较了解; - 自学能力和解决问题的能力:
做项目是离不开自学能力的,做项目的过程中会遇到各种困难,之前我的解决办法都是博客,个人觉得博客是极好的平台,项目中的功能实现和出现各种bug的时候博客上基本都有解决方案; - 有很多交流渠道:
之前毕业的同学或者学长学姐很多已经入职各个互联网公司,可以向他们请教;
(2)我的劣势
- 可能找不到自己想要的环境:
经过多方观察和打听,学院里机器学习与数据挖掘方向的导师基本上都是偏向理论,研一好多导师都不会让进入实验室,这对于那么吃GPU的深度学习、计算机视觉等都是障碍,比较担心理论联系实践的这个过程,所以自己也在导师这块一直纠结; - 时间:
最近就开始很明显的感受到时间真的非常紧张,研一课程也不少,还得看各种机器学习的大部头、烧脑的数学,我想研一上完就出去实习,所以每天时间都非常紧张,现在真的后悔本科浪费了太多时间在乱七八糟的事情上; - 心理上的不自信:
考研失败后感觉自己少了很多以往的精气神儿,每天走在学院遇到之前的学弟学妹们都很羞愧,每天都在自我否定中浑浑噩噩,有时候也开始拖延,开始拖泥带水,最近虽然有好转,但是还是跟以前差太多;
(3)我在本学期的规划
- 找一个很好的导师:
现在已经这个时候了,希望能找到一个研一可以进实验室的导师: - 把数据结构再过两遍:
第一遍重新回忆一下知识点,第二遍把算法都用C语言实现一遍,好几篇博客里都这么说,我想应该很有用; - 使用Python:
语言很容易学,但是更容易忘,所以边学边敲,自己做一个小项目最好; - 读书:
想把博客里推荐的几本书--《编程之美》、《编程珠玑》、《设计模式》、《计算机程序的构造和解释》、《设计模式》等几本书找个时间认真看一遍; - 参加Imagine Cup:
找三个队友和一个指导老师做IC,IC这两年的获奖作品基本上是人工智能+医疗+Azure,我有现成的Azure资源可以用,也可以锻炼自己的编程和团队协作能力; - 有机会的话参加Hackthon:
已经找了个其他学校的队友,说有比赛就一起整,不过Hackthon一般都在大城市,到时候也希望他们报销差旅费吧(逃; - 把课程学好:
目前上的几门课感觉都挺有用的,应该好好学,成绩现在无所谓了,就看自己能收获多少; - 努力发AAAI:
认识一个大佬一年能发接近100篇AAAI,我达不到那种程度,量力而行看看能不能先发一篇试试水,之后有了经验再定新目标;
4.我对这门课的期待
听了老师的第一堂课,我的期待当然是可以真正把软件工程学会、学懂,本科阶段学习过软件工程这门课,虽然也会有作业,但是没有现在这么正式,没有这么多作业,之前学的比较枯燥,考试之后基本上也忘得差不多,希望通过这种新的学习方式最后能让自己独立或者能带队完成一个整个的项目,对软件工程的各种模型和方法、流程有深入的了解,在面试的时候能从容不迫。
在写这个博客之前对一周用在这门课上的时间还缺乏一个认识,但是我仅仅完成这一篇博客加上之前的材料阅读已经用了235分钟,接近4个小时的时间,这还是作业比较少的情况,保守估计感觉每周最起码要16个小的时间才能完成基本的课程作业,每天150分钟,总共一周150*7=1050分钟,这是我目前根据实际情况作出的判断,可以再根据下周的情况在多一个训练集的情况下再做个计划。
5.小结
“是骄傲、虚荣、嫉妒和报复,支撑你走到今天。你的成长依赖这些负的能量,而非天生的善良。”看到这句话挺震撼的,就写在这里了,共勉~
2018091-2 博客作业-3
一周的时间读完整本《构建之法》,也很难非常细致的提出问题,我就把我在读的过程中遇到的问题写出来,也不仅仅包括理论的内容,在按照书中的实践要求进行操作的时候,我也遇到了不少问题,下面是我的几个问题。
1.书中第二章介绍效能分析的名词解释时,对Exclusive Time的解释为:所有在本函数花费的时间,不包括被调用者使用的时间,与之区别的Inclusive Time在书中的解释为:包含本函数和所有调用者使用的时间。从字面上看,Exclusive和Inclusive应该有对应相关的意思,也就是后面是否包含的时间应该是同一个时间,但是书中的解释前者是不包括被调用者使用的时间,后者是所有调用者的时间,二者又不是对应的,我看的时候就闹不清到底是调用者还是被调用者的时间,所以就搜索了一下,以下解释来源于微软官方文档:"Exclusive time is the amount of excution time that passed while within that function excluding the time spent in functions called from that function.","Inclusive time is the amount of excution time that passed while within that function including the time spent in functions called from that function."结果和我预想的一样,二者是excluding和including的区别,再根据文档中的说明,这里应该都是被调用者的时间。
2.在完成命令行执行一个C++程序的实践作业时,我忘记了怎么操作,所以在谷歌上搜了一下,里面的方法是使用VS里的cl对C++程序进行编译处理,我照做之后发现并不可以,一本基本的HelloWorld程序都编译不出来,说缺少必要文件,于是我根据报错内容继续配置机器的各种环境,最后无果。然后我就想直接用VS跑一下试试,结果,还是标准的C++的HelloWorld程序,只有一个头文件iostream,结果报错出了1294条错误,之后也看了各种博客,试了各种方法,都没用,最后就采用了一个很极端的方法,把VS卸载了重装解决了问题,所以想问一下老师,这是出了什么问题?以后出了这种问题,应该到什么地方去寻求帮助呢?
3.书中的第4、5章主要说了两人合作以及团队和流程,与人合作的过程中难免会出现各种各样的问题,比如在两人合作的磨合阶段,这段时间是从笨拙到规范转变的重要过程,加之可能结对的人基础就相差甚远,出现的矛盾会更多,在这个阶段应该怎样合理的处理这些矛盾才能使磨合阶段尽快过去呢?
4.还是团队合作的一个问题,之前就很困扰我,书中说了好多软件团队的模式,其中有一个叫做主治医师模式:就像在手术台上那样,有一个主刀医师,其他人各司其职,为主刀医师服务。但这样就退化为“一个学生干活,其余学生跟着打酱油”这种现象。从我的个人经历来看,本科的时候从做国创、科研立项,到各种编程的课堂作业,都非常频繁的陷入到这种模式的弊端当中,团队中只有少数人做事,剩下的都比较消极,想着坐享其成。既然有这种模式存在,那么有没有什么比较有效的方法可以杜绝这种不好的风气和习惯呢?
5.在第7章的充分授权和信任一节中说到:在一个高效的团队中,所有的成员都应该得到充分的授权,他们有权在职权范围内按照自己的承诺完成任务,同时,他们也充分信任其他同事能实现各自的承诺。但往往事与愿违,在公司可能还能完成的比较顺畅,但是在学校范围内,这一点就变得很难,本科时候有课程是要完成一个网站设计,也是分工完成,但确实就有同学明明知道自己的任务是什么,却不想去完成,但为了最后拿到一个好的成绩,往往会有一个人自愿代替他完成,在这种习惯下以后的任务就很难继续分配下去,那么这个时候的充分授权和信任就很难实现,这种信任是不是要有某种前提?如何能培养出这种信任感?
2018091-2 博客作业-4
能力1:
想了半天也没想出什么除了体重之外其他能超过周围的人的,反而想到了好多落后于他们的,那我的技能可不可以是明明有190斤但却看不出有那么重,看着就跟160似的;
能力2:
另一个就是我在扇贝打卡的天数应该能超过90%的人,直到今天(2018年9月13日)总共为584天;
能力3:
抖个机灵,据我所知,咱班应该没有MSP(微软校园精英),那我就是独一无二的了,作为一个MSP认识了天南海北的大佬,向大佬们学习,每年还能去IC中国赛区总决赛观摩学习,还可以参加Ignite大会,参观centerOne什么的;
能力4:
托MSP的福,可以有vs企业版订阅和每月$150的Azure额度,班里90%的人没有自己搭服务器科学上网,所以我还是fb和ins的活跃用户(逃,吃完晚饭还跟一个忘了怎么加的好友的摩洛哥老哥尬聊了20分钟;如果没记错的话,我还有czh的fb好友;
能力5:
90%的人都没有我关注邹老师的微博早,刚加入MSP的时候广加MSP好友的时候就通过某种微博的推荐机制关注了邹老师的微博,大家也可以关注@程序员邹欣,邹老师的微博还是蛮有意思的;
这种抖机灵的能力还是蛮多的,就不抖下去了了;
2018091-2 博客作业-5
经过多方打听和沟通,有幸采访到了徐绍斌学长,学长他们小组当时做的项目是一个贪吃蛇的游戏,学长也很热情的接受了我的采访,以下是采访过程;
张:当时的项目有多少用户,给用户多少价值? 现在还有人用吗?
徐:当时做完用户还稍微多一点,那会大家都比较好奇我们做的贪吃蛇到底是什么样的,所以除了组内开发的同学,周围的同学也都玩过我们的这个游戏;因为我们做的是游戏嘛,给用户的价值我觉得除了休闲娱乐之外就是让大家觉得做游戏相关的东西没有那么难,我们自己也可以做出游戏来;现在没人用了,因为你也知道,贪吃蛇大家都玩过,经过一段时间之后兴趣就消退了。
张:这个项目能否给我们团队继续开发,源代码/文档还有么?
徐:当然可以了,你们可以拿过去继续用或者看看,代码放在GitHub上,不过我建议你们做一个新的,毕竟贪吃蛇继续开发的空间可能没有那么的大;
张:项目开发有什么经验和教训?
徐:当时我们组7个人,5个人都没有什么做项目的经验,所以花了挺多时间学习项目的整个流程,我估计你们到时候也差不多是这种情况,你们组之前有经 验的可以带一带其他人,初期多交流开发流程和想法,后期效率能高很多。
张:对学好软件工程有什么建议?
徐:多看看构建之法那本书,在做开发的时候把自己做的和书上说的对应起来,让步骤明确,每一步该做些啥尽量心中有数,整个过程做下来你们会有很多收获的。
以上内容省略寒暄感谢过程,在这里再次感谢学长。
2018091-2 博客作业-6
说来惭愧,现在代码量也就5000行代码,这些里甚至包括Java的各种类的编写、数据库字段名等非逻辑代码,以前做的项目实在是太少了;
个人觉得优秀的和一般的计算机专业学生为了有资格入职互联网公司需要的有效代码行数最起码是20000和10000行有效代码的;
本课程结束希望自己能再写5000行有效代码,那种练习语法的自然是除外的,整个课程18周,每周需要的平均代码量为300行有效代码;
2018091-2 博客作业-7
关于上课认真听讲和师生关系的阅读心得
上课认真听讲这事,找一个班的小学生和同等人数的大学生班级作比较,我觉得可能小学生会表现的更好一点。似乎一直都有这样一个现象,在大学这个本该比其他时候心智更成熟、做事更稳重的时期,更多人放弃了之前的各种优良习惯,晚睡晚起、上课玩手机似乎有点成了许多大学生的常态,我也是俗人一个,也是这些颓废大学生中的一员,想想自己当时为什么不努力,我也反思过很久,得出的结论就是自制力太差,自己太懒,又缺乏一种责任感。好习惯的养成需要时间,懒散确很容易,我还记得我们高中语文老师给我们讲过关于垃圾堆的道理,大概是这么说的,一个地方,如果一直是干净的,那么它能保持整洁很长时间,在某一个时间,有人往那块扔了一片垃圾,那么很快,周围的人都会以为那是个垃圾堆,都往同一个地方扔垃圾,过不了多久,那个地方就真的变成了垃圾堆。人的坏习惯也是如此,可能我们第一次不认真听讲就是因为小点点小事耽误了中间的一小段时间,就像微博里有人说过的段子,上课的时候不小心笔掉了,低了个头去捡,数学课就再也没听懂过。我反而觉得这挺真实的,这一小段时间就是最开始的那一点垃圾,你扔过去了没捡起来,久而久之,就变成了垃圾桶,就离大神们远了很多。更久之后,就真的丧失了专注的能力。现在正值开学,每次开学都会有很多人立下各种壮志豪言,上课也都能认真听讲,但是过了一周、两周、n周之后又是该干嘛干嘛去了,不知道有没有人能有耐心读我写的又臭又长的博客,如果看到这里的话,我希望我们可以一起履行现在做的承诺和规划,一点一点再把好习惯找回来,还是那句话吧,共勉~
关于师生关系,我也非常赞同教练和学员的关系,我觉得这种关系除了文章中说的那些之外,还有一个相似之处就是健身很多情况下也是开始很有劲头,但是过了一两周之后就丧失了激情,开始觉得健身很累,很难坚持,就放弃了,当然这只是个题外话,一笑而过就好。当然更希望我能够做一个努力的学员把自己练的好一点,生活中也是如此,最近非常热衷于减肥,要是在现实中的健身能一直保持专注也是极好的!