晚间和同学散步,我们讨论“如何提升coding能力”,让我联想起早上的素质教育课程。上一次听职慧的讲座是关于时间管理的,很有印象,他们的四字总结深入人心,这次类似。解决问题的步骤,他们有“望、闻、问、切”四字决。我突然想,如何用四字诀来分析我们刚才的问题。首先,提升coding是一个模糊的目标。我们首先要搞清楚当前的状况,然后列出预期达到的目标。为什么要提高呢?是写代码慢还是写不出来呢?如果是慢,什么叫慢。如果是写不出来,那是写什么写不出来,是写作业还是写项目。这样一想,发现自己的问题是C编程写作业代码慢,简单的作业耗时大大超过预期。而自己预期达到的目标是独立完成一个C语言小项目。现在的目标就清晰了。我是希望由用C语言吃力完成作业的状态转变为用C语言独立实现小项目的状态。如果要量化,就是代码量从100行转换到1000行的级别。目标清晰之后,就是“闻”的阶段。为什么当前C语言只能写100行。写的时候,语法总感觉不太熟悉,总要去查询手册,或者看博客。其次,思考作业思路比较局限,写出的代码逻辑漏洞多。这就是代码只能写100行左右的2个基本原因。先来看语法不熟悉的情况有哪些可能的解决办法。既然不熟悉,说明接触的少,或者未接触过。接触的少,那就需要多写。另外,并不是多写了就记住了,还得分类记忆,不同的函数库,有不同的功能,要对它们的基本函数做分析,为什么属于这个类,这样记忆就会牢靠一点。另外自己写代码发现一点,如果经常通过看博客的方式解决遇到的问题,那忘掉这个函数的速度比查专业函数库案例要快。为什么呢?主要是博客太零散。而专业函数库分门别类,条理清晰。因此,在解决不熟悉函数问题时,用函数库比用博客要好。这也不绝对,函数库往往解决常规问题,有时博客能发现一些取巧的用法,掌握后能提高效率。漏洞较多,这是硬伤。这也是下午和同学重点讨论的。我认为是思维的质量太低决定了代码漏洞多。怎么叫思维的质量低呢?听起来像低智商的感觉。其实是每门学科都有自己的思维体系,计算机学科也是如此。如果不遵循对应的思维方法,那代码肯定问题多。现在问题来了,什么才叫正确的思维方法。如果能搞清楚所有正确的思维方法,写程序就是一件很愉快的事情。答案就在算法和设计模式中。我们常说算法没用,因为我们开发中很少用现成的算法去做一些任务。但其实另外一个我们需要面对的情况是,面对复杂的业务逻辑,有的人能快速理清,有的人却很头疼。这就是逻辑力在起作用。所以,算法的作用其实就是塑造良好的逻辑能力,让你在应对复杂问题时仍然能够有简洁的思维。这是困难的,因为能套用地方并不那么多。有的人可能不怎么懂算法,也能写出优质的代码。因为他们在长久的磨练中,已经具备了实现复杂逻辑的能力。至于如何磨练的,这就存在很大的个体差异,具有不可复制性。因此计算机学科依然是依靠算法来培养学生的标准化程序思维。对我而言,我能选择的也是如此,通过算法的训练来增强程序化思维,把这种思维套路尽可能地用到代码实践中去,去实现100行到1000行的转变。