一、First项目git地址: https://git.coding.net/isak_even/First.git
二、阅读推荐博客回答问题
问题1:你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?
报志愿的时候我对计算机专业并不太了解但觉得应该是一个有趣的专业,所以把它放在了志愿的第三位,有点机缘巧合,我最终来到了东师,来到了计算机专业。
在正式开始大学生活之前,我对自己的未来有不少担忧,因为虽然是理科生,但是数学并不好,来到了这个需要数学基础、计算能力的专业,怕自己会不能适应,甚至跟不上课。而和高中就接触过编程或者信息竞赛的同学相比,自己也会更加忐忑。除了这些比较担忧消极的想法之外,我也同样怀有对这个专业的好奇和热情。我觉得这两点很重要,甚至到现在的大三我也这样认为。
之前说过,我觉得计算机专业是有趣的。在大一接触过一些基础课程和讲座后,这个有趣的印象更加深刻,这个专业是理论和实践结合的,即便上课时间有限,但是课余时间我也会想如何把课上的内容实现出来,我尝试用C语言写学生管理系统(当时在学指针),尝试用java做一个连接数据库的有界面的系统(暑假的时候做的),尝试做一个网页,尝试把tcp通信运用在机器人上面(跟着老师做的一个比赛),尝试用python做简单的数据分析......虽然我做的东西有点平平无奇,但对于我来说还是很有收获的。我对计算机领域的事情充满了好奇,这是个高手云集,让人忍不住想看的更多、学的更多的地方。兴趣是最好的老师,我觉得兴趣也是我最大的动力。
和这些博主相比,我少的第一个东西是想法和目标(个人能力方面目前还是巨大的鸿沟,就不在能力上做比较了)。大学首先考虑的是方向、目标,考虑自己要做什么。比如在这个大佬 的博客中,他的梦想就是做游戏,虽然起初有点迷茫,但是之后的每一步他都没有偏离这个目标。我羡慕这样的人,有想法、有目标。这个领域太大了,我对它们感兴趣,但还是没有找到想要一直从事的方面。第二个就是系统化的学习,到目前为止的学习生活中,我确实学了很多基础语言,但是在实际应用中发现我的整个项目结构不够规范,导致做出来的东西像是毛线球(表面光滑,里面乱如麻)。所以我有点希望在大学课程中,老师在教授基本语法的同时也可以讲授一下项目的大体框架,这样会让我们对知识的掌握更快一点。
博客中提到的“程序员不是大半年就可以训练出来的。 要不然大学几年的基础课程开设来干嘛。”和“能力这个东西,并不是交了钱,混了时间。拿个毕业证就可以的。”这两句话让我觉得有些启发。其实有段时间我也会想和培训班那些直接上完几期课就找工作的人相比,我们这样学的理论多一点,基础课多一点的人不一样在哪里。现在好像有点明白了,任何技术不是一蹴而就的,需要实践更需要时间,需要努力更需要有用功,大概就是这种不一样吧。
我现在的大学生活还算充实,课堂时间和学习时间在跟着老师学东西,平时也会借助网课,博客来学习和解决一些事情,而课余时间在做志愿者。但还是觉得自己学到的东西少,之后的时间我想去看一些实体书来夯实基础。
问题2:你理想的大学应该是什么样子的?
我觉得大学时期,这是一个最接近社会的时期,也是一个最能成长的时期。我在高考结束的那一刻其实就在想象我的大学是什么样的,应该是自由的,有思想的,有趣的,与现在的生活截然不同的。而现在,已经在大学度过了两年时光的我再次去想“理想的大学是什么样的”,我想说,理想的大学的图书馆不再是自习室,理想的大学每一堂课都是有意义的,理想的大学不一定让人舒适快乐,但会让人不断前行。
《大学》中说“大学之道,在明明德,在亲民,在止于至善。”这位知友所描述的大学我很向往,真正的大学,每个人都有学习能力,都保有初心,拥有对学术的好奇与热爱,也不会成为井底之蛙,不会止步不前,更不会只言说不实做。
我还想谈谈理想的大学时期的自己。我一直是个中庸的人,成绩不好也不坏,性格也在孤僻和乖巧之间吧。在大学对于课程的态度就是这篇博文中提到的,对自己认为有用的有兴趣的专业课就认真听,对一些选修课就不那么重视了,现在相像自己还是太幼稚了,课程有用无用不是一个大学生的格局可以判定的。所以我理想中的自己,是可以不带情绪、不带偏见的去听每一堂课,学好每一门课,是可以专注如一的做好一件事,是更优秀更有目标的自己。
问题3:对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?
近几年人工智能、深度学习等一些词已经成为高频热词,我对这方面的事情很有兴趣,在知乎上找到过这两张图(原文点这里)
这些图片让我了解了这个方向的一些知识,我想尝试去在这个方面做些东西。大二时有幸在老师的实验室做过机器人的比赛,那是一个仿人机器人的接力赛,第一次接触,主要在跟着学姐做,做了有一个月本想自己做得还不错,但比赛那天才意识到自己和别人的差距在哪里。虽然比赛结果不尽如人意,但我真正地被那两天比赛的气氛所感染,知道自己有很大的不足,所以在暑假有自己学习关于python的基础知识,之后想进一步了解算法方面的知识。我觉得在本科学习这些东西有些困难,所以想考关于这方面的研究生,希望之后在导师的指导下可以加快学习的步伐。而现阶段学好专业课是首要任务,之后会向学姐学长请教这方面的知识,以及如何入门。
参考博客:https://www.cnblogs.com/geniusalex/p/4928713.html
http://www.scalerstalk.com/816-attention
三、《构建之法》阅读后产生的问题
1. 在第2章“个人技术和流程”的2.1.2节中让我清楚地知道了什么是一个好的单元测试,但是在这一节的“单元测试应该集成到自动测试的框架中”,虽然知道了为什么这样做,但不清楚如何让它集成到自动测试的框架,而且不同的单元测试它的测试框架是一样的吗?如果不一样,那在写完代码后既要做一个单元测试,又要做相应的自动测试框架,会不会降低工作效率呢?在2.1.3的“回归测试”中我也有同样的疑问。
2. 在第6章“敏捷流程”中感觉自己受益匪浅,这是在计算机课程中第一次知道“敏捷”还有这样的涵义。书上说它是价值观和方法论的结合,但通读整个章节,感觉自己对敏捷的概念并不那么清楚,是不是每个项目都适合用敏捷流程呢?后来发现邹老师也有讲解(https://www.cnblogs.com/xinz/p/3852390.html),不知道有没有实例分析可以让我更深入的理解。
3. 在阅读第7章“MSF“基本原则时我看到第五条是“交付增量的价值”,我不太懂,通过网上查询得到了一个概念的解释“增量交付是指为及时反馈和接纳,频繁向客户交付连续改善的工作产品”,那“频繁地交付”这件事是出现在项目过程的哪个部分呢?是完成一个板块还是完成所有工作后再进行增量交付?在第六章敏捷也看到了交付,和这里的交付是一样的吗?
4. 第8章“需求分析”的8.6节“计划和估计”提到不是软件项目的估计难,而是所有估计都难。既然估计难,那么除了在集体中用团队的方式进步,还有什么估计能力提升的方法是针对个人的吗?
5. 书中第9章“项目经理”的9.3节中说“一个团队可以有多个PM(Program Manager)”,而有多个PM就一定会在一些决策上必定出现歧义,出现歧义时如何解决呢?提出这个问题后,我在这一节的末尾找到了答案“PM太多以后,大部分决定是经过平等而反复的讨论协商折中得到的”。出现歧义会协商,但协商就会有妥协让步,最后的决定权是不是在Project Manager?协商后得出的中规中矩的解决办法真的是最终方法吗?现在有没有更好的解决办法?