【补交】 软工第0次作业
第一部分:结缘计算机
你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?
我当初报选计算机专业纯粹是受某位读计算机专业的高中学长的影响。在真正高考报志愿之前,我从未想过具体要读什么专业,将来从事什么职业。我的爱好很广泛,历史、小说、科学实验,但编程不是其中的一个。我在高考报志愿之前对计算机的所有接触都是从用户角度去使用的,从未作为一名开发人员使用计算机。到高考报志愿的时候,我拿着自己的省排名,和父母一起去咨询了很多人。其中包括比我大一届,在清华大学读计算机专业的学长。在我们的县城中学,每年大约只有2位学生可以被清北录取,所以这些学生就成了同学们崇拜的对象。而我恰好学习成绩比较好,而且物理竞赛和数学竞赛训练的时候与学长有过很长时间的接触,还算比较熟悉。学长和我聊了很久,不同于那些多年辅导学生报考志愿的老师,他的亲身经历让我信服,也更能体现年轻一代的想法和需求。他成功地使我相信计算机代表着先进生产力,是未来社会发展的潮流。所以,我最后选择了计算机专业,走上了和他类似的道路,现在的我也更加相信他说的那些观点了。
我的条件是比上不足比下有余。比起博主中的很多大佬,我只是一个菜鸡。首先接触编程比较晚,正式的接触要到了上大学之前的暑假。之前还是学习人教版数学选修2-1的时候,学过一点逻辑用语、流程图和Basic,然而由于高考不重视这些我最后都还给老师了。比起很多普通同学,我自信编程能力还算可以。我认为这主要归功于我的态度认真,不轻易放弃,也不像一些同学能划水就划水,所以编程能力和各种基础得到了锻炼和提高。我的各种数学学的也算可以,各门数学课成绩都比较好,在我最后保研过程中起到了决定性作用。
计算机是你喜欢的领域吗?是你擅长的领域吗?
计算机是我喜欢的领域,也是我擅长的领域。这种喜欢是在大学三年中不断的学习中慢慢建立起来的,擅长也是在这三年中培养起来的。我现在更加相信技术,也愿意并打算今后走上技术岗位。
第二部分:在计算机系里学习
你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。
吐槽的地方有很多,比如:女生太少,校风太大,沙河太偏僻,妹子太高冷。然而这些多数都是玩笑话,我真心想吐槽的点只有两个:学院和学校重科研轻教学 和 不以学生为本。或许这两点都可以归结为不以学生为本。在这里学习,会有一种错觉:学而优则科研,搞学术发论文是优秀学生的最好出路(或许这是事实?)。作为一名热爱技术,想将来毕业就业成为开发人员的学生,感觉很孤单和无助。这也是为什么我到了大四已经保研且不缺学分的情况下,仍然选了罗杰老师软件工程的原因。
我理想的大学教育应该是以人为本,以学生为本的。不为任何眼前或长远的利益而服务(虽然很多人认为大学有促进就业和科研的责任),学生们不需要受到很多限制,想学习就学习(不想学习就不学习),想学什么就学什么,不需要为自己的未来提心吊胆、精打细算。(这些当然不太现实,最近读了一些自由人文主义的书,有些受影响。)
听说国外大学的空气的甜的(哈哈)。我没有国外留学或交换的经历,只有一次去英国游学的经历,并没有深入精英教育,只是浅薄地了解了英国高校的基础设施、文化历史、科研成就。给我印象最深的是,英国的学生宿舍真心好,单人间、空间大、网络好(没qiang)、每天还有人做基本的打扫;不过听说住宿费巨贵,牛津大学的是300磅一周(一周的住宿费抵我们2年,不过听在北京工作的学长说,他们在北京租房一个月也要大概2700 RMB),逼的一些家境贫寒的学生在外面住宿。国外大学本科的教育我也不是很了解,不敢妄加评论。
迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业。
我的代码量没有具体统计过,不过零零碎碎加起来应该有上万行。最复杂的软件项目当属大三上的编译原理课程设计,前前后后写了有半个学期,C++完成, 将近4000行;不过我感觉有些地方写的有些繁琐和累赘,如果让我重构的话,应该3000行就可以完成,其中还包括不少的注释。这种实验和原理相结合的课程也是我最喜欢的课了,就像《构建之法》倡导的“Learning by doing",我认为通过这种形式我学到的更多,虽然这同时意味着需要我们投入大量精力。软件工程也是一门这样的课。我相信一个学期后,我做的最复杂的软件项目一定是软件工程中的一个团队项目。
科班出身和北大青鸟有什么区别?
基础会更扎实,对计算机的底层(CPU、操作系统、编译器、网络)了解的也更多,学习能力更强,适应范围也更强。
速成的培训班和打基础的大学教育还有mooc之间有区别吗?
我认为只要认真学习,花费一定的经历,这些途径都可以学到很多知识和能力。
速成班我没有参加过,举个不是很恰当的类比例子:考前突击。考前突击成效快,收益大,短期看性价比很高,花费很少的经历(1天到一周)就可以获得不错的分数,考试之前甚至有种错觉:自己已经学会这门课。然而缺点也是显著的,如果之后没有继续复习或使用相应知识(这种情况是很常见的),突击学到的也会很快忘掉。
mooc更利于自学,适合自制力强且学有余力或没有线下学习资源的同学。mooc课程监督少,需要主动参与,自由度大,自制力差的同学很可能中途放弃。线下的教育适合按部就班的同学,外部的压力和监督更大,自由度也就更小,中途放弃的成本很大,逼着一些同学硬着头皮地刚下去(尤其是必修课)。
学线性代数和概率论的时候,你是否有过这样的疑问“我们为什么要学这么多数学,这和我们的计算机有关系吗”,你现在是否还有这样的疑问?对这个问题,你有自己的解答了吗?那么其他学科呢?
事实上,我还是挺喜欢学习数学的。大一的时候,同学们在抱怨数学课多的时候,我还有些沾沾自喜呢!
数学是学好计算机的基础。如果让我给大一大二3门经典的数学课对计算机科学的重要性进行排序的话,我会认为 概率统计 > 线性代数 > 数学分析。尤其是接触过机器学习、数据挖掘这些热门领域之后,更加感觉自己学的概率统计和线性代数不够用了,经常还需要复习一些具体内容。读很多论文的过程也需要大量的数学背景,而读论文是今后深造的必备技能。
对于其他学科,我认为数学是众多学科的根基,理科尤甚,工科次之。
第三部分:未来规划
对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?
我未来想从事技术类的工作,钱多但不用加班,朝九晚五(哈哈)。
我点技能树的方式是哪个都点一点,主要是软件和数据方面。我认为作为学生就应该这样,也恰好有这样的条件,以后就业后反而约束更多,需要专而精。职业道路的话,期望一直做技术,升职加薪(笑)。社会方面,期望在技术领域也些粉丝和很多志同道合的朋友。
你对于实现自己的梦想已经做了或者计划做什么样的准备?
选了软工(哈哈)。
我大三的时候已经在学院的实验室实习了一年。大四打算出去找企业的实习,最近也投了一些简历,争取多一些校外实习经历。研究生阶段打算,研一好好上课,认真做导师的活,多发论文(毕业有一定的要求,而且评奖、评优会有帮助)。研二,就可以专心找实习和找工作了。