看得见的是语言的语法、程序的流程、各种理论和概念。看不见的是“计算思维”。
考试成绩还不错,说明你读书背书能力很强,但是并不一定有很好的计算思维。
所谓计算思维,就是“以计算机的方式去对问题进行思考”。这种计算思维的培养只能通过大量的例题来进行。这也就是说想要学到计算思维,首先要对这个领域充满兴趣,不至于因为大量的题目让自己失去耐心。
培养计算思维有两个方向。
一个就是“学术范”的ACM/ICPC等等的比赛,这种问题对计算思维的提升非常有帮助。而且这种比赛题目、答案、目的都非常明确,非常适合用来训练计算思维。
另一个是动手做一个项目,做一个看得见摸得着的项目。我所接触的学生,他们对计算机的信心和热情逐渐被屏幕上的黑框消磨殆尽。所以你需要一个极大的兴趣点去推动自己。例如你可以去学习图形界面编程、科学计算编程等等能让自己提升起兴趣的内容。
除此之外,想要提升自己的编码水平,很重要的一点就是要多看!看别人的代码。一行一行地为别人的代码添加注释,从而了解到这个问题“通常”的解决方法。这能够为后来亲自编码时提供很多帮助。这也就是“读书破万卷、提笔若有神”的道理。

当然,对于日常来说,读书是用来提升编程水平最重要的手段(甚至我认为是唯一的手段)。什么看视频听讲座,充其量是个为了快速入门而投机取巧的方法。
看书也是要有选择的(请不要认为我崇洋媚外):国内的大学教材以后基本可以扔掉了。因为随着专业知识的深入,你会发现这些教材基本上都跟国外的某一本教材有着大面积重叠的篇幅,而且就算抄也没抄到精髓。国外的教材优点之一是言之有据,所有术语必然是先定义后才会提到的。一般不会找不到太大的纰漏。
就算是找到了一本好书,读书的方法也是很有技巧的。首先我认为一本好书至少要读两遍。第一遍用一天完整连续的时间,通读全书。达到的目标是能够在把书合上时,能说出这本书的主题,主要解决的问题等基本的内容。第二遍就是针对书籍的正文进行精读。不过即便是精读,也是要有侧重的。如果是语言类的书,其实你可以掠过部分冗长的叙述(尤其是国内某些人的书,经常是车轱辘话来回说),直接看示例代码。先按照自己的理解,猜测这些代码的执行效果,再看书或者上机执行一遍,再比对自己的猜测。如果是理念类的书籍,不好意思——这类书籍就一字一句地去看吧。
还有一点我要说的:计算思维跟计算机语言无关。当你拥有了计算思维再去面对问题时,就会发现这个问题的“计算机解法”而非“C++解法”或者“Java解法”。也就是说,你面对的是问题的本身,而不再是细节。(这也就是为啥计算机界的大牛对编程语言并不一定在行,写不出产品级的代码来,但不证明他们就不够牛)。
总结一下:想要学好编程,一定要动手,每天保证一定的编码量和阅读量。可以通过实际的项目来培养足够的动手能力。而这一切的先决条件,就是兴趣
2013.11.15增补:
这是我在第一个回答,感谢大家的支持,受宠若惊中。。。
有人问“应该怎样选择代码去看去学习”,这里我来分享一下我的经验:
如果你还在编程语言上纠结,或者对于某一种编程语言还是入门阶段,那就看书上的代码就足够了。可以试着给书上的每一行代码添加注释,理解这个代码“能干啥”。然后自己尝试小范围变更一下这个代码的需求。按照自己想想的新需求,将书上的代码改造一下。然后猜想一下自己的代码能不能实现这个功能、这个功能的最终结果如何。
如果你正在学习某个框架库的使用,那最好的方法就是去官方文档上面把示例代码都运行一遍,再按照上面的方法去学习。
除此之外再推荐一种非常锻炼人读代码的方法,就是学会Debug,也就是调试。现在基本所有的IDE都已经支持调试了吧。你所要做的就是在程序入口处设置断点,然后让程序单步执行。每跳到下一步之前,都要猜想一下,这里的某个变量的值将会是多少?然后再执行一步,看看真正的值和想象的值是否一致。
有人让我推荐几本好书,我只能说,书这种东西真的是因人而异的。
有些人觉得那种“名字听起来很霸气”的书都是垃圾,有些人觉得经典书籍适合入门。更多的人都是人云亦云,别人觉得好那就真的好。好吧,我只能尽力尝试让自己客观地回答这个问题:
(本处只谈论程序领域的内容,非科研领域)
1,语言类入门:
《21天学通C++》这本书名字听起来很霸气,其实就是把C++中的东西分成了21章去写。这本书被国内的“大牛”们批判的淋漓尽致,但它已经再版了无数次,卖出去了几百万册(貌似是)。笔者就是靠这本书学会的C++,笔者的网名也是出自于此书的一个Example。
关于Java:笔者的Java是对着官方文档学的,学习过程还是相当痛苦的。这里批判一本书就是人人都说好的《Java 编程思想》(Think in Java)。这本书太尼玛难了,覆盖面特别广,对算法等非编程决定因素的依赖太多了。看网上都在给入门的同学们推荐这本书,这类人无异于在教linux新手sudo rm -rf /
关于Python:其实这个才是笔者最常用的语言~但是Python的中文书比较少。推荐一本《Python 基础教程》,图灵出版书。比较适合入门。
之所以叫做语言类入门,就是因为“仅凭书,只能入门”。想要成为大牛,还是要多写代码!代码量到20w行基本上就算大牛了(当然不包括自动生成的乱七八糟的框架)。
2,思想类:
《设计模式之禅》:这本书算是我觉得国内写的比较好的书了。其实国内在有了图灵、Apress、华章等社进驻之后,国人写的书越来越能看了。(让我深深鄙视一下清华社,一如既往地烂几十年可不容易)。
《Restful in Action》:笔者最近在研究这个,觉得这本书还不错,故推荐。
(不能多写了,感觉越写越跑题,这不是书目推荐贴)