编程入门
编程入门指南 v1.5 https://zhuanlan.zhihu.com/p/19959253?refer=xiao-jing-mo
1. • 完成 MIT 6.00.1x (麻省理工:计算机科学和 Python 编程导论)。
虽然该课程的教学语言为 Python,但作为一门优秀的导论课,它强调学习计算机科学领域里的重要概念和范式,而不仅仅是教你特定的语言。如果你不是科班生,这能让你在自学时开阔眼界;课程内容:计算概念,Python 编程语言,一些简单的数据结构与算法,测试与调试。
http://www.xuetangx.com/courses/course-v1%3AMITx%2B6_00_1x%2Bsp/about
2. • 完成 Harvard CS50x (哈佛大学:计算机科学)。
同样是导论课,但这门课与MIT的导论课互补。教学语言涉及 C, PHP, JavaScript + SQL, HTML + CSS,内容的广度与深度十分合理,还能够了解到最新的一些科技成果,可以很好激发学习计算机的兴趣。支线任务:阅读《编码》
http://open.163.com/special/opencourse/cs50.html
3. • 廖雪峰老师官网: Python 3教程
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000
4、书:《计算机程序的构造和解释》(SICP) Structure and Interpretation of Computer Programs
http://vdisk.weibo.com/s/GH0B1gDWAZa
5、学习SCIP的辅助资源
(1)优达学城(Udacity)课程: CS212 Design of Computer Program
https://www.udacity.com/course/design-of-computer-programs--cs212
由上文提到的Google 研究主管 Peter Norvig 主讲,教学语言为 Python,内容有一定难度。
(2)书:《
程序设计方法
How to Design Programs》(HtDP), Second Edition
http://www.ccs.neu.edu/home/matthias/HtDP2e/Draft/index.html
HtDP 的起点比SICP低,书中的内容循循善诱,对初学者很友好,如果觉得完成SICP过于困难,可以考虑先读一读 HtDP。
(3)《计算机程序的构造和解释》公开课中文化项目来自 https://github.com/DeathKing/Learning-SICP/
https://v.youku.com/v_show/id_XNTEzMDAyMTU2.html
• UC Berkeley SICP 授课视频以及 SICP 的两位作者给 Hewlett-Packard 公司员工培训时的录像
(4) Composing Programs:一个继承了SICP思想但使用Python作为教学语言的编程导论(其中包含了一些小项目)
(5)SICP 解题集:对于书后的习题,作为初学者应尽力并量力完成
<spanstyle="color:#333333">关于项目实践:对于入门阶段的初学者,参与开源项目还为时过早,这时候应该开始一些简单的项目,诸如搭建一个网站并维护它,或是编写一个小游戏再不断进行扩展,如果你自己的想法不明确,推荐你关注
炼瓜研究所 <spanstyle="color:#333333">,或者从
<ahref="http: link.zhihu.com="" ?target="https%3A//github.com/karan/Projects/"">Mega Project List 中选取自己喜欢的项目。</ahref="http:></spanstyle="color:#333333"></spanstyle="color:#333333">
<spanstyle="color:#333333"><spanstyle="color:#333333"><ahref="http: link.zhihu.com="" ?target="https%3A//github.com/karan/Projects/""></ahref="http:></spanstyle="color:#333333"></spanstyle="color:#333333">
6、《The Elements of Computing Systems(计算机系统要素)》
<spanstyle="color:#333333"><spanstyle="color:#333333"><ahref="http: link.zhihu.com="" ?target="https%3A//github.com/karan/Projects/"">http://vdisk.weibo.com/s/BkTmMPxWZ7fB</ahref="http:></spanstyle="color:#333333"></spanstyle="color:#333333">
<spanstyle="color:#333333"><spanstyle="color:#333333"><ahref="http: link.zhihu.com="" ?target="https%3A//github.com/karan/Projects/""></ahref="http:></spanstyle="color:#333333"></spanstyle="color:#333333">
<spanstyle="color:#333333"><spanstyle="color:#333333"><ahref="http: link.zhihu.com="" ?target="https%3A//github.com/karan/Projects/"">7、《深入理解计算机系统</ahref="http:></spanstyle="color:#333333"></spanstyle="color:#333333">》Computer Systems: A Programmer's Perspective, 3/E(CSAPP)
pdf: 第三版 https://pan.baidu.com/s/1hsBoimK
课程笔记:
http://wdxtub.com/2016/04/16/thin-csapp-0/
公开课:https://www.coursera.org/learn/jisuanji-xitong/
知乎:https://www.zhihu.com/question/20402534
https://www.zhihu.com/question/20354069
CMU 的「计算机系统导论」的教材 https://www.cs.cmu.edu/~213/
8、课程:《软硬件接口The Hardware/Software Interface》
http://mooc.guokr.com/course/67/The-Hardware-Software-Interface/
<ahref="http: link.zhihu.com="" ?target="http%3A//v.163.com/special/opencourse/algorithms.html"">9、麻省理工学院:算法导论</ahref="http:>
<ahref="http: link.zhihu.com="" ?target="http%3A//v.163.com/special/opencourse/algorithms.html"">http://open.163.com/special/opencourse/algorithms.html</ahref="http:>
《算法导论》,或者《数据结构与算法分析》
常规算法解决小规模问题的能力:《编程珠玑》,《程序设计实践 》
《
能有效解决问题的提问方法
》
《代码大全Code Complete》
http://vdisk.weibo.com/s/C9WiiXt2XjYQU
书:《程序员修炼之道》(The Pragmatic Programmer)