如果 fish 再往下学习编程,我是倾向于希望她能学习一些算法相关的知识。因为具体的语法的知识,在她这个暂时不做项目的年纪不重要。若干年后技术圈会发展成什么样谁也说不准,这行业变化太快,并且未来也有 AI 帮忙。而算法的知识有利于提升逻辑思维能力,以及打开看待事情的方式和角度,对数学也有帮助。
但要做具体的练习,总需要一门语言语法来作为落地实现,所以接触一门具体语言也是不可避免的。那选择什么呢?目前无非两种:C++ 和 Python。如果是其他 JS、Swift那些,更多是做具体项目时才会用的,不大适合。
C++ 还是 Python
那 C++ 和 Python 选哪个呢?如果仅从学习门槛和代码易读性来说,个人是觉得 Python 会好一点,C++语法有点门槛。但结果查了一下资料,如果学 python,后面信息学奥赛那些都是不支持的。全都只支持 C++。
直觉上是没必要学两种语言的,选 Python 似乎只能 for 兴趣。后期涉及切换语言,会浪费更多的时间。而选 C++ 入门稍微困难,但保留了后面的可能性。但是后来咨询了一下老师,以及和 fish 深入沟通了一下,发现初中其实是有 Python 的信息课程的。所以学 Python 除了不会太冲击她现在的热情外,初中也是能用得上的,然后初中也是可以通过 Python 去考“信息特长生”的。其实是考了这个资格后,才能选 C++ 进入信息奥赛。
那我感觉如果她真的有天份,就到时候再转 C++ 也不迟的。那如果没那么好的编程天份,挤不到竞赛,那前面学 Python 会实际一点,过程也会开心一点,应用场景也多一些。就没必要那么早去敲定和折磨她了。
于是下来给她报了一个核桃编程的 Python 班试试。核桃编程的大班直播课,多媒体课件倒是做得比较丰富,只是毕竟是大班教学,其实大部份都是靠孩子自己操作吧,有不会的才问。其实老师比较省事,不需要一对一讲太多。前期内容也比较简单/
有时候觉得这样自己也能教,但无奈时间精力还是挡不住,另外就是毕竟不如别人专业的有那么多配套的教学课件资源,干讲就特别枯燥吧。
还是让她学一段时间再说,短期也没有任何比赛的任务和压力,就慢慢玩中学。
参考资料:
适合练习的例子:
- Fizzbuzz 挑战:判断某范围内的所有数字是3的倍数还是5的倍数