On the way

大三下快结束了。从大二转到计科到现在算是学了编程两年了。
在准备考研之前,总结下这两年吧。

可以说从大二下开始才算是入了编程的门。在这之前,
大一学C++,当时根本不懂,就考试之前拿着课本赶紧看,什么多维数组,指针,类,虚函数,看着看着就记混了,当时只想应付考试,复习的时候只知道看书,根本不上机练习的。想理解并且记住是真的难。大一下在生科学的数据结构也等于没学,就考试周之前算略懂了套路。
到大二上,再一次学计科的数据结构,也没好好学,只是理解了包括树以前的基本概念,图一直都没看。直到考试才匆匆弄懂了希尔排序,BST什么的,图还是基本不懂。到最后六个作业要结束了才会写第一个多项式链表加减乘除那个题。

但大二上期间把计科的C++的教材认真看了几遍,并把例子都敲了下。可以说终于不再是纯小白了,至少会用C++,理解了初级的东西。当时还把之前生科那本数据结构书上的链表,栈,队列,树的内容照着敲,但理解的还是一般。
直到最后会了多项式链表那个题之后偶尔还对链表的next产生疑惑…,没弄清楚指针。

所以可以说截止到大二下开始,我的水平是:

  • 会C++

  • 数据结构,图以前的还行,(包括)图以后的不会。

  • 其他技能基本没有

大二下的计组,数据库,也是马马虎虎,java选了但是混过来的,考试一点不会勉强60…。为了补数据结构,买了邓俊辉那本数据结构,跟着mooc学,大部分代码都实践了,包括之前的数据结构的书又反复看了很多遍。终于数据结构感觉都理解了。第二次感觉入门了(第一次是在认真看完计科的C++书之后)。
还买了《C++ primer》大致地都看了一下,除了基础语法又打牢了一些之外还会了STL基本用法。

大二下结束水平:

  • c++还可以,也会STL
  • 数据结构自认为都理解了,没有问题
  • 学了计组、数据库,但是考完试就忘了…
  • 暑假把java补了一下

真正好好学,进步最快的是大三上的那段时间。

  • 买了《算法》,把数据结构的重点又实现了一遍,这时候各种排序才理解的非常清楚(之前学数据结构一直没看排序那部分)
  • 刷了一段时间leetcode以及其他oj,对编程能力提升很大。回头看大二数据结构那些题感觉真的好简单,为什么当时就不懂呢…

这学期专业课有操作系统 ,编译原理,计网。当时并没有意识到这三门基础课有多重要,感觉没什么用,就又打算混过去。期间大部分时间都花在oj上了,还顺便学了下cocos2d-x。后来后半段觉得不能就这么再混过去了,才把这三门课拾起来。

  • 操作系统留的实验室MIT的jos。算是半混过去了。不过后来又把答案的代码认真看懂并写了实验报告算是弥补了。理论部分就是看学堂在线的视频。

  • 编译原理一开始看龙书,感觉难得爆批,又听说这课以后基本用不到,真的是一点都不想学了。但多亏了我们编译原理老师,真的很负责任,大学还没见过这么严格课。所以混不过去了只能好好做。汇编不会,就看了王爽的《汇编语言》前半部分。然后在网易云课堂找到了中科大的编译原理课,看了才恍然大悟,也不难嘛。这里真的得吐槽下龙书,对新手太不友好了。然后又回头把龙书看了下,好理解多了。最后从词法分析器,语法分析器到最后的C编译器都自己实现了。虽然功能简单但要求的都实现了,花了很多功夫,也算目前为止做的最大的一个东西了。给编译原理老师点赞,如果不是老师的严格要求,现在我对编译原理恐怕还是又厌又怕。

  • 计网就不说了,因为本身基本的东西比较简单,补起来快。看看书就好了。

总之大三上这一学期可以说是最充实的一学期,学到的东西远远多于之前两年。感觉真正入了编程的门。
大三寒假在家20多天

  • 又再一次补了javaSE
  • 跟着视频去学了html,css,mysql
  • 看了一些javaEE的东西,至少知道了一些名词…比如servlet,三大框架什么的。
  • 装了linux,win双系统。想学linux,以及linux C编程但最后也没看几页。
  • 以前一直不想考研的,大三上刷OJ,其实一直想的是赶紧刷完算法题然后做个项目,毕业工作。但这期间通过看知乎,论坛等等,明白了计算机基础真的很重要,所以好好学了那三门专业课,就没有去接着刷题以及做项目什么的。最后在家认真考虑自己的情况后还是决定考研。

