身为程序员,明白一件事:“看懂”书上的例子与实际动手做过有巨大差别,但是人的惰性会让自己懒得再去敲例子代码。这就形成了一个矛盾:一方面知道敲代码的重要性,另一方面却由于自感“理解了例子"而不想去敲,觉得即使敲了也只不过是复制了书本例子,没啥意义。问题的关键就在这里:如果你把书本上的例子原原本本地敲下来,确实是一点意义都没有,纯粹的复制而已。也许你会说,那就不要看着书的情况下敲下例子。我认为这种行为本质上还是复制,只不过披了一件”背诵"的外衣而已,毫无意义。
两全其美(不要理解为折中)的方法是:把书本上的例子转化为最简形式,保持其本质不变,然后敲一遍。
举个例子:书上有个 simplify函数的例子,它是把参数的数学表达式化简,比如 f1 = (6*x + 6)/(x^2 + x - 3) - ((2*x + 1)*(3*x^2 + 6*x - 1))/(x^2 + x - 3)^2,这个表达式很长,用simplify化简一下,f1 = simplify(f1), 结果是f1 = -(3*x^2 + 16*x + 17)/(x^2 + x - 3)^2 。 而我们学习这个函数的用法,就换一种更简单的情况,比如化简这个表达式:f = ( x - 1 ) * ( x + 1 ),这个表达式是我们自己想出来的, 然后simplify( f )看看结果,结果是 f = x^2 - 1,符合我们的预期,达到了学习的目的。
程序员如何学习书本上的例子
时间: 2024-10-20 10:17:32