第一部分:结缘计算机
1.你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答)
我在大学之前甚至连一个萌新都算不上,根本没有任何一点计算机专业的基础。
因此在进入大学之前,计算机对于我来说就是游戏机和视频播放器以及我那几乎忘光的office,编程什么听都没听过,c/c++,python,java等编程语言更是闻所未闻。
我在选择大学专业的时候由于家里人都和我说学计算机太累了,而且出来工作到三十多岁就到头了,因此都不建议我去学计算机,它们都建议我去学数学,不过当时北航招生办的人告诉我北航还有一个高等工程学院,可以在大一一年先不分专业,学习基础课,等到大二在选专业,因为我当时对于我要上的专业没有什么明确想法,因此觉得这样挺好的,可以先在大学熟悉一下,了解自己的兴趣之后再选择自己的专业,于是我就填报了高等工程学院。
使我真正了解编程并喜欢上编程,最终选择计算机专业的就是大一这一年,更准确的说是由于大一开设的C语言课程。由于我之前从未接触过编程语言,开始学的时候很慢,而且我才知道有很多同学高中甚至初中就参加过计算机竞赛,和他们一比我的差距更是明显,像刚开始布置作业的时候,他们都是当天布置完作业,晚上加个班就做完了,而我可能要思考一周以上才能完成。
不过这些都没有使我放弃这门课,主要是因为教授我们C语言课的孙自安老师,他对于这门课讲解的十分详细,完全将我们视为毫无编程基础的学生来教,而且有问题去请教时他也不吝赐教,对我的每个问题都讲解的十分详细,让我逐渐接受并赶上了这门课。
随着自身能力的提高,在做作业时显得更加得心应手,在一次次的问题思考中也深深体会到了计算机语言的优美之处,和同学们交流也对计算机领域有了更加明确深入的认识。
同时也由于知道了计算机专业是最火的专业,于是在大二分专业时就选择计算机专业。
这就是我和计算机专业结缘的历程。
很明显我的条件比起那些博主来说差的太多了,一方面是由于自身条件,自己没有一个探索的心,虽然很早就接触到了计算机,但是只是像一般人那样使用它,根本就没有思考过计算机为什么能做这些工作,它的各个配置的功能都是什么;另一方面也是由于环境原因,在我周围的人中,根本就没有计算机学科这个概念,他们都认为计算机就只是一个玩的或者工作的工具,什么计算机竞赛根本听都没听过。
比如,虽然和博主A[1]一样在小学就接触到了计算机,初中家里也拥有了自己的计算机,但是博主A能自己刷系统,做游戏,学语言,自己却只在玩游戏或者浏览网页。
2.计算机是你喜欢的领域吗?是你擅长的领域吗?
在上大学之前我最喜欢的数学,因为我当时数学在我们班学的是最好的,考试也经常考第一名,而对计算机领域是喜欢的,但是当时对计算机的喜欢和现在不一样,当时就是喜欢玩游戏而喜欢的计算机。后来上了大学之后,由于C语言课而根计算机结缘,后来到了计算机专业进行了系统学习之后,计算机组成,操作系统,数据结构,算法……有喜欢的课也有不怎么感兴趣的课,不过对于不感兴趣的课,告诉自己已经选了计算机专业了,不管这个专业的什么课,都要认真的学完,因此对每门课都认真的学习。后来发现对于所有课,只要你认认真真的学习下去了,真正了解了这门课的内容,老师讲的你都能听懂,作业都能完成,那么你就一定会对这门课感兴趣。
现在计算机已经变成的我最喜欢的领域,对于涉及计算机领域的内容,我都十分感兴趣,,这也是我选择软工这门课的主要原因。
至于擅长,它现在对于我的其他领域而言,已经成为我最擅长的专业了。
3.你热爱这一专业吗?你对计算机的热爱是怎样的?仅仅是口头的吗?
这个问题的回答是肯定的,随着对计算机学习的深入,了解的知识越来越多,不懂的知识越来越多,想要学习的知识也越来越多。
第二部分:在计算机系里学习
1.你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。(必答) (8.26修改)
我相信和我一样,很多人在高中时候听到的最多的一句话就是‘当你上了大学之后就轻松了‘,这也成了我们挺过高中辛苦生活的支柱。
但是,等到了大学之后才发现根本不是那样,大学的课程虽然没有高中时期那么多,那么密集,但是它的难度却上了一个档次,如果想要真正学好一门课,势必要在课后花费大量的时间,而且由于大学学习的*行和接下来你要面向的社会,你必须要不断的学习各种课外知识,与自己专业相关的各种知识,不断补充自己,才能使自己不会落后于人。
其实我没有什么理想的大学,我属于应试教育下的适应性较强的那种人,不管教育方式是什么样的,我认为只要坚持认真学习,不断补充自己就可以了,因此虽然大学的教学方式和高中的不太一样,我觉得自己还是适应的挺快的。
就我大二在计算机专业后学的课程而言,我们学校已经在部分课程上像国外学习了,比如我们的机组课程,OS课程都和美国高校的教学模式一样的,以各个project贯穿课程
也有些正在像国外模式学习的课,比如说算法课,虽然不能做到像国外一样,组成团队每种一个project,但是我们有期末大作业,是团队完成,解决送餐这样的实际问题。
当然也有些课程和国外完全不同,比如数据结构课,整个课程下来没有一个编程作业,期末考试也是笔试作答,这和国外重视实践是很不同的,这些课程要改起来我觉得还有相当长的过程,因为比起实践而言,我们更重视理论知识的掌握,认为有了理论知识后,在做起project来就得心应手了,这是一种根深蒂固的想法,不是那么容易改变的。
2.迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业。(必答)(8.24修改)
说来惭愧,老师说的先写一万行代码这个目标我现在应该是还没有完成,就我目前的代码量而言,大概也就是几千行吧,这主要包括大一C语言,自学python时的code,自学数据结构和算法是的code,机组课程中的verilog和汇编,OS中填补project的code,自学tensorflow时的code,以及一些零星学习其他知识所写的code。
其实最复杂的作业应该是OS课程中的project,不过因为在这个project中大部分的工作都是由别人填好的,我们要做的只是很少的一部分,因此自己完成的最复杂工作应该是机组课程中使用verilog编写一个50条指令的CPU出来,这个CPU要能处理50条汇编指令的流水线工作,在这个工作中,使我更清楚的明白了在一个project中模块的重要性,也知道了要完成一个工程所要拥有的整体思维。
3.科班出身和北大青鸟有什么区别?
我觉得重要的是思维方式,科班中老师不光传授的是知识,更重要的是教授你一种思考问题,学习的方式方法,你在大学四年所要收获的不仅仅是知识,更重要的是掌握一种思考问题的方法,这才是你使用一生的宝贵财富,知识是学不完的,说实话,我们更多的知识不是来自于课堂而是来自于课外,但是你能够吸收掌握课堂外知识的能力确实来自于课堂,而这是非科班出生的人要通过好久的自我探索才能得到的。
4.速成的培训班和打基础的大学教育还有mooc之间有区别吗?
肯定是有的,速成班只专注于知识的传授而忽略的思维的培养,却不知知识是教不完的,只有掌握了学习知识的方法思维,才是真正的人才,即授之以鱼不如授之以渔,因此我觉得,如果急切的想要快速的学习一门知识来使用,是可以去速成班的,但如果一味选择速成班那么终究是学不深的,只能掌握皮毛,无法深入研究,成为一个底层码农而已。
5. 学线性代数和概率论的时候,你是否有过这样的疑问“我们为什么要学这么多数学,这和我们的计算机有关系吗”,你现在是否还有这样的疑问?对这个问题,你有自己的解答了吗?那么其他学科呢?
由于我之前就有学习数学系的想法,所以对数学的作用是了解的比较多的,因此,在开始学习线性代数和概率论的时候,知道数学对各种学科都是有很大的作用的,但是它们具体的作用我只有很浅显的认识,并不具体。
等到大二学习了数据结构和算法之后,知道了概率论在计算机系有很大的作用了,比如在计算时间复杂度和空间复杂度时有很大作用,再如线性代数的矩阵在二维列表和图中有很重要的作用。
其他学科的话对计算机学科也是有作用,比如生物上的神经网络就在卷积神经网络中发挥了作用,所以各个学科都是有其作用的。
第三部分:未来规划
1.对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?(必答)
虽然我知道自己是要读研的,但是最初我对出来干什么想法不是很明确,到底是要在学校或研究所搞科研还是进入公司工作,后来随着不断的学习我发现自己更喜欢实际的工作,也就是能直接出成果,能直接应用的工作,所以我更想要的是进入一所大公司进行工作,如果将来有机会的话,我更想要能够自己创业。
因此对于我的职业道路和社会道路而言,我想要先在学校读研究生,之后看情况读不读博士我还不确定,在研究生期间找机会去微软这类的大公司进行实习,之后出来后有机会的话去它们公司工作,在工作几年之后如果自己能做出来一个独立的东西并且有机会的话就出来创业。
为了达到这个目的我的技术道路主要先是学习基本的知识,之后因为我感兴趣的是深度学习方面的内容,我会学习这方面的内容,理论方面的和技术方面的部分。
2. 你对于实现自己的梦想已经做了或者计划做什么样的准备?
除了课程中所教授的知识外,我学习了人工智能和深度学习方面的内容,同时也学习了tensorflow的知识。
3. 你们马上就要面临实习了,你打算在企业内实习还是在实验室实习?
我其实更像去企业中实习,不过要去实习的内容应该是能让我参与project的公司,不能是干些杂活的实习,如果只是感谢杂货的话,我还是选择在实验室实习。
4. 实习经验究竟有多重要?是否需要马上开始积累实习经验?
感觉这个经验还是挺重要的,看这些博主的经验感觉到实习与在学校内工作是完全不一样的两个部分,实习会让你与别人交流,更深入的体会到完成project的过程,同时也更能体会到了你想要学习的知识。
另外要想学的好,最好的方法是做project实践,在这之间不断的查阅知识,学的会更加清楚,因此企业内部快速的,紧张的,能直接出产品的工作经验是很有必要的。
【1】 https://book.douban.com/subject/4006425/discussion/22803733/