程序员学编程:细细啃透这三本,胜读大咖推荐100册

桂林seo半杯酒博客

我上大学时,C语言已经出现在课程中,但还不是非常流行,我们学习的是pascal语言。我在一所非重点大学学习,教学相对落后,计算机专业课程的老师都是自学成才。

我们都是委培生,当你的前途与专业无关时,也就没有人花太多心思学习。一部分同学是成人高考,本身就是在职,毕业以后有了文凭,再回原单位就是升官发财;剩下同学就是委培,毕业以后铁路会接收,然后统一分配,有背景的留大城市,没背景的去沿线,最没有背景去秦岭。所以未来的前途和学习成绩没有关系,谁会玩命学习?

既然学生不愿意学习,学校也就不安排水平太好的老师代课。当然那个时候我的能力十分有限,无法对老师的专业水平做出评价。但是从老师的英语发音可以听出一些端倪,一些关键词发音极其不规范,比如“int、char、arrary”等。老师读的最有特色一个单词是“new”,竟然发音与汉字“牛”一模一样,第一次听到他把“new”读”牛”的时候我大跌眼镜,后来对他的课也就没有了兴趣。

好在我们学校离西安交大不远,我找到西安交大的课程表,就去交大上课了。大学课堂中前两排座位是空出来,所以每次都有座位。虽然我不知道这些和我以后的工作有什么关系,但是我从来不打牌、玩吉他、下象棋。

毕业以后我很长时间从事非工程师的职业,我的同学中只有张涛从事了嵌入式开发工作。当我打算从事这个职业时,我的知识相当匮乏,在学校学习的知识早就忘光了。

虽然谭浩强老师不认识我,但是我可以认识他。我的书架上放着一本谭浩强的书,是原来租住的房客留下来的,我花费2个月的时间认真研读该书,并且将课后练习题做了一遍,书上的代码我基本敲了一遍。张涛认为在初级阶段敲代码是锻炼编程意识的一种有效方法,确实如此,随后我就为一个LCD厂家编写了驱动程序。

虽然谭老师的书已经将关于编程的方法论述的非常全面,但由于资质的原因我对很多概念理解还是理解不透彻。参加工作以后我得到一本《C primer plus》,我大概浏览了一下,感觉内容非常不错,与作者有一种神交已久的感觉。书非常厚,但是由于基础有限,我必须从第一页开始读起。我经常揣摩作者想法,每行代码作者编写的缘由,所以阅读速度非常慢。在公司有很多工作要处理,我没有大块时间,下班家里有很多事情处理,这本书有626页,有时候一天才能看两页左右,每天腾出一大块时间静心读书简直是奢望,但是我必须要挤时间。

每天坐公交车上班需要一个小时,我是在第二站上车,为了有一个座位我反方向步行到始发站。如果提前20分钟出门,就可以避开早高峰,上车就有座位了。我就有整整一个小时看书的时间,计划很完美,但是公交车晃动厉害,看一会就头晕。我只好看一眼,然后回想一下刚才看过的内容,或者回想一下以前看过的内容,尽量减少睁眼看书的时间。工作空隙在单位计算机上敲一下书上的代码,或者验证一下自己编写的代码,三个月后《C primary plus》第一遍就差不多结束了。

捧一本厚书坐公交车非常引人注目,有一次一位老人刚上公交车,我起身让座,旁边一位阿姨站了起来把座位让给老人。她说:“小伙子,我马上就到站了,你忙你坐……”

我回家后告诉妻子,妻子调侃我说:“你以后扛一本字典,肯定有人给你让座。”

因为这本书非常厚,我又经常携带,翻阅一遍后就有点破损了,我就把将他留在公司了。《C语言编程》这本书我随身携带了半年。妻子有时候笑话我:“你到底在单位时干活挣钱,还是读书挣钱?”

随着学习推进,工作也越来越得心应手,单位的同事从来没有发现其实我不是工程师科班出身,即使与工作十年以上的同事交流也不存在任何问题。

至于今天我要说这么多,因为前几天有位网友问我编程入门要看什么书。我推荐了便于学习的三本书,他认为太简单了,都已经读过收益不大。希望我推荐一些可以提高的书,我觉得我不能向他推荐对读者基础要求比较高的书,因为他当时问我的问题非常基础,但是在他看来非常难于理解,我试着向他解释,后来我放弃了。基础不牢固,其它就是空中楼阁。

其实针对入门的书籍认真读几本后,就可以很好的完成日常的工作了。如果有兴趣读一些提高的书籍,那真的是太简单了,几乎可以一目十行,或者直接挑一两个有兴趣的章节品味一下就可以了。对于一位基础不好的工程师,如果我推荐他去读《编程范式》、《代码整洁之道》只能打击他学习热情。

至于他说已经读过入门的书籍,我认为也仅仅是读过,并没有将书中的内容转化为思想意识。这个世界变化很快,所以人的内心比较浮躁,如果你打算比较长时间的从事工程师这份职业,认认真真读几本基础书籍打牢基础才是正道。