第一个: C语言的学习过程中,基本会有这种感觉,学知识容易,用知识难。虽然大家已经掌握了 if、else、switch、case、while、for 的语法,但是还没有形成编程思维,没有足够的编程经验。编程不仅仅是语法,更重要的是解决问题的能力。那么,初学者该如何跨越这个障碍呢?貌似也没有捷径,只能多看多练(自己不断写代码,同时也参考别人的优秀代码),时间久了自然会养成编程思维;但是注意一些技巧能够提升效率,尽早让自己飞越。
真正的核心:所谓编程思维,就是专业经验,行业感觉。
例子:公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?
题目分析:可以使用数学的方法来解决百钱买百鸡的问题,可以抽象成对应的方程组:
A:5x+3y+1/3z = 100
B:x+y+z = 100
C:0 <= x <= 100
D:0 <= y <= 100
E:0 <= z <= 100
具体代码实现:
#include <stdio.h> int main() { int i, j, k; printf("百元买百鸡的问题所有可能的解如下:\n"); for( i=0; i <= 100; i++ ) for( j=0; j <= 100; j++ ) for( k=0; k <= 100; k++ ) { if( 5*i+3*j+k/3==100 && k%3==0 && i+j+k==100 ) { printf("公鸡 %2d 只,母鸡 %2d 只,小鸡 %2d 只\n", i, j, k); } } return 0; }
在练习C语言的时候,给大家的忠告是,先不要看答案,要尽量自己写代码:
原则1:如果自己能够顺利编写出代码,那么可以跟答案中的代码进行对比,看看自己的代码有哪些不足的地方,答案中的思路是否更好。
原则2:如果不能立即想到对策,那么也要先绞尽脑汁思考,想尽各种办法,查阅各种资料,最后实在扛不住了,再看答案,这个时候就会豁然开朗,受到很大冲击,原来答案中的思路如此巧妙。
第二点非常非常重要,大家一定要先自己思考,不管最后能不能得到答案,都要有一个独立思考的过程,这个过程就是培养编程思维的过程。只有经过缜密的思考,查阅答案时才能受到最大的冲击,这样形成的记忆和经验才是最深刻的。
记住,上来就看答案,一辈子也学不会编程。
第二个:编程思维的培养也没有那么难,往往就是一瞬间的事情,这个一瞬间,就是你独自并且巧妙地完成一道题目的时候。比如对于上面的实例,当你能够进行设计思路的简化,觉得非常欣喜和激动,当你查阅答案时,发现和答案的思路一样,甚至比答案的思路还棒,那么恭喜你,你终于突破了,你初步具备了编程思维,有了一点点经验,能够解决一些简单的问题了。
当你能够独自完成上面的一道题目时,将是一次很大的飞跃,它让你获得成就感,让你初步具备编程思维。
一名合格的程序员,不仅仅需要有理论基础和系统的知识,更重要的是大量编写代码、不断实践,丰富自己的经验,强化编程思维,只有这样,拿到项目才能立马想到解决方案。
内功心法:大家一定要养成独立思考的习惯,在学习和实践过程中遇到问题首先要自己解决,解决不了就借助搜索引擎,而不是先去看答案,或者直接问别人。