受他家长之托,周末教他 C 语言,昨天第一次见面。小朋友学习成绩不错,上学期大考排到年级 20/400 。小学的时候曾经玩过乐高积木机器人。目前已经掌握了一些 C 语言的知识,可以在 OJ 做简单的题目。
我问:为什么想学 C 语言? 他说:以后想搞嵌入式和单片机相关的东西。 (初一同学说出这样的话,着实吓我一跳……)
我又问他想不想搞竞赛,他说学校里没有相关的竞赛小组
我的想法是:
-
目前不建议搞竞赛,理由:
- 他这个学习成绩,参加中考稳进本地最好高中。所以在普及组获不获奖都一样,没必要分心学业
- 学校里没有兴趣小组,没有老师指导、没有伙伴交流,会很困难。
- 他的兴趣并不在这里
- 可以等到高中再尝试,初中竞赛的这些内容,到了高中可以很快学会(何况他已有编程基础)
-
建议以后去美国读书,若经济状况允许,最好本科就去。理由:
- 美帝的 CS 。不多说
- 既然学 CS ,将来留学的概率很大,晚留不如早留。本科申请美国名校的难度显著低于研究生申请美国名校的难度,手握美国本科文凭申请美国名校研究生的难度显著低于手握国内本科文凭申请美国名校研究生的难度。
- 学习能力强,兴趣契合,可谓大有前途。没有理由不好好培养。
-
想搞“嵌入式和单片机”固然是很好的想法,但是目前建议先锻炼编程技能,学习一些数据结构和算法(非竞赛导向性质),并且学习 C++而不是 C 。理由:
- 既然要学 CS ,无论专精什么方向,这些东西都迟早要掌握,晚学不如早学。
- 学这些东西,语言只是一个工具,重点应该在学习其中的思想方法,而不是语言本身。学 C++有助于减轻记忆负担。 vector 总比 int* malloc free 清晰多了吧
- 保持将来搞竞赛的可能性(信息学竞赛只允许使用 pascal/C/C++)
-
出于一种对好学晚辈的鼓励,我想送给他的东西:
- 《编码》这本书。他说晚自修作业做完之后有时间可以看点书
- 单片机积木玩具。比如 arduino ?不知道现在还流不流行了?

别人家的堂弟。。咱也想要 MB
