1)建立起计算系统的概念,理解计算系统自底向上、逐次构造的过程,了解经典计算系统的工作基础;
2) 了解计算机系统的底层机制,包括数据的机器级表示、数字逻辑、冯·诺伊曼模型、机器语言、汇编语言、输入和输出、Trap 机制等;
3) 掌握结构化程序设计语言基础,包括变量和运算符、类型、表达式、简单I/O、控制结构、函数、数组和指针等;
4) 理解结构化程序设计,能够利用自顶向下、逐步求精的方法完成小规模的结构化程序;
5) 掌握系统地测试小规模程序的技术、方法与工具,掌握程序调试的技术、方法与工具;
6) 了解基本的数据结构与一些简单算法,包括数组、栈、链表、递归、顺序查找、折半查
找、插入排序等。
需要观看的书籍如下:
无论如何你要读一本叫做《数学之美》的书,无论你最终要不要从事算法强相关的工作,这本书也许都会给你的决定带来一定的影响。他足够不简单,因为里面很多算法思想支撑了谷歌大部分项目,甚至你所熟知的阿尔法狗,他足够简单,绝对不会让你读起来头疼,起码比起大学高数教材。(关于数学我有很多想法,春节之后我会写相关公众号)
《图灵程序设计丛书:征服C指针》 前桥和弥, 吴雅明【摘要 书评 试读】图书
编程语言我觉得只有C、C++和Java是需要较为深入去学习的,其他全是在既有编程理论的派生。每个学生大一都会学C语言,但是大四的时候往往C语言是他们最不熟悉的语言。这不是这个语言的困难,而是大一的时候没有编程基础,没有计算机操作系统基础所致。C语言是面向过程编程?No,我觉得它是面向操作系统编程。试试读一本叫做《征服C指针》的书吧,指针,是C语言的精华。
如果你喜欢C++(我认为迄今为止流行语言里面最烂的),《C++ Primer》是一本不错的书,据说还有Plus版本,但是我没看过,不要看谭浩强的书,如果你真的是在学习编程的话。 C++程序员都很自负,自负到这门语言最流行的两本书的中文版都没有中文名字。
《计算机科学丛书:Java语言程序设计(基础篇)(原书第10版)》 梁勇 (Y.Daniel Liang), 戴开宇【摘要 书评 试读】图书
虽然我几乎告别了Java开发,但是作为前Java和Android程序员,在我有限的编码生涯里面,Java是一门在我个人的编程思想上带来很多思考的语言。
入门学习Java建议读一下《Java语言程序设计》,分为基础篇和进阶篇,基本上从语法层面把Java语言讲解的深入浅出了。
《Java编程思想(第4版)》 埃史尔, 陈昊鹏【摘要 书评 试读】图书
当你写了两三千行Java代码的时候,这个时候你对面向对象、多线程、网络、图形都有了一定的认识的时候,可以看一下《Java编程思想》,这本书我前后度过三遍,以后我也许不会写太多Java程序,但是这本书是会时常拿出来看一下的。关于面向对象,关于项目设计,没有比这本书更好的入门书籍了。
毫无疑问,这是一本需要动脑子多过动手的书。虽然极致的面向对象也有问题,但是单纯就面向对象而言,读了这本书就无需其他了。
《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》 周志明【摘要 书评 试读】图书
后来我读了一本叫《深入理解Java虚拟机》的书,这本书需要一定的编译和操作系统知识,这本书对我的价值不在于对Java的理解,而是对很多通用语言,是怎样在PC上运行起来,有了相对清晰的认识。
对了,不要看《疯狂Java讲义》什么的,李刚写的书都是垃圾。安拉啊,这种不会写作的人为什么要纵容他出书?
《第一行代码:Android(第2版)》 郭霖【摘要 书评 试读】图书
学Android的时候我就看过一本《第一行代码》,之后就是看官方文档就好。
《图灵程序设计丛书:图解HTTP》 上野宣, 于均良【摘要 书评 试读】图书
《图灵程序设计丛书:图解TCP/IP(第5版)》 竹下隆史, 村山公保, 荒井透, 苅田幸雄, 乌尼日其其格【摘要 书评 试读】图书
计算机网络超级重要,这句话出自于一个挂了计算机网络这门课的我之口。其实,我觉得重要的是TCP/IP协议族,一定要懂。做web开发很多人都看《http权威指南》,特别是前端工程师。这本书我没看过,有时间会看一下,我看过的是一个日本人写的《图解HTTP》还有《图解TCP/IP》,这两本书不那么厚,深入浅出,我非常喜欢。
《正则表达式必知必会(修订版)》 福达 (Ben Forta), 杨涛, 等【摘要 书评 试读】图书
正则表达式是呼吸,无论你做算法开始做前端还是做后端,不管你学什么语言,正则都是很常用的。《正则表达式必知必会》这本手册很有价值,我手边会一直放一本。
《MongoDB权威指南(第2版)》 霍多罗夫 (Kristina Chodorow), 邓强, 王明辉【摘要 书评 试读】图书
《SQL Hacks》 Andrew Cumming, Gordon Russell【摘要 书评 试读】图书
你不可能不用数据库。我学数据库就看三本书,《高性能MySQL》、《Mongodb权威指南》还有《SQL Hacks》。也许对除了DBA之外的开发人员,SQL和索引相对是最重要的,所以我选择这几本书。《高性能MySQL》和《Mongodb权威指南》很细致耐心的介绍了这两种数据库是怎样运行的,对于知其然知其所以然很有意义。《SQL Hacks》中文版没有了,你可以选择英文版,这本书是值的购买英文版的,里面有很多写SQL的小技巧。
做Web开发的时候,我读过几本PHP的书,唯一一本值的推荐的是《PHP深度分析》,虽然PHP社区标准凌乱的没朋友。(难以忍受,他们好像就不存在标准!),但是这本书讲解的很多开发思路还是比较值得借鉴的。(C、C++、Java之后所有介绍语言入门的书我都不推荐了,都差不多)
后来在奇虎360实习的时候,看到前端团队人手一本《CSS揭秘》,就也买了一本,浏览过,还没细看,这本书也应该值的推荐。
《图灵原创:Go并发编程实战》 郝林【摘要 书评 试读】图书
同样在360认识了一门叫Go的语言,超级喜欢,推荐《Go并发编程》。
后来写过的代码多了,和别人也开始协同开发,见识了各种糟糕的代码,在不断改善代码优雅度的时候,阅读过一些编程艺术的书。
《重构:改善既有代码的设计》 马丁·福勒 (Martin Fowler), 熊节【摘要 书评 试读】图书
《重构:改善既有的代码设计》是一本值的推荐的书,它是用Java写的,相信很多人不会有阅读障碍,而且这本书几乎吹毛求疵指出了所有的不合理的代码设计(这种设计也许以后会伴随你的一生)。
《代码大全(第2版)》 史蒂夫•迈克康奈尔 (Steve McConnell), 金戈【摘要 书评 试读】图书
《代码整洁之道》 马丁 (Robert C. Martin), 韩磊【摘要 书评 试读】图书
《代码大全》和《代码整洁之道》是两本同样类型的书,我一直觉得这种书,应该经常看,每一次阅读都能有新的发现。
《高效程序员的45个习惯》也应该接触,你应该知道敏捷开发究竟是怎样一回事儿。
就算法而言,我读过《算法导论》,这本书我读过两遍,用什么样的辞藻形容这本书的价值都不为过。
《编程之美:微软技术面试心得(两种封面 随机发货)》 《编程之美》小组【摘要 书评 试读】图书
《剑指Offer:名企面试官精讲典型编程题(纪念版)》 何海涛【摘要 书评 试读】图书
为了面试,我读过《编程之美》和《剑指offer》,这两本书里面的算法用来练习思维还是很有价值的,毕竟面试题都不会太难。
《鸟哥的Linux私房菜:基础学习篇(第3版)》 王世江, 鸟哥【摘要 书评 试读】图书
即使你最开始编程是在windows平台,但是你迟早接触Linux,《鸟叔的Linux私房菜》长盛不衰,愿你喜欢他的语言风格,不过操作系统这种东西,只要上手,学起来很快。
《图灵交互设计丛书:设计师要懂心理学(全彩印刷)》 魏因申克 (Susan Weinschenk), 徐佳, 马迪, 余盈亿【摘要 书评 试读】图书
即使你不是产品经理,也应该有一点点产品思维,基于此,我觉得你应该读一下《设计师要懂心理学》,交互设计,真的很重要。
《人月神话(40周年中文纪念版)》 小弗雷德里克·布鲁克斯 (Frederick P.Brooks), UML China翻译组, 汪颖【摘要 书评 试读】图书
至于《人月神话》,我感觉这本书可以大四重修完挂掉的学科后重新认真读一遍。