来由
这段时间真的很忙,忙得都没时间好好看书,好好写博客。
每天都要上班,还要忙着保研的各种事情,有时还在保研和直接工作中纠结, 导致一有一点空闲时间,就什么事情也没想干了。
还好,现在这些事情也终于告一段落,也不用再去纠结什么了,终于可以静下心来 去做自己喜欢做的事,踏踏实实地学习某些东西了。
但是总结一番还是有点必要的,不然这些日子的纠结不是白费了吗。
我为什么选择读研
其实这个星期的前两天还在纠结当中,可是就好像砸中牛顿的那个苹果一样, 某种东西突然在我的头脑中闪现,让我顿悟,这个东西就是:梦想。
梦想,别扯淡了,这年头谁还看中这个。
我看中,我认为一个人一旦失去了梦想,活着也就没有什么意思了。 能支持一个人不断向前,不断超越自己的动力,也只有梦想。
我的梦想又是什么呢?很简单,在自己所在的领域有所建树,然后把 这个领域的技术能够向前推动一点,哪怕只是一点。而这个简单的梦想, 仍需要很多的努力才能实现,我的希望是能够一直在这个努力的过程中, 不要因为其他的东西的干扰而偏离了梦想。
而我差点因为微软的offer而偏离,极高的工资,舒适的工作环境,做的却 不是自己喜欢做的事。我明白,相对于其他在微软实习或者工作的人来说, 我还是相差太远。他们都是计算机竞赛的佼佼者,身上顶着各种光环,在计算机方面的积累比我 多了好几年,单就他们做过的题,我可能一辈子都来不及做完。我现在的学的东西也不是很扎实, 什么都知道一点,可都不精,如果再在微软待下去,或许就会沉浸在这种安逸的生活中,无法再 往一个更高的方向发展了。对于正值奋斗年华的我来说,过分的安乐真的不是什么好事。 而且在微软做的不是我喜欢做的事,要想突破感觉还是太难了。
那为什么不把工作当成白天的事,然后空闲时间去做自己喜欢做的事呢?我也考虑过这个问题, 最后发现这很难成功。因为这样每天最多能花两个小时在自己喜欢做的事情上面,而同时可能会 有各种事情打乱你的计划,想对于正式工作的每天八小时,这其中的差距可想而知。在互联网这样一个 高速发展的行业,低速成长是很容易被淘汰的,这样的过程,最多持续半年,我想就会终止,然后渐渐地 开始沦落为毫无激情的上班族。能够通过用这种方式坚持的,至少在中国我还没有听说过。
所以,我还需要很多的积累,扎实地磨练技术,同时更加开阔自己的眼界,而这些,通过研究生的三年,能够做到。
对自己目前的定位
总的来说,就是接触了很多的东西,但没有什么谈得上精通。
语言
语言确实用过很多,上过两个学期的C++课程,用C++写了数据结构的作业和USACO上的一些题,对于C++,应该算是最 熟悉的语言之一了吧,它的语法,还有很多相关的概念,包括虚函数,多态等等,都已经掌握了。可是不能算精通,对于它 的掌握仅仅局限于课堂,没用过STL,看过的书也就只有《C++ Primer》一本(教材除外),也没用它开发过大型的项目,对于 C++这样一门庞大的语言来说,这些还远远不够。
关于C,也就用它写过操作系统的大作业,对于Unix环境下的C编程有一定的了解,现在如果要用C写一个大型的项目的话, 应该也没有什么问题,但如果要称得上是精通,还需要大量的练习才行。
关于php,python,现在在上班的时候用得比较多,也正在处于一个水平稳步上升的阶段,我想经过一年的积累,这两门语言应该 是能够相当熟练,甚至是精通。
关于javascript,CSS(如果它也算语言的话),基本的语法也都知道,可是积累还远远不够,特别是javascript,这门上手容易,精通确 很难的语言,因为工作主要偏后端,所以熟练程度还是不够。
关于C#,用它做过几个项目,用了WPF,ASP.NET,感觉C#这门语言还是比较容易上手的,写起代码来也很方便,配合上VS这个强大的IDE, 开发还是挺快的。我对它的了解还比较基础,至于它的反射,Delegation,Event等等东西,只是清楚概念,没有实际使用过。
另外,我上过程序设计语言这门课程,在这门课程中,我接触了大量的语言,也用这些语言写过程序。 使用过Java,Perl,Scheme,Haskell,Prolog这些语言。值得一提的是,scheme和prolog我都写过好几个程序, 虽然这两门语言都比较奇怪,但是写程序时确实能够开阔思路,还是两门比较有趣的语言,我比较喜欢。
对于“语言之争”,我没有特别的看法,我也没有特别的感觉说只用某一门语言或者只喜欢某一种语言。我觉得在不同的领域, 不同的场景,可能有些语言比另外一些语言要适合一些,比如说开发系统级别的应用程序,对执行效率要求比较高,这样, C或者C++可能要适合一些,又比如一些做一些自动事情的脚本,可能python或者php用起来更加方便一些。每个语言都有它的 优点,对于语言我还是没有什么挑剔。
专业基础知识
对于专业知识,大部分都只限于课程,都是通过教材来了解,虽然这些教材都是国外的经典教材, 可是我觉得我们利用的还是太少了,大家都平时没怎么认真学习,然后到了考试,老师会给出几个 重点,然后大家根据这几个重点复习,应付考试而已。这些经典的教材,又岂是短短的这几天能够 掌握的?而我也不过是把这几天的时间分配到了整个学期而已,也就是说,我会跟着老师的上课进度, 把这些教材看一遍,看得有多深入,浅尝辄止罢了,粗粗地过完内容,然后总结一下了事。掌握得不是很扎实, 导致成绩也不是很好。专业基础课中,掌握得比较扎实的应该算操作系统和编译原理了吧,因为这两门课都做过 课程设计,多多少少需要了解一些东西。另外数据库也算把教材看得比较透彻的一门课,虽然考试成绩不咋的。
算法
只是知道常见几种算法:贪心法,分治法,动态规划。数据结构了解了:数,堆,哈希表,图,以及图的遍历, 最小生成树,最短路径。对于算法来说,和那些比较厉害的人的差距就在于:练习不够。别人能够做到各种算法 烂熟于胸,看到某类问题立刻想到相关的算法,因为什么,就是练习了那么多,一个问题做上10几遍,怎么能不熟。 所以在算法方面,我还得勤加练习,不然只能维持在现在的,看上去都会的水平。说现在找工作只看算法有点绝对,但 只要算法好想找任何工作是绝对没有问题的,各种经历告诉我这个观点的正确性。另外,在此提醒自己,《算法导论》 一定要坚持看完了,给自己下定一个决心吧。
技术之外
首先是表达能力有待增强,把自己清楚的东西讲到让别人也清楚这确实是一种艺术。写博客是一种很好的锻炼自己表达 能力的手段,所以我会经常把自己对技术的感悟通过写博客的方式表达出来,同时也分享了东西给大家。
其次是提高英语的口语能力,多说,多听。
规划
在研究生的三年中,我需要达到下面的目标:
- 执行力:下定决心去做好每一件事
- 了解自己研究方向:数据挖掘的方方面面,达到一个比较高的级别
- 算法能力再提升一个档次,把算法从劣势转为优势
- 对于大数据,云计算,虚拟化有比较深入的了解
目标并不多,也不是很远大,但仍然需要认真地去执行。
另外,希望在这将近一年的实习生涯中达到下面的目标:
- 精通php,python
- 对mysql性能优化有完整的理解和解决方案
结语
前方路已经越发明朗了,接下来就是坚定地走下去。