学习书单与一些想法

2015年07月11日

书单

C语言
C程序设计语言 K&R
C和指针

算法
数据结构与算法分析—C语言描述 Mark Allen Weiss

操作系统
深入理解计算机系统

一些想法

关于书单

C语言
C语言从最早看的是谭浩强版本,里面有很细致的语法。可看完以后给我的感觉是,除了固定的语法规则,我对C语言一点也不了解。里面对内存相关的知识实在太少了,从系统的角度来解释的内容几乎没有,学习语法是一部好书,可是学不起一门语言

看的第二本书是K&R的书,据说是C语言里经典的经典。里面好些UNIX的源码,里面说的内容也与UNIX操作系统相关,对于我这个初学者来说,第一遍看的时候,除了语法部分还能看懂,其余的完全不知道说的是什么,仅仅存留一些印象,直到接触linux时间稍长一些了,才体会到其中的精妙,可惜至今也有许多读不懂

接触的第三本书是C Primer Plus的中文版,某工作室翻译的,里面语句十分不通顺,还有程序打错了。但从目录看得出,这是一本不错的书,平时看书是知其然而不知其所以然,但这本书对概念解释的很到位,等哪日英文水平提高了,我再去拜读原版
接触的第四本书是C和指针(第二版),徐波翻译的,当看过K&R版本后,这本书看起来轻松多了,里面翻译的也通顺,才开始看,挺喜欢的一个版本

算法
看了不少博客,有人说要学习算法,有人说用不上。当看到一篇文章《我的算法学习之路》时,如醍醐灌顶。结合自己学C语言的体会,在学校学的C语言,的确用不到linux系统,也用不着了解太多的内存相关的知识,但是学完之后,对C语言毫无概念,也毫无兴趣,因为不知道它是干啥的。就像学英语只学语法,再多学几年也看不懂文章啊。当用到二叉树的时候,就有欲望去系统的学习算法了。

最初选算法书的时候,是看严蔚敏的版本,结合算法圣经《算法导论》。如今看来十分不科学。算法导论实在是太难了,“生词”太多,对我并不适用。直到看到了数据结构与算法分析,里面是实打实的代码,没有学校教材那种比较官方的语言,看起来很舒服。刚开始看就特别感兴趣,虽然才看到第一章呢。

操作系统
跟着项目学习了一段时间,我还是闹不清应用程序,内核之类的关系。网络编程也是云里雾里。不论是《TCP/IP》详解,还是《UNIX环境高级编程》,里面涉及的操作系统知识很零散,串不成体系,一直很好奇什么编译过程,内核到底是什么,从什么书里可以看到?可是一直不得而知。可怜巴巴的我傻傻的一遍遍看《计算机网络》,始终找不到系统的知识。无意间看到这本书,艾玛呀,这不就是我苦苦寻找的内容吗?怎么没人跟我提过这本书,掩面哭一会。里面没有高大上的语言,十分有趣,学完后,我许久的疑惑就能少一大半了。

关于最近的计划

雅思

我始终下不定决心出国,是因为下不定决心考下雅思。申请CS的PHD,对我而言是遥遥遥遥不可及的憧憬。我首先不是CS专业,其次读研后的专业也是跨专业的,本来就当费很多心思,去提高GPA。可是这不应当作为借口,就是觉得考试时间不定,所以可以一拖再拖,今天忙了就少读或者不读,这样时间长了读了的也已经忘了,反而更浪费时间。所以接下来我每天固定看一章节词汇,一章节写作和一章节口语,每周一个text,虽然还是很慢,但是这是底线了!

关于自学计算机

这是一个沉重的话题。我最缺的就是时间,其次是精神状态。由于4月9日来实习起,除去必须办事没学习,其余的时间可以说一日都没有放松。每日都睡的很晚,现在的状态是时间严重紧缺,精神严重不振。

学习方法上,由于之前没有一个规划,网上东看看西看看,也不知道什么书适合自己,以至于两个月都没有系统的学习编程。看书和做项目的时间不会安排,总想着把项目做出来,由于长时间忽视系统学习,白白费了很多时间项目也没有什么进展。我有一点很不好,人云亦云,不够自信。人家告诉我不要看书,我还真不看书了,忽视了跟别人最大的不同,就是别人也许是忘记了,而我根本是一只纯小白呀,虽然这些方法适合大多数人,但绝不适合我。最大的体会是最近学了进程与线程,特地拿了UNIX环境高级编程来看,系统的学下来比我之前搜索文章来学速度快的多,也是记忆最牢,理解最深的一次。

关于项目

用一周的时间,先实现4线程的代理服务器,能抓包与发包,并且可以转送指令

加油,别惧怕,可以的!