1.防御性编程与备注
人不可避免会犯错,因此要养成防御性编程的习惯
2.科学分析思维
在时间、空间恒定的情况下,需要考虑的是
1.计算需要多少内存
2.输入大小的函数所需的基本步骤数量是多少
3.图灵完备语言
图灵完备语言包含三个部分:
1.数据:数组、字符串、布尔
2.操作:数字运算、逻辑运算
3.命令:赋值、输入/输出、条件/分支、循环机制
4.debugger
debugging最好的两个工具是打印和阅读代码。
首先要发现问题的最小输入,然后进行打印测试,采用二分法进行测试;或者请教别人。
5.抽象化、模块化、封装代码
将代码分为几个模块,对应不同的操作,比如机器学习会分为数据清洗、训练、测试。
6.运行代码的时间
运行程序需要多少步,会影响代码运行的时间,因此要思考好逻辑后再编写代码。
7.如何修复代码
1.记录你尝试的方式、修改的地方
2.考虑重新假设
3.调试代码
4.寻求帮助
5.休息一会再修复