关于培养编程能力的资料

niceowl-avatar

niceowl

2021-07-30T15:32:59+00:00

(不知道该发到哪里, 就先发在这儿吧.)

以下是我提到的入门编程的一些资料的汇总(那个帖子被删掉了).

即使是小孩子也能学会的编程:
MIT有一个长期团队专门研究如何教会小孩子编程, 用尽量有趣, 不让孩子反感的方式.
他们的成果是一个叫scratch的语言, 它使用形象有趣的图画来表示编程的单元, 用拖拽的方式来编程, 用动物的动画来展现效果.
非常有趣!
对于零基础的人可以选择这个.

最好的网站(直接在网页上编程, 有很生动的tutorial, 但是需要翻墙): [[url]https://scratch.mit.edu/projects/editor/?tutorial=getStarted[/url]]

这个是国内能上的(这玩意还要注册, 大家凑合着用吧, 如果有更好的我会更新): [[url]https://www.kidscoding8.com/3695.html[/url]]

吐槽一下, 本来国内是能访问scratch的官网和资料的, 但台湾省有人建立了一个中文站, 在上面搞了些乱七八糟的事情, 然后导致整个都被墙了.
所以, 大家翻墙也最好别看那些繁体中文的scratch资料, 我感觉那些质量都挺低的, 不知道在说什么.


编程能力的培养:
我觉得计算机最重要的就是编程能力, 编程能力最重要的组成部分是抽象的思维方法, 所以我推荐这样的材料:

对于没有基础了, 但对计算机不陌生的, 建议学习南大的sicp python版的课程: [[url]https://nju-sicp.bitbucket.io/[/url]]
这个的好处是有完整的配套练习, 讲义, 答疑, 还有国外这门课的公开课视屏[[url]https://www.bilibili.com/video/BV1nJ41157p6[/url]]▸
这门课的最大好处就是通过课程计划, 一步一步的完成homework和project, 只要做完, 必然有很大的进步. 也可以判断是不是对自己太难,可以果断放弃.

如果是有一些计算机基础的, 那么建议学sicp的原版课程(大神级人物讲课, 艺术与理论的结合):[[url]https://www.bilibili.com/video/BV1Xx41117tr[/url]]▸
坏处是需要自学能力比较强, 习题只能做书中课后的习题, 也许最好要读一读英文原版的教材.
但这是收获最大的, 只需要学习前3章就终身受用了.
要学这个课程要先搜索"racket sicp"配置环境(一个知乎的帖子, 配置起来很简单).

根据我的经验, 只要学会上述任意一门课, 就能够不太害怕编程了. 而编程能力, 就是计算机学科的本质.

sicp所介绍的编程方法
只要是教授sicp的课程,最终都是要教授这样一种编程方法:bottom up(自底向上).
bottom up的方法,本质是是教给人们如何先实现一些很简单的功能,然后通过组合,最终实现一个复杂的功能。而在在这一系列实践的过程中,还要保持程序的清晰,控制复杂度,从而减少潜在的bug.
举一个bottom up的例子: (这大家还是直接看sicp吧, 我想了半天没想出合适又生动的例子, 头秃)
学会bottom up的方法,有两个方面的好处:
1 可以通过这种思路,分析别人的程序是如何写出来的,从而理解别人的编程思路。
2 通过这种方法,可以对自己写过的程序加以整理和抽象,从而达到,编程的经验越多,编程的水平就会更高的效果。

python的入门资料:
链接:[[url]https://www.liaoxuefeng.com/wiki/1016959663602400[/url]]

廖雪峰老师我学过其中的git课程, 基本上花个几个小时就能看完, 一直放在收藏夹里, 每次想不起来命令了就会去看看, 感觉非常好用!

他的其他课程有需要都可以看. 我觉得他的教程是最深入浅出的, 还配有练习, 而且文字量都不大, 非常简洁.

培养批判性思维:
我推荐这本书: <<学会提问—批判性思维指南>>, 现在我也正在看.
我觉得这本书并不是那种常规上的工具书, 告诉人要怎么怎么样, 你就能够得到什么云云.
这本书是有一些学术的气质的, 作者在其中会深入浅出的解释为什么有的人没有批判性思维, 运用批判性思维的目的是什么, 等等.
而且, 这本书已经更新到第7版了(恐怖), 有详细的配套练习, 我觉得是一种经过了实践检验的教学方法.
电子书链接(可能需要翻墙, 这个网站可以下很多电子书): [url]https://zh.1lib.net/book/11781625/0b9198[/url]
Brujo-avatar

Brujo

giao 你该不会是那个跨专业考计算机妹子的男朋友吧
KingVince-avatar

KingVince

今天下午才看到你的贴,老哥是真的6,你是我好大哥
Bottles-avatar

Bottles

卧槽 我才发现你是写那个婚姻矛盾的作者
真的,有你这思维能力我求求你一定不要低头,一定要找个好的女人,让那些骂男博士是高质量男性的sb女的看一下,什么叫心智的荣耀,不要回头不要作贱自己,就算是为了那些在nga替你说话的xd。好吗?
Zareow-avatar

Zareow

收藏了就等于学废了[s:ac:哭笑]
mononoke-avatar

mononoke

老东家被分到了做这个的部门,还是有点了解的,实话实说,国内市场编程猫还有小猿编程的图形界面编程也都是不错的案例,也都是免费的,不妨让孩子玩玩试试
yz-avatar

yz

感觉用的上 [s:ac:羡慕]
Pigmonkey-avatar

Pigmonkey

其实我觉得真的要去编程,还是学c进行系统培训
Hectic Ren-avatar

Hectic Ren

首先我觉得如果真心想搞这方面的话
计算机组成机构,c/c++,数据结构这仨硬骨头一定是要啃的

Python这个的话,确实入门上手会很快,但是对于有相关基础的人来说,从头学到能够普通应用,估计也就是两三天的事,无法作为核心竞争力

另外儿童编程这套东西我觉得可能作用不大
pamp.daddy-avatar

pamp.daddy

K&R CSAPP TAOCP CLRS请
talksickjosh-avatar

talksickjosh

[s:ac:茶]乐高编程机器人不错,挺有意思的。