观看网易公开课 Mehran Sahami教授的《斯坦福大学公开课:编程方法学》后的随笔

目前,我已经观看了斯坦福大学公开课中的第三次课程《Karel与Java》,从中收获了许多宝贵的知识和经验。以下是我在学习过程中得出的一些要点:

1.软件工程与普通的编程有所不同。在编写软件时,我们需要考虑许多因素,如可移植性、易于升级和维护等,而不仅仅是实现功能。这意味着我们需要更加注重软件设计和架构,以便在未来能够更容易地扩展和修改代码。

2.尽管代码是写给机器执行的,但更重要的是让人能够理解它。事实上,后期维护和调试工作往往需要花费数倍于编写代码的时间和精力。因此,让代码变得规范、易读和易维护至关重要。

3.在编写代码时,我们应该准确地定义函数、类和包的功能。好的代码应该具有高内聚(即模块之间的功能紧密相关)和低耦合(即模块之间的依赖关系尽可能简单)。这样可以提高代码的可读性和可维护性,同时也有助于团队协作。

4.我们应该从最基本的功能开始实现,通过这些基本功能来构建更复杂的功能。这样做的好处是可以减少代码的修改频率,因为我们已经为可能遇到的问题做好了准备。这种方法有点像自顶向下的设计思路,即从整体出发,逐步细化每个部分。

5.在一个类文件中,主函数通常位于最上面。主函数中定义了实现功能的大致步骤,而每个具体实现方法则写在后面。由于我们自己编写代码,所以不必担心未定义的函数。我们可以根据需要随时添加新的功能和方法。

总之,通过学习这门课程,我对编程方法学有了更深入的了解。我认为学习编程应该遵循一种一问一答的方式,将所有问题都视为需要解决的问题,而不是理所当然的事情。只有这样,我们才能不断提高自己的编程能力。