【进度】对“编程入门指南”的实践

本文提供了一份详尽的编程学习指南,覆盖从启蒙到入门阶段所需掌握的各项技能与知识点。包括Python、C语言、Hacker's Delight等书籍推荐,以及SICP、数据结构与算法等核心课程建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://zhuanlan.zhihu.com/xiao-jing-mo/19959253


【finish】“启蒙”部分之前的内容,中英、视频全都认真看完。

“启蒙部分”:

①【jump】已经学会一门语言的可以跳过   Learn Python The Hard Way
②【jump】计算机专业学生可以跳过   MIT 计算机导论课
 【wait】 Harvard CS50有利于 激发学习计算机的兴趣。
支线任务:【wait】

“入门”部分

SICP是一本「入门书」,但对于初学者还是有一定的难度,以下是一些十分有用的辅助资源:
  • Composing Programs:一个继承了SICP思想但使用Python作为教学语言的编程导论(其中包含了一些小项目)
  • SICP 解题集:对于书后的习题,作为初学者应尽力并量力完成。
如果你觉得SICP就是搞不定,也不要强迫自己,先跳过,继续走常规路线:开始读 The Elements of Computing Systems

为了完全搞定这本书,为了继续打好根基。为了将来的厚积薄发,在下面这几个方面你还要做足功课(注意:下面的内容没有绝对意义上的先后顺序):

Ⅰ《深入理解计算机系统》同时,可以看看 The C Programming Language

完成这本书后,是时候去接触 UNIX 哲学了: KISS - Keep it Simple, Stupid. 在实践中,这意味着你要开始熟悉命令行界面,配置文件。并且在开发中逐渐脱离之前使用的IDE,学会使用Vim或Emacs(或者最好两者都去尝试)。

Ⅱ 数据结构与算法

  • 算法导论 》:有人说别把这本书当入门书,这本书本来就不是入门书嘛,虽说书名是 Introduction to Algorithms,这只不过是因为作者不想把这本书与其他书搞重名罢了。当然,也不是没办法拿此书入门,读第一遍的时候跳过习题和证明就行了嘛,如果还觉得心虚先看看这本《数据结构与算法分析
  • 入门阶段还要注意培养使用常规算法解决小规模问题的能力,结合前文的SICP部分可以读读这几本书:《编程珠玑 》,《程序设计实践

Ⅲ 编程语言

仅仅是接触远远不够,你还需要不断继续加深与他们的友谊,并尝试结交新朋友,美而雅的 Ruby 小姑娘,Hindley-Milner 语言家族的掌中宝 Haskell 都是不错的选择。但有这么一位你躲不开的,必须得认识的大伙伴 — C++,你得做好与他深交的准备:
  • [可选] 进阶:
供你参考的学习资源:
  • Coursera 编程语言MOOC:课堂上你能接触到极端FP(函数式)的SML,中性偏FP的Racket,以及极端OOP(面向对象)的Ruby,并学会问题的FP分解 vs OOP分解、ML的模式匹配、Lisp宏、不变性与可变性、解释器的实现原理等,让你在将来学习新语言时更加轻松并写出更好的程序。
  • Udacity CS262 Programming Language:热热身,教你写一个简单的浏览器——其实就是一个javascript和html的解释器,完成后的成品还是很有趣的;接下来,试着完成一个之前在SICP部分提到过的项目:用Python写一个 Scheme Interpreter

Ⅳ 其他

编程入门阶段比较容易忽视的几点:
  1. 学好英语:英语是你获取高质量学习资源的主要工具,但在入门阶段,所看的那些翻译书信息损耗也没那么严重,以你自己情况权衡吧。此外英语的重要性更体现在沟通交流上,Linus Torvalds一个芬兰人,一口流利的英语一直是他招募开发者为Linux干活的的法宝,这是你的榜样。
  1. 学会提问:学习中肯定会遇到问题,首先应该学会搜索引擎的「高级搜索」,当单靠检索无法解决问题时,去Stack Overflow知乎 提问,提问前读读这篇文章:What have you tried?
  1. 不要做一匹独狼:尝试搭建一个像这样简单的个人网站,不要只是一个孤零零的About页面,去学习 Markdown LaTeX,试着在Blog上记录自己的想法,并订阅自己喜欢的编程类博客。推荐几个供你参考:Joel on Software, Peter Norvig, Coding Horror

“小结”部分

不要局限于上文提到的那些材料,还有一些值得在入门阶段以及将来的提升阶段反复阅读的书籍。这里不得不提到在 stackoverflow 上票选得出的程序员必读书单中,排在前两位的两本书:
Code Complete :不管是对于经验丰富的程序员还是对于那些没有受过太多的正规训练的新手程序员,此书都能用来填补自己的知识缺陷。对于入门阶段的新手们,可以重点看看涉及变量名,测试,个人性格的章节。
The Pragmatic Programmer : 程序员入门书,终极书。有人称这本书为代码小全:从 DRY KISS,从做人到做程序员,这本书教给了你一切,你所需的只是遵循书上的指导。
这本书的作者 Dave ,在书中开篇留了这样一段话:
You’re a Pragmatic Programmer. You aren’t wedded to any particular technology, but you have a broad enough background in the science, and your experience with practical projects allows you to choose good solutions in particular situations.Theory and practice combine to make you strong. You adjust your approach to suit the current circumstances and environment. And you do this continuously as the work progresses. Pragmatic Programmers get the job done, and do it well.
这段话以及他创立的 The Pragmatic Bookshelf 一直以来都积极地影响着我,因此这篇指南我也尽量贯彻了这个思想,引导并希望你们成为一名真正的 Pragmatic Programmer 。

【end】



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值