大三下课变少了。一方面复习了些考研的东西,一方面开始看CSAPP。由于选了移动平台开发这门课,也做了些安卓。
大二就买了CSAPP准备看。但由于汇编太薄弱,每一次看到第三章后半部分的时候就放弃了。
看了小土刀的博客后,决心好好看完CSAPP并做完配套lab。但这一次还是在第三章的时候卡住了,又搁置了一段时间。
在反复思考学习方法和路线之后,终于决定必须攻克了CSAPP,就像小土刀说的

谁不想用最简单的方法获得最强大的能力,但是这又怎么可能。捷径,如果指的是最短的路径,那么也就是梯度上升最快的路径,更是最难的路径。靠什么去走完这段旅程呢?
靠自己。靠自己的思考。靠自己的百折不挠。

经过两个月终于把CSAPP和lab(除了architecture lab)都完成了。反思自己,以前学习总是想为了什么,什么有用就去学什么,所以每当看到前边那些汇编代码,想到自己以后可能很少会用到这些知识的时候,就总想赶紧跳过。为了现实的目的去学习固然也是对的,但是它让你少了一些沉静,多了一些浮躁。而学计算机偏底层一些的知识是不能急的,总想快点学完而囫囵吞枣是学不好的。
当你真的沉下心来,为了知识本身,为了那种对原理通透的感觉去学习的时候,什么都无法阻挡你的前进,路上还会充满乐趣。

这一次终于坚持到了最后,解锁了CSAPP!
CSAPP让我对学过的计组,操作系统都有了更清晰的理解。
掌握了C和汇编,弥补上了一直缺少的东西。
linux下命令,gcc,gdb等以及git都会了一些,而且有了学习linux兴趣。对考研计算机专业课的复习也会很有帮助(也是我最决定看CSAPP的一个原因)。
不得不说CSAPP真的是一本神书,配套的lab更是精华所在。都完成后,对内功,即整个CS体系的理解和计算机基础都有很大的提升。对自己的自信心也有很大的提升。


考完研后还想看的:

还想要看的:
《编码》
《SICP》(mooc)
《编译原理》 compiler这门mooc

《c++primer》配合习题要好好巩固
python,shell
《算法4》配合mooc

刷题:
leetcode刷完
PAT可以考试一波
《编程珠玑》
《剑指offer》
java通过《算法》这门课再进一步巩固,总结java类的一直重点,不熟的地方理解,总结

Linux方面:
关于linux下工作,命令的书籍:《鸟哥的linux私房菜》或者别的书。
gcc,gdb,makefile -> 《程序员的自我修养》
《Unix编程艺术》
《UNIX环境高级编程》

git、github 配合mooc
完成上边这些,计算机内外功就都挺扎实和全面了,可以说九阴九阳都会了。之后再学其他招式肯定轻松很多。想想还有点激动…

完成一项之后一定要总结成体系。只学不总结,那忘得比学的还快。

这学期要补大一电路的课,和学当时模电一样难受…,不禁觉得能学自己想学的东西,就挺幸福的了。

差不多就这样吧,到了大三结束,终于觉得自己初步明白了CS的道路要怎么走。只有不断地学习,去思考,才会让你明白到底应该怎么学。

我们羡慕成功的人。乔丹六冠王篮球之神,科比无数次绝杀比赛,詹姆斯一比三大逆转终为克城捧杯。还记得刘翔雅典跳上领奖台的一刻,让多少国人自豪。里约中国乒乓,捍卫国球荣耀时的感动。Faker从巅峰到底谷再回巅峰的传奇,又让多少人热血沸腾。

我们都为英雄热血,为传奇感动。梦中谁不曾幻想过自己是他们中的某一个,甚至是小时候的奥特曼,孙悟空。

但他们谁又不是经历了千辛万苦?考研难么,难。但有上边那些人达成的成就难么?你敢幻想成为他们,那现在,考研这么一件远不及那些事的难度的事,你都不敢接么?你的勇气,难道只活在梦里?人生只有一次,为什么不follow your heart?

所以没什么好说的,也没什么好犹豫的。选的学校只有一个,也是最初的选择。

暑假就要正式复习了,加油吧!


清华计算机系已录取,我没有让自己失望。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值