实现数学算法前的准备工作
就像是建筑施工要有张蓝图一样,在编程实现数学算法之前也要将相关的数学理论推导顺畅、整理清楚,形成一个流程或是大纲。根据这个大纲,再去构建数据结构、绘制算法流程。有了这两张蓝图在手,才可以开始编写代码。
事实上,若将上述内容都装在脑海中而不呈现于纸面也不是绝对不行,但这种毛躁、粗犷的工作方式会给后续程序的调试和维护带来麻烦——考虑到数学算法程序相较于一般以业务流程为主的软件更为复杂,这个问题便更加突出。回想我博士研究生期间做直流输电线路的电磁环境仿真时就是这样。那是需要我大量编写数值计算代码的第一个项目——虽然用的不过是 MATLAB,远比如今用的 C++ 语言简单。代码虽然写得很快,有种酣畅淋漓的感觉,但是到了调试的时候就毫无思路和线索、束手无策,以至于很长一段时间我都误以为程序的调试成功与正确运行总是要靠一些好运气才行。但现在看来,这都是非常幼稚的认知与行为。