感觉身边搞过 ACM-ICPC 的人学东西都很快,而且逻辑分析能力都很强,这应该和他们进行过的算法训练有关吧。
我是大二下学期才算正式接触编程的(非计算机专业),当时跟一个老师做C++相关的项目,连栈(stack)是什么都不知道,也不知道时间复杂度、空间复杂度为何物,经常想到哪写到哪,结果就是写出来的东西乱七八糟,根本完不成老师布置的任务。大三选修了计算机学院的“数据结构基础”课程,发现对提高自己编程能力很有帮助。大部分时候虽然不会自己去实现数据结构和算法,但清楚什么场景下应该选取哪种数据结构和算法才能更好地解决问题。
英文好的话直接去 coursera 上课,配合<Algorithms>这本书一起看:
https://www.coursera.org/course/algs4partIhttps://www.coursera.org/course/algs4partII中文的资源我看过计蒜客的<程序设计竞赛入门>(
http://www.jisuanke.com/course/8),讲解+练习的形式,比较基础,但感觉入门很合适的。