0. 前言

从入学以来,编程能力一直放在自己需要提升的部分当中。慢慢的学习了一些常用的算法,Leetcode 上也刷了更多的题。自己在课程作业中比着葫芦画瓢完成了一些小的 project,现在使用模拟器也需要阅读 C/C++ 代码。不过还是存在疑惑,什么才叫做编程能力呢?如何评估自己的编程能力呢?

1. 个人理解

  • 针对实际应用,top to down 的抽象。需要在脑海中建立相应的一套模型,包括类的构造、函数需求等等。
  • 动手实现的能力。有了思路后快速构造出模型,并加以验证,通过反馈不断地迭代自己的代码。这个应该算是实实在在的 coding 能力。
  • Debug 能力。目前对于真正工程中的 Debug 还是有一些困惑。

总结了一些东西,归根结底是感觉自己虽然写了一些小 project,但还是什么都不会,编程能力很差,不知道怎么办。但是好像学再多的知识还是有这种感觉。所以有想法可能得先做起来。该有的东西都学了,还没学的东西,只有需要用到的时候去学,才能记得深刻。

这也是为什么觉得 CS 课程里面的 lab 是最重要的东西,最让人印象深刻的东西。做 lab 之前我也什么都不会,但是没办法我需要在 Due 之前做出来,不然就拿不到分。于是我去搜索相关资料,我去想怎么做怎么写,我去真正地写了,我去找哪里写得有问题,最后我把正确的东西做出来,或者没有做出来 :( 但是不管怎么说,这就是一个学习的过程,提升编程能力,阅读代码能力的过程。

  • 从最基础的东西开始做,一点一点增加功能和深度。
  • 做一个成品,一个有完整功能的成品。不能 work 的半成品没有意义
  • 早点开始做,不要想太多。对于模拟器也是一样的,源码看的差不多就可以上手自己改了,不要等到把模拟器每个位置都看懂。