大一软件工程学生,看完了谭浩强的书,越看越迷茫,感觉并没什么用,什么大程序都不会编,求指点?

https://m.toutiao.com/is/JE2SmKW/

谭浩强的书主要介绍了C语言的语法。这就好像我们学习英语的语法一样。学会英语语法后就想写一部传世的经典英文著作还是很难的。你学完这本书有迷茫的原因是学习教学与工程实践方面有存在脱节的地方。相信很多人都有过类似的感受。

为什么不能写大程序呢

学习C语言语法之后,我们通常只能编写一些黑窗口的程序。做一些简单的运算,输出一些九九乘法表啥的。让人感觉似乎C语言没有什么用。其实C语言是非常基础的语言,学会之后再学习其它内容是有帮助的。

为什么学完C语言之后不能写大型应用呢?主要是具备的知识还不够。比如要想开发一个如下所示的股票软件,除了C语言的知识外,还需要学习GUI(界面)的一些API。这些API用来展示一些窗体或者其它的组件信息。这些API可以是MFC或者Qt等截面组件。C语言的作用是将这些组件粘合在一起,展现自己设计的功能。

当然,这个要看具体实现什么功能的软件。也有一些软件是不需要知道API的,比如Linux内核,其实就是纯粹的C语言。Linux内核实现了对硬件的管理,并给其它应用提供了API。

另外一些软件,比如Redis,它使用操作系统的一些API,比如网络通信的API。所以法无定法,学完语言后你就掌握了基本技能,至于开发什么大型的应用,则可能需要依赖另外一些东西。

写大程序需要什么

写大型的应用程序需要什么?除了语言的基本语法外,自然是需要学习一些API了。这些API视你要开发的软件而定。我们可以将这些API理解为汽车的轮胎,反光镜,发动机和变速箱。而语言的作用则相当于将这些零件安装到一起。

当然,如果你够厉害,也是可以不用这些API的,也就是自己造轮子。

至于需要学习什么API则视期望开发的软件类型而定。比如你要想开发Linux内核,那么自然要对内核中的API有所了解,还包括内核的架构原理,数据类型等等。

如果你要学习Windows应用开发,自然要对Windows提供的库,API等内容有所了解。

如果你要想开发嵌入式的软件,可能需要对硬件和驱动框架有所了解。

如果你要想开发网络软件,则需要对相关API,协议等内容有所了解。

太多了,看看你要开发什么软件吧。

如果想了解C语言可以干什么,可以学习一些C语言的开源项目,比如Redis,Memcached和Nginx等等。当然,这些项目都比较大,一开始可能会被吓到。不过可以先学着使用,然后在阅读代码。

希望能帮到你,如果有什么问题可以在留言区交流。

(0)

相关推荐