文字从程序员技术练级攻略http://coolshell.cn/articles/4990.html整理而来,因此要感谢酷壳网作者贡献此贴。
以此作为走在技术路上近三年已然迷茫的我接下来的路上的指导方案。这里只是把文中的部分概要和相关书籍抽出来,力图在一张纸上列出来,对自己起一个思维导图的作用,具体细节(包括任务目标)还得再参照作者原博文。
总体学习路线:
一、入门
1,学习一门脚本语言python
2,掌握一个程序员级编辑器vi/vim/emacs
3,熟悉linux shell常用命令
4,学习Web基础(HTML/CSS/JS) + 服务器端技术 (LAMP)
Web基础参考 http://www.w3school.com.cn/
阅读书籍:HTTP: The Definitive Guide,Dynamic HTML: The Definitive Reference, 3rd Edition,
补充阅读:JavaScript & DHTML Cookbook,
二、进阶加深
1,C语言和操作系统调用
- 学习(麻省理工免费课程)计算机科学和编程导论
- 学习(麻省理工免费课程)C语言内存管理
- 学习Unix/Linux系统调用(Unix高级环境编程)
- 学习Windows SDK编程(Windows 程序设计 ,MFC程序设计)
补充经典书籍: 《c陷阱与缺陷》《c专家编程》《c指针》《the c programming language》《征服C指针》
阅读书籍 《Java 核心技术编程》和《Java编程思想》《Agile Java Crafting Code with Test-Driven Development》(补充)
3,学习关系数据库mysql
补充:《高性能mysql》
4,数学学习
补充相关书籍:《具体数学:计算机科学基础》《程序员的数学》(暂列于此)
5,补充必读:内功修炼系列
《代码大全》《重构》《代码整洁之道》《卓有成效的程序员》《测试驱动开发》《程序员的职业素养》
6,补充选读:软件方法学
三、高阶深入
1、C++ / Java 和面向对象
阅读书籍 《 设计模式》必需一读,两遍以上(也推荐《 深入浅出设计模式》)《Effective Java》 and 《Java解惑》《深入浅出MFC》(发现有些人回头说专门读这本书存在问题)
2、加强系统了解
阅读书籍 《Unix编程艺术》《Unix网络编程卷1,套接字》《TCP/IP详解 卷1:协议》(非常神奇的三本书)
《Unix网络编程卷2,进程间通信》《Windows核心编程》
3,系统架构
负载均衡,cdn, hadoop, nosql(都是我还没接触过的技术)
上面基本上是博文原作者推荐的程序员职业不同阶段必读的经典技术书籍,本人补充的部分加了‘补充’二字。
除了以上所列书籍之外,通过豆瓣读书查看任一标签比如程序设计、软件开发可以看到相关的全部书籍,包括最经典的和不同层次的。以上推荐书籍基本上都在豆瓣读书最经典书籍之列,还有一些评价很高的书籍未出现作者推荐之列。如果以上推荐书籍读完了,可以直接到华章图书、豆瓣读书查看相关标签下查看哪些评价高的图书在这里漏了推荐,然后下载再读(百度搜索一下都能找得到电子书下载链接)。对我而言,决定要不要读某本专业书籍,华章与豆瓣上的书籍评论与评分通常来说具有很大程度的参考作用。
主要相关书籍标签:
华章图书 软件与程序设计 软件工程及软件方法学
以上所有书籍的电子书基本上都可以在新浪共享资料库中下载到。
本来是想直接从英语原版书学技术的,既可学计算机,又可学英语,后来发现实践起来不太现实且太费时间了。一天看不了一两页,因为英文不好,一页来回读几遍才明白大概意思。这样既已经远离了学习技术的本意,甚至都把学习新技术的兴致都给消耗怠尽了。现在终于想明白了,有中文版 的先看中文版,中文版 读明白了,再读英文版也成。事有轻重缓急,首先需要学的是技术,其次才是英文!何况还是专业书籍,都是专业术语,翻译人员一般都是有计算机背景的英语比较不错的人,大多数中文版的翻译水平是没有问题的。直接读他们翻译的,会为这样英语不好但想要快速掌握这些技术的我们来说节约不少时间的。鱼和熊掌无法兼得!
对于自己以后发现的比较好的相关书籍,在以后读到时再陆续追加。
走出去期望工作岗位:高级java工程师?
按当前工作相关与走出去期望职位相关的缓急程度(优先级)选择当下优先读哪本书,以及在工作完成之余做一些因兴趣与实用驱动的小项目开发,对于走出去迈向更专业更高级别的岗位都具有直接意义!
作者文中所说有人两年就读完了相关书籍,本人就争取三年读个大概(虽天资平平,难道不可能吗?)。