天天看点

为什么要学习数据结构与算法1.为什么要学习数据结构与算法2.什么是数据结构与算法3.数据结构和算法需要学什么4.怎么学数据结构与算法

1.为什么要学习数据结构与算法

在还没有认真的学习数据结构之前,我也在一直思考,大学期间的代码编写能力,所有的业务逻辑,都是已实现功能为主。甚至都是连基础的逻辑算法题都写不出来,很长一段时间内都没有正视这个问题,我到底为什么要学习数据结构,网络上都说,学习算法数据结构是程序员的内功,学习计算机网络和操作系统是作为一程序员必须要学的基础知识,专科阶段学校没有开设这些课,自己虽然参加竞赛,但是也是业务层相关的知识,自己也是从来没有正视过这些问题:

  1. 没有开设为什么自己不主动去学
  2. 所有的业务逻辑为什么就只着眼于实现功能不进行优化
  3. 为什么在自学的过程中总想着偷懒
  4. 为什么我现在连最基本的写代码都沉不下心来

这些问题都是我值得思考的,如果遇到问题没有总结,总结完之后没有解决,也许计算机就不适合我这一个慵懒不思进取的人。

我并不想做一辈子CRUD,把本该做好的事情做好之后,要进步!!!

2.什么是数据结构与算法

什么是数据结构?什么是算法?

数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。

那数据结构和算法有什么关系呢?

数据结构是为算法服务的,算法要作用在特定的数据结构之上。

3.数据结构和算法需要学什么

  1. 最常用的算法和数据结构:“是什么”,“为什么”,“怎么做”
  2. 首先要掌握一个数据结构与算法中最重要的概念——复杂度分析。

    数据结构和算法解决的是如何更省、更快地存储和处理数据的问题,因此,我们就需要一个考量效率和资源消耗的方法,这就是复杂度分析方法

  3. 基础是数据结构有:数组,链表,栈,队列,散列表,堆,二叉树,图,跳表,Trie树
  4. 基础的算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配。

4.怎么学数据结构与算法

  1. 边学边练,每周花点时间将三节的内容涉及到的数据结构和算法实现一边,用C和JAVA都实现一遍,中间遇到的所有问题都总结。适度刷图。
  2. 多问,多思考,多互动,学习最好的方法就是找几个人一起学习,一块讨论切磋。
  3. 最怕就是,三天打鱼两天晒网,坚持不下去,这样需要给自己设定目标,在学完每次课后都整理一份笔记。
  4. 沉淀,不要基于就成,看一遍学不懂没关系,如果一遍就能够看懂的话,也许就不是这个样子,要正视自己,看不懂很正常,既然当不了天才,那就像小李一样当勤奋的人,虽然不会幻术和忍术,用体术的成为一名忍者。

思考一下,我现在能做什么。

计算机专业专科毕业,专升本成功,二本院校,目标是考研,南京邮电大学。

英语,四级三百多分,需要提升的地方非常多。

数学,专科三年完全没有学过,虽然高考数学有一百多但是三年没有学数学,要学好也是要花大功夫。

政治,虽说在学校里面有点政治觉悟,入了党,考研政治就是一个学习态度,端正态度,努力勤奋。

专业:到目前为止已经学过一边的知识(学是学了就是没有掌握)

  1. C语言:专升本考试学的
    1. C语言概述
    2. 数据类型、运算符与表达式
    3. 逻辑运算和分支结构
    4. 循环结构
    5. 函数,预编译
    6. 指针
    7. 结构体和共同体(还没学完)
    8. 文件(压根没学了)
  2. 计算机基础
    1. 计算机基础知识
    2. 计算机硬件系统
    3. 计算机软件系统
    4. office基本操作(还没到二级难度)
    5. 计算机网络
    6. 数据库系统(access)
  3. JAVA
    1. java基础:数据类型、变量与常量、运算符、字符串、输入输出、流程控制、数组
    2. 类与对象
    3. 继承、封装、多态
    4. 反射
    5. 接口
    6. 异常
    7. 泛型
    8. 集合
    9. 并发,IO
    10. jdk8的一些新特性,stream,lambda表达式等

      虽然java学了很多遍,感觉还是迷迷糊糊,懵懵懂懂,说是说学了吧,但是啥又不懂,JVM,这些就没学了

  4. web
    1. HTML5+CSS3
    2. jQuery+ajax
    3. VUE
    4. node
  5. 数据库
    1. MYsql
    2. mongodb
  6. spring
    1. spring
    2. springMVC
    3. Mybatis
    4. springboot
  7. scala、spark、hive、Hadoop
  8. python
    1. python的基本语法
    2. 爬虫scrapy
    3. Django
    4. pandas+numpy

感觉是学了很多东西,但是仅仅只能算的了解一部分,导致我现在非常迷茫,很多东西仅仅只是掌握的皮毛,计算机一些基本的数据结构,计算机网络这一方面就没有学,这也是在专科的学习生活的一种不足,以升本为起点,在这两年里面打好基础,考上南京邮电大学的大数据方向的研究生。冲!

继续阅读