大一软件工程专业,按照正常的学习计划来讲,应该是刚开始学习一些编程语言,比如C语言,Java语言等比较流行且具有代表性的语言,C语言是面向过程的,JAVA是面向对象的语言,基本是面向过程与对象的两种语言了,那也有学习C++面向对象的编程语言的。不过相对JAVA语言来讲,难度稍高一点,且没有JAVA对开发者那么友好。
学习算法需要有较好的语言基础,这是万丈高楼平地起,地基是非常重要的,还需要一定的数据结构的基础。所以不要一上来就直接啃算法,欲速则不达,直接啃效率估计不高,还是一步一个脚步好点,这样对算法的理解也更为深入。那么基本的路线是这样的,仅供参考:
还有一点需要强调的就是数学,做算法的都必须以数学为背景,在你越深入时你就需要数学,所有搞算法的人里面就有很多是数学家出身,这个是必须重要。比如神经网络来做人脸识别算法,就会涉及到概率论、矩阵论的一些数学知识,如果没有,基本是寸步难行。
路线定好,就得想想学习的方法,好的学习方法事半功倍。需要找到适合自己的一套行之有效的方法。基本是学习理论——>上机实战——>再学习——>再实战这样一个不断重复的过程。根据偶的经验,偶介绍一下比较好的书籍:
C语言:
《c primer plus》
知识覆盖面广,讲解精细、非常全面,适合初学者,没有复杂的数据结构和算法 ,很有利于学习建议上机多练习解题,熟能生巧。
《C与指针》指针是C语言的精华所有,这本是C语言最好的进阶书籍,没有之一,不接受反驳。呵呵。
C++语言:
《C++ Primer》
C++大师Stanley B. Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,可以说是经典之种的经典。对C++的知识具对很强的权威解释。同时具有大量的习题,对中高阶程序员再合适不过了。
数据结构:《数据结构与算法分析:C语言描述(原书第2版)》或
《数据结构与算法分析:C++描述(第3版)》
二选一即可,偶建议选后者,
不多说,非常不错的一本书。
最后是就到算法,经过前面的铺垫,已经万事俱备,只欠东风了,要狠下心来啃一下算法大部头了。这个书是当之无愧。需要多遍地去啃,你会越来越发现它伟大的,你会发现简直太厉害了,令人欲罢不能。
选择算法这条路,注定布满困难,你需要做的不断的坚持,偶见过好多在学习的路上学得一知半解,半途而废的人。坚持不是说说就完,需要很大的毅力,在学习的过程,可以找一些同路中人一起讨论一起研究,这样会让这个学习过程显示没那么艰难,相信四年的学习,一定会让你学有所成的。
希望偶的回答能够帮忙到你,喜欢就加个关注吧!