最好直接用英文教程,减少翻译书信息损耗
尽可能多的获取每个层级的信息
推动力:每天不停地编码
编程直觉
编程能力提高的速度

实践与项目实践

理论
自底向上的打基础 拾起那些最基础的部分
算法思想
语法
系统基础

初级阶段:整体框架 自顶而下的探索 对编程也有了一定的了解 重要概念和范式 数据结构与算法 测试与调试 最新的一些科技成果

打好根基
厚积薄发
Computer Systems: A Programmer’s Perspective, 3/E深入理解计算机系统
计算机科学的脉络
程序设计的基础
CMU 的「计算机系统导论」的教材
程序在计算机中如何执行
计算机系统内部实现的诸多细节
Coursera 上的 MOOC: The Hardware/Software Interface,这门课的内容是 CSAPP 的一个子集,但是最经典的实验部分都移植过来了。同时,可以看看 The C Programming Language,回顾一下C语言的知识
系统基础
学习操作系统,编译器,计算机网络等内容的先决条件
编程实现其中的例子
更高级的系统
经手的代码,从上层设计到底层实现都了然于胸
回放数据在网络->内存->缓存->CPU 的流向
这个问题用什么算法和数据结构能更快解决
流程
对常见的数据结构和算法
对你不懂的数据结构算法,你要去搜它主要拿来干嘛的,使用场景是什么
算法导论
读第一遍的时候跳过习题和证明
数据结构与算法分析
Algorithms: Design and Analysis [Part 1] & [Part 2]: Stanford 开的算法课,不限定语言,两个部分跟下来算法基础基本就有了;如果英文不过关:麻省理工学院:算法导论
注意培养使用常规算法解决小规模问题的能力
编程珠玑》,《程序设计实践 
The Pragmatic Programmer
「干净」的脚本语言 Python, 传统的命令式语言 C, 以及浪漫的函数式语言 Scheme
美而雅的 Ruby 小姑娘,Hindley-Milner 语言家族的掌中宝 Haskell 都是不错的选择。至于 C++ ,喜欢的话学学也无妨。
写一个编译器。要想真正理解编程语言,你必须亲自实现一个。
至少实现一个简单的解释器
《程序设计语言-实践之路》:CMU 编程语言原理的教材,程序语言入门书
会极大扩展你的眼界,拉开你与普通人的差距
Programming Languages:课堂上你能接触到极端 FP (函数式)的 SML,中性偏 FP 的 Racket,以及极端 OOP 面向对象的 Ruby,并学会问题的 FP 分解 vs OOP 分解、ML 的模式匹配、Lisp 宏、不变性与可变性、解释器的实现原理等,让你在将来学习新语言时更加轻松并写出更好的程序。
Udacity CS262 Programming Language:热热身,教你写一个简单的浏览器——其实就是一个 JavaScript 和 HTML 的解释器
用Python写一个 Scheme Interpreter
学会提问
学习中肯定会遇到问题,应该学会正确的使用搜索引擎
去 Stack Overflow 或知乎提问
尝试在 CoCode 与他人交流想法
订阅自己喜欢的编程类博客,推荐几个供你参考:Joel on SoftwarePeter NorvigCoding Horror

不是几个星期就能完成的小项目。期间你还会遇到无数的困难,当你碰壁时试着尝试「费曼」技巧:将难点分而化之,切成小知识块,再逐个对付,之后通过向别人清楚地解说来检验自己是否真的理解
依旧会有你解决不了的问题,这时候不要强迫自己——很多时候当你之后回过头来再看这个问题时,一切豁然开朗。
Code Complete:不管是对于经验丰富的程序员还是对于那些没有受过太多的正规训练的新手程序员,此书都能用来填补自己的知识缺陷。对于入门阶段的新手们,可以重点看看涉及变量名,测试,个人性格的章节。
The Pragmatic Programmer :有人称这本书为代码小全:从 DRY 到 KISS,从做人到做程序员均有涉及。
have a broad enough background
your experience with practical projects
Theory and practice combine
choose good solutions in particular situations
do this continuously
Pragmatic Programmers get the job done, and do it well.
The Pragmatic Bookshelf

非计算机专业,计算机如何入门? - 浪无痕
我只想成为一名合格的程序员
知乎《编程入门指南v1.3》思维导图
怎么成为一个优秀的程序员,而不是一个优秀的码农?
计算机本科应届毕业生要有怎样的能力才算比较好的?
想进入微软,本科该如何努力?
大四学生,想通过两到三年的积累去Google工作,请问应如何准备?
我觉得你得先找到一个技术方向,树立一个以此技术方向为首要目标的原则,做好这个方面的事情,对这个方面的所有技术细节都务求深入了解。然后呢
文科生如何转行当程序员?
找一本《计算机导论》类的书籍看看,了解一下行业大致情况
去维基百科翻一下历年图灵奖得奖情况,粗略了解一下行业历史.
有哪些适合程序员读的人文书籍?
在学习编程的过程中如何权衡寻求方法工具和埋头苦干?
新手关于如何看编程经典书的一些疑惑?
计算机方面的经典书籍,不做或少做习题会对学习效果造成多大影响呢?
有哪些老鸟程序员知道而新手不知道的小技巧?
改bug是程序员的任务里比较低贱的工作内容吗?
如何辨别一个程序员水平的高低?
如何去学习程序员的三大浪漫,编译原理,图形学,操作系统?
数据库、操作系统、编译原理应该以怎样的的顺序学习?
如何在六个月的时间内完成一个简单的操作系统,应该要学些什么?
计算机系大四学生如何在六个月的时间内完成一个编译器?要学些什么?
算法到底应该怎么学?
WEB 开发还有前途吗?
嵌入式开发还有前途吗?