我认为不必面面俱到。
事实上,你首先要搞清楚,这个专业无非就是两件事情,第一件事情,用计算机去解决问题的过程与方法,第二件事情,怎么设计一个可以解决某个特定问题的计算机(系统)。
于是,我们就有不同的学习路径。当然,如果是科班出身的话,能够精学几门专业课,然后其它专业课,涉略即可,是最好不过了。
再回头来看,计算机专业的两个任务的共同点有:计算机组成原理、操作系统、数据结构、通信(网络)、编程语言(高级与低级)、算法设计与分析、离散数学。其它的,就根据选择再说了。
例如,如果你是要搞游戏,大概计算机图形学是非学不可了。
如果想从事数据分析,那机器学习是必备的了。
至于教材,课内的教材就足够了。
#计算机软件#
购买以下六本书,认真研读,随便吊打计算机学院本科生。
深入理解计算机系统
现代操作系统
计算机网络:自顶向下方法
数据库系统实现
算法竞赛入门经典(然后在一个叫做《信息学竞赛一本通》的书的配套网站上做题)
算法导论(很重要)
至于编程语言,做项目的框架之类的,就随便百度学一学,平时没事多做做项目就行。
无论你以后什么方向,计算机四门专业课,也就是考研大四门《计算机体系结构》《计算机网络》《操作系统》《数据结构》,这是基础中的基础,区分计算机专业还是别的专业,就看这四门课你有没有掌握。
你需要掌握一门编程语言,一般来说Java和C++二选一,这里我推荐新入门的同学学Java,因为Java用途更广泛,用人单位的需求也更大,能做的事更偏向于应用层。学习的时候,建议去网上找一个项目跟着一起做,简单的比如“餐饮管理系统”“二手市场交易平台”等等,都是可以的。认真学完前两点,你的水平已经能达到本科计算机专业的中等水平了。下面开始进阶,就跟你以后的方向有关了如果你以后想当后端研发,Java方面推荐《HeadFirstJava》《thinkinginjava》《Java开发实战经典》《EffectiveJava》《分布式Java应用:基础与实践》《深入JAVA虚拟机》,排名有先后,依次进阶。然后你就可以了解一些常用的框架,比如SpringMVC等等如果你以后想当前端开发,推荐《JavaScript语言精粹》《CSS揭秘》《JavaScript高级程序设计》《ECMAScript6入门》《JavaScript函数式编程》。然后你就可以尝试做个人博客,非常有意思。如果你以后想当算法工程师,首先推荐你刷LeetCode上面的题目;然后推荐看吴恩达在网易云课堂上的入门视频,讲解的非常清楚;接着推荐看《机器学习》《统计学原理》《深度学习》。有了这些基础,接下来就确定的方向,是cv(计算机视觉),nlp(自然语言处理),ml(机器学习)还是别的推荐系统数据挖掘等等,确定之后就可以针对性的阅读相关书籍与论文。最后,如果你能坚持下来,那么无论你最终选择继续深造还是就业,都没有多大问题,加油!