You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
完成了这部分学习后,你会逐步建立起一个自己的程序设计模型,你的脑子里不再是一团乱麻,你会意识到记住库和语法并不会教你如何解决编程问题,接下来要学些什么,在你心里也会明朗了很多。这时候才是真正开始进行项目实践,补充推动力的好时机。关于项目实践:对于入门阶段的初学者,参与开源项目还为时过早,这时候应该开始一些简单的项目,诸如搭建一个网站并维护它,或是编写一个小游戏再不断进行扩展,如果你自己的想法不明确,推荐你关注 炼瓜研究所 ,或者从 Mega Project List (https://github.com/karan/Projects/)中选取自己喜欢的项目。
编程
启蒙
编程基础
学习导引
MIT 6.00.1x (麻省理工:计算机科学和 Python 编程导论)
Harvard CS50x (哈佛大学:计算机科学)
廖雪峰Python教程
熟悉完python就学习 The C Programming
入门
入门阶段需要做什么
入门阶段导引
SICP 计算机程序的构造和解释
辅导资料
Udacity CS212 Design of Computer Program:由上文提到的Google 研究主管 Peter Norvig 主讲,教学语言为 Python,内容有一定难度。
https://www.udacity.com/course/cs212
How to Design Programs, Second Edition:HtDP 的起点比SICP低,书中的内容循循善诱,对初学者很友好,如果觉得完成SICP过于困难,可以考虑先读一读 HtDP。
http://www.ccs.neu.edu/home/matthias/HtDP2e/Draft/index.html
UC Berkeley SICP 授课视频以及 SICP 的两位作者给 Hewlett-Packard 公司员工培训时的录像(中文化项目)
https://github.com/DeathKing/Learning-SICP
Composing Programs:一个继承了SICP思想但使用Python作为教学语言的编程导论(其中包含了一些小项目)
http://composingprograms.com/
SICP 解题集:对于书后的习题,作为初学者应尽力并量力完成。
http://sicp.readthedocs.org/en/latest/index.html
完成了这部分学习后,你会逐步建立起一个自己的程序设计模型,你的脑子里不再是一团乱麻,你会意识到记住库和语法并不会教你如何解决编程问题,接下来要学些什么,在你心里也会明朗了很多。这时候才是真正开始进行项目实践,补充推动力的好时机。关于项目实践:对于入门阶段的初学者,参与开源项目还为时过早,这时候应该开始一些简单的项目,诸如搭建一个网站并维护它,或是编写一个小游戏再不断进行扩展,如果你自己的想法不明确,推荐你关注 炼瓜研究所 ,或者从 Mega Project List (https://github.com/karan/Projects/)中选取自己喜欢的项目。
读 The Elements of Computing Systems
http://book.douban.com/subject/1998341
进阶
计算机系统基础
深入理解计算机系统
The Hardware/Software Interface(https://www.coursera.org/course/hwswinterface),这门课的内容是 CSAPP 的一个子集,但是最经典的实验部分都移植过来了。同时,可以看看 The C Programming Language(http://book.douban.com/subject/1139336/),回顾一下C语言的知识。
数据结构与算法基础
算法导论
课程 麻省理工学院:算法导论
结合SICP,读《编程珠玑》,《程序设计实践 》
编程语言基础
第 n 门编程语言的难度是第 (n-1) 门的一半,尽量去尝试不同的编程语言与编程范式
学习资源
《程序设计语言-实践之路》:CMU 编程语言原理的教材,程序语言入门书,现在就可以看,会极大扩展你的眼界,拉开你与普通人的差距。
Programming Languages(https://www.coursera.org/course/proglang):课堂上你能接触到极端 FP (函数式)的 SML,中性偏 FP 的 Racket,以及极端 OOP (面向对象)的 Ruby,并学会问题的 FP 分解 vs OOP 分解、ML 的模式匹配、Lisp 宏、不变性与可变性、解释器的实现原理等,让你在将来学习新语言时更加轻松并写出更好的程序。
Udacity CS262 Programming Language(https://www.udacity.com/course/cs262):热热身,教你写一个简单的浏览器——其实就是一个 JavaScript 和 HTML 的解释器,完成后的成品还是很有趣的;接下来,试着完成一个之前在SICP部分提到过的项目:用Python写一个 Scheme Interpreter(http://inst.eecs.berkeley.edu/~cs61a/fa13/proj/scheme/scheme.html)
The text was updated successfully, but these errors were encountered: