作为一位大二的同学(多少也算个学长了哈),经常听到一些大一的同学发问关于学计算机很迷茫的题目。学C有什么用?推荐几本书吧!学C++要看什么书?怎么设计窗口程序?我要学JAVA,怎么学?....诸如此类的问题。而某些学长或者网络回答的建议都是C要先学精,不要太急躁.......是,不假,C语言的确要学精的,急躁是不能有的。但想一下,对一个大一的同学说C语言要学精对他来说有什么用处,或者说我们就是大一的,问这个问题,回答是C要学精,是不是一样云里雾里的?我想是的。因为我曾经也报过这个关念,并且发现这种观念点用没有,只是让我更加困惑,而且很多接受这样回答的同学也是很困惑,因为什么也不懂,什么也不知道,又哪来的学精呢?精的标准是什么?怎么学精?这些问题更让人痛苦。有些同学就直接把课本翻来覆去看了N遍,题目翻来覆去全部敲一遍,但回过头来又问我,为什么我感觉C语言没什么进步呢?老是这些东西,都写够了。其实态度是很好的,但是方法不得当。
这个问题上,我的回答或者建议一般是,尽量用C进行底层的扩展(是硬功一方面的),语言归根到底只是一个工具,是一个把你的思想变成计算机指令的工具,主体和灵魂你的思想,而不是语言本身。如果为了学习语言而学习语言,那么最终语言肯定是学不好的。就像为了跑步而跑步一样,你跑起来会有动力吗?你会有一个跑到什么样跑多远跑多长时间的标准吗?又觉得这样跑步有什么意义吗?所以,学C是为了用,而不是为了C。这里讲的底层扩展是指对语言有一个概观的了解后应该学一些用到这些语言的东西,比方说数据结构,比方说某些竞赛的题目,而不要局限于课本上的东西。课本的题目是对应某一章节的,目的是让你熟悉某某功能,很多课本(不排除一些经典的)本身都有一定的局限性,让你的思维无法自由展开,自然语言应用的会很生硬,程序写不出来。多把自己的某些想法用语言来表述一下,让计算机执行自己的命令,这才应该是一个程序员应有的成就感。关于学其他语言和技术的问题,举这样一个例子,C就相当于倚天屠龙记里边的九阳神功,而其他的都是一些诸如乾坤大挪移之类的神功。如果没有九阳神功护体,那么学乾坤大挪移三十年才能学到第二层,还容易走火入魔的。但是有了吗...呵呵,就到这了,也算是给大家一点建议吧,好于不坏大家评判吧。