计算机基础知识的学习与巩固
2014-11-25 13:17
393 查看
计算机基础经典书籍
想在技术的道路上走得远,必须有扎实的计算机基础。最最重要的是数据结构和操作系统。下面按照学习的先后顺序给出一些推荐的好书:编程语言《C程序设计语言》
离散数学《离散数学及其应用》
数据结构《数据结构与算法分析 C语言实现》
组成原理《深入理解计算机系统》(CSAPP)
操作系统《现代操作系统》
编译原理《Compiler Construction: Principles
and Practice》(基础) +
《编译原理》(龙书)
软件工程《计算机程序的构造和解释》(SICP)
看经书的同时要多练习和思考,课后题适当选作。如果某些知识 第一遍学习理解比较慢,那就不妨看一些视频来辅助。这些关于基础理论的经典书籍是一定要多读几遍的,相信随着学习的积累,每次读都会有新的体会和收货的。
刷题与编码能力提高
在基础知识学习的同时,也要同步训练编程能力。对于刷 OJ,首选 C++, 并选用 Linux 平台,OJ 题目代码规模不大,一个自己喜欢的文本编辑器(Sublime, Vim 或 Emacs) 配合 GCC 和 GDB 足以,方便快捷。虚拟机下 Ubuntu 足矣,专注真正重要的事,不要花太多时间折腾Linux上,我们需要的只是Linux下的编译环境、方便的 shell 和一些给力的小工具。可以通过下面的步骤来训练:
学习C++基础语法知识 《C++ Primer中文版(第5版)》
学习STL的标准模版库 《C++ 标准程序库》
刷 Leetcode 的 OJ题库
写博客与做开源项目
写博客可以帮助自己归纳整理学过的知识,做开源项目更是有利于自己能力的提高,而且也方便和其他的开发者交流,注册个 GitHub 就可以开始动手实践。编译器项目
编译器项目是对计算机基础理论的一个很好的实践,而且其本身也是一个充满乐趣的big clean project.通过一个小型编译器项目的实践,可以让自己的字符串解析,代码优化,内存管理等各方面的能力得到一个深刻而有效的锻炼:
读
SICP,
尝试做一个简单的
Scheme解释器;
读
CSAPP,尝试设计指令集并对其写个模拟器;
读
龙书,尝试自己实现一个小型简单的语言;
一些好的参考书籍:
《Language Implementation Patterns》
《程序设计语言实践之路》
《Parsing Techniques》
《编译器设计》
《游戏脚本高级编程》
Web项目
互联网时代,Web 开发可以算是必不可少的技能了。做 Web 讲究快速迭代,在动态语言如此成熟的今天,Ruby on Rails和
Python已经是成为很好的选择。对于小型 Web 项目,可以从下面着手:
基础学习 HTTP 协议 《图解HTTP》 ,深入学习 HTTP
协议 《HTTP权威指南》 边学习边应用;
学习 Python 和 Flask 这个 web框架,精读 Flask源代码;
学习 JavaScript 和 jQuery 库,使用 Bootstrap前端框架;
相关文章推荐
- 计算机基础知识学习(网络必备)强烈推荐!!!
- 计算机基础知识学习(网络必备)强烈推荐!!!
- java学习笔记(计算机基础知识)
- Java基础知识学习巩固2--int和Integer有什么区别及扩展
- 计算机基础知识学习(网络必备)强烈推荐!!!
- 为什么要学习计算机知识(英语专业文化基础第一节课讲稿-部分)
- JavaSE入门学习1:计算机基础知识
- 容易被忽略、轻视,却可能影响编程学习的计算机基础知识
- 计算机基础知识学习(网络必备)强烈推荐!!!
- 学习笔记:第一章 计算机系统基础知识
- 计算机基础知识学习(网络必备)强烈推荐!!!
- 计算机基础知识+学习方向
- 计算机基础知识学习(网络必备)强烈推荐!!!
- 计算机基础知识学习(网络必备)强烈推荐!!!
- 计算机基础知识学习(网络必备)强烈推荐!!!
- 计算机基础知识学习(网络必备)强烈推荐!!!
- 计算机基础知识+Java语言基础 +JAVA学习笔记-DAY01
- 计算机基础知识学习
- 【python学习笔记一】程序设计计算机基础知识
- 计算机网络基础知识学习计划