首先需要慢慢理解程序设计的思维方式!
记得我们刚上这门课的时候老师就讲了一个很有名的公式:
程序 = 算法 + 数据结构
大家听了也很懵逼,按字面理解,首先是算法?难道有个还有什么复杂的计算?数据结构?数据有什么复杂结构么,跟这个hello world没啥关系啊?当然是因为我们不理解,所以出现上面的尴尬。
其实这个公式比较好的概括了程序设计的思维方式。所谓算法就是解决某个问题的方法,或者说就是一条一条的指令,来指示计算机怎么做,比如通过二分查找来找到某个有序数组中的某项内容。而算法的实现则依赖具体数据的组织或简单或复杂,比如查找多个数据,我们用数组来组织或者使用表来组织。
给出具体的需求,然后完成程序设计。仔细一想这不跟女朋友下达指令,你完成具体的任务类似么。一个用程序设计语言完成,一个则需要用人完成,程序设计语言有它本身的语法规则,而人也有人的行为准则,但是两者的思维方式是类似的。
例如,女朋友让你去买五斤西瓜,拿到需求首先分析附近买西瓜的地方有哪些,距离如何?新鲜程度如何,是否会宰人,价格如何?考虑完之后就考虑算法,这里也就是去买瓜的路线,既然有了路线那同时也要考虑交通工具,也就是要考虑的数据结构,毕竟走路和坐车以及开车的效率是不同的。算法和对应数据结构的结合才能达到理想中的效率,你路线虽然选的好,但是走路可能时间会慢一点,或者你虽然开飞机,但是你左绕右绕也会慢一点。
你现在刚接触c语言,类似人刚来到这世间,你需要熟悉最基本的规则,比如完整程序包含什么?程序从哪里开始从哪里结束? 学习到的具体各个关键字如何使用?各种符号的含义?当这些有了些基本概念后慢慢能够写出一些简单的程序。在以后就是预处理的概念?函数的使用与特点?指针以及数组?内存管理?熟悉了这些以后就可以写一些稍微复杂一点东西。多动手码代码以及调试是学习过程中不可或缺的一部分。
熟悉了基本的语法以后当然还有一条很长的路要走,包括如何书写高质量代码?空间时间复杂度?数据结构与算法?操作系统应用以及内核等等!
网友评论