我为什么一直强调布道这个词?因为我B站上也有讲的比较难的视频,但是简单的视频一直点赞量非常高,像北太天元和matlab对比就收获了54个点赞,还是非常多的。于是我开始思考:要不要就写一点简单的文章和视频,难的内容反正我也不会,不如就留给能力比我们强的老师和学长学姐做吧。我们这个背景做很难的内容不现实啊!
在开源软件这块,还有一句名言:开源软件重点不在开源软件本身,而是开源软件构建的过程。让学习者求职者去理解开源软件,这个算法也好的应用过程,这个才是布道师在布道的时候应该做的事情。
在平时教学弟学妹学习数学建模的过程中,我也有很深的体会,一个数模学的好的同学,一般都会觉得不要让学习者去问愚蠢的问题,什么是愚蠢的问题,其实就是那些普通的学生一时半会卡住没有理解的简单问题。比如,一个学生问,北太天元怎么安装?或者杉数求解器怎么安装?这个问题够简单吧,但是安装软件,这个学生如果从小到大没有听说过路径,那么可能他根本就不明白怎么安装,怎么激活软件?这些问题想过没有?
一个SPSS的初学者包括SPSSPRO的初学者,假如这个学生是偏工科的专业,统计学知识比较薄弱,这个学生不一定会这个软件的。重视问题的产生原理,往往比解决问题本身更重要!
分享一下我学习杉数求解器的学习经历吧!
杉数求解器的命名其实是看不出这个求解器的功能是求解运筹优化求解器的,不过很有意思,杉数求解器给了很多的案例,这些案例的编写者给的注释几乎是没有的,我怎么学习呢?
我选择了gurobipy这个求解器进行对比学习,我的学习思路是这样的:
第一:对比导库和行代码的风格,发现,求解器需要经过导库,约束条件,目标函数,求解打印这4个步骤,杉数需要激活一下环境。(貌似有的案例没有这一步)
# Create COPT environment
env = cp.Envr()
# Create COPT problem
mcut = env.createModel()
这段代码取自我写过的一个案例。
第二:不要懒得用AI,可以多试试看AI答疑,把代码一步一步看懂。代码有自己的逻辑,是可以表达出来的。
第三:为什么有的编程手悟性好?其实是编程写多的后果,就像微积分做多了,有的题目你发现做过,看一眼就想报答案一个道理,难的代码都是从简单的代码中剥离的,除非代码逻辑本身就不是想让你懂的,概率其实很低。
第四:学会类比。就像很多学latex的计算机专业的学生,第一反应是把latex代码类比成html,代码风格很像。这个和你认识朋友一样的,我看到一个人,我会下意识跟我的好朋友说,这个人和谁很像,性格真好,其实人是有类比学习的本能的。
在总结完自己学习新知识的方法以后,我也在总结包括思考一些社会现象,比如:为什么现在大学生就业很难?我们怎么让错位变得不错位?
布道,铺的是初学者到探索者的道路,当有能力探索了,把工具教给学生了,学生自己就会去自己探索。所以,基础知识的质量和数量会直接决定贡献者的数量。之前可以问的勤快一点,关心一下学弟学妹搞清楚没,说不定可能就是有一些不好意思问的问题等着你(前提是确实有心在学习啊)。初学者,入门的学生,不好意思很害人,所以设计教程包括引导的时候,可以多花一点笔墨在这里。也许,这就是为什么更多的人,喜欢通识的教程,而不是很难的教程吧。想象一下,当各个不同能力的人被你引到了一条非常平坦的大路上时,你还会担心他迷路吗?对吧。