招聘搞笑事

如果你关注招聘试题,越是大的公司,问的问题越基础,有的甚至问你什么是栈和队列,反而一些小公司会关心你做过什么系统,关注点不同,大公司更注重基础扎实,发展潜力,而小公司希望你立刻、马上为他干活,通常是没什么技术含量的活。小公司喜欢细而长的竹子,大公司更喜欢碗口粗的竹笋。

我曾经推荐一个学生到某知名公司,没多久,学生给我说了应聘的事情:“我介绍我开发了企业管理系统、在线商城系统等等,没想到他问我使用了什么数据结构和算法,我懂很多技术,那么多功能我都实现了,他不问,却问我使用了什么数据结构和算法,你说搞笑不?数据结构、算法我早就忘了,我会开发软件还不行吗?”人力资源总监也反馈过来意见:“很搞笑,这个学生做了不少系统,却说根本没用到数据结构和算法。”

既然双方都觉得这是一个件搞笑事,我们就摊开来看,数据结构到底是什么东西。

拨云见日,看清数据结构

遇到一个实际问题,需要解决两个事情:

(1) 如何将数据存储在计算机中;

(2) 用什么方法策略解决问题。

前者是数据结构,后者是算法。只有数据结构没有算法,相当于只把数据存储到计算机中而没有有效的方法去处理,就像一幢只有框架的烂尾楼;若只有算法,没有数据结构,就像沙漠里的海市蜃楼,只不过是空中楼阁罢了。

数据是一切能输入到计算机的信息总和,结构是指数据之间的关系,数据结构就是将数据及其之间的关系有效地存储在计算机中。算法是指对特定问题求解步骤的一种描述,说白了就是解决问题的方法策略。

遇到一个实际问题,充分利用所学的数据结构,将数据及其之间的关系有效地存储在计算机中,然后选择合适的算法策略,并用程序高效实现。,这就是N.Wirth教授所说的:数据结构+算法=程序

为什么要学习数据结构?

计算机专业本科生都开设数据结构课程,它是计算机学科知识结构的核心和技术体系的基石。研究生考试也是必考科目,随着科学技术的飞速发展,数据结构的基础性地位不仅没有动摇,反而由于近年来算法工程师的高薪火爆,使得数据结构的重视程序空前高涨。很多人觉得基本的数据结构及操作已经在高级语言中封装,如C++、JAVA,栈、队列、排序、优先队列等等,都可以直接调用库函数,学会怎么调用就好了,干嘛要重复造轮子? 那么到底有没有必要好好学习数据结构?

先看学习数据结构有什么用处:

(1) 学习数据有效存储的方法

很多学生在学习数据结构时,问我要不要把单链表插入删除背下来?要不合上书就不会写了。我非常诧异,为什么要背?理工科技术知识很少需要记忆的,是用的,用的!学习知识不是死记硬背,更重要的是学习处理问题的方法。同一个问题,如何有效地存储数据,不同的数据结构产生什么样的算法复杂性,有没有更好的存储方法提高算法的效率?通过学习数据结构,更加准确和深刻地理解不同数据结构之间的共性和联系,学会选择和改进数据结构,高效地设计并实现各种算法,这才是数据结构的精髓。

(2) 处理具有复杂关系的数据

现实中很多具有复杂关系的数据,无法通过简单的库函数调用实现。如同现在很多芯片高度集成,完全不需要芯片内部如何,直接使用就行了。但是,如果在现实中遇到一个复杂问题,一个芯片只能完成其中一个功能,难道要连接十几块芯片来解决这一个问题?这显然是不合适的,我们需要的是完成该复杂问题的一个芯片,因此需要运用所学的数据结构知识,高效处理具有复杂关系的数据。

本文来自《趣学数据结构》,让数据结构变得简单有趣。

学编程为什么要学数据结构?相关推荐

  1. 小学生学c语言编程在哪里学,小孩学编程从哪学起

    1 小孩学编程从哪学起 儿童学编程近几年风霏一时,有些家长仍处于迷茫时期,不明白应该如何去学习.经常会咨询一些小孩学编程先学什么?下面看看小编整理的小孩学编程从哪学起吧. 1.游戏的方式 目前,有很多 ...

  2. python两数相加代码_一边学编程,一边学语数外,用python编程全排列10以内两数加法...

    原标题:一边学编程,一边学语数外,用python编程全排列10以内两数加法 编程并不神秘 编程只是解决问题的一共方法 python是一门编程语言 python是一种解决问题的编程工具 在小学阶段,学习 ...

  3. 零基础无经验,该怎么学编程,要学多久?

    零基础,能学编程吗? 学编程多久能学会? 到底该怎么学编程? 新手学编程之初,总会面临太多太多诸如此类的问题.一方面源于对陌生领域的不自信,另一方面还是因为在编程上系统学习的方法.基于此,市面上也就出 ...

  4. 也谈零基础学编程,需要学什么

    也谈零基础学编程,需要学什么 零基础人群 语法 1.注释 2.变量 2.1 变量命名 2.2 数据类型 2.3 类型强度 3. 运算符 4.流程控制与代码块 5.函数和方法 6.类 算法 学会使用第三 ...

  5. 轻松学c语言编程.pdf等,轻松学编程:轻松学C语言编程 PDF

    资源名称:轻松学编程:轻松学C语言编程 PDF <轻松学编程:轻松学C语言编程>从初学者的角度出发,以通俗易懂的语言.丰富多彩的实例,详细介绍了使用C语言进行程序开发应该掌握的各方面知识. ...

  6. python计算矩形周长_一边学编程,一边学语数外,用python编程学三年级周长计算...

    原标题:一边学编程,一边学语数外,用python编程学三年级周长计算 编程并不神秘 编程只是解决问题的一共方法 python是一门编程语言 python是一种解决问题的编程工具 在小学阶段,学习编程的 ...

  7. python教孩子学编程,教孩子学编程(Python语言版)

    教孩子学编程(Python语言版) 第1 章 Python 基础:认识环境 #NiceHexSpiral.py #运行后,挺奇特,整个作画过程,完全呈现. import turtle colors=[ ...

  8. 三十岁了,学编程好还是学修电脑?

    引言 三十而立,四十不惑,以前秃头哥以为是三十岁以后要事业有成才算是而立,结果秃头哥创业失败了,才知道,原来三十而立是立一个方向,所以根据你的提问才引出了这句话,我们从大的方向来讲,如果你成家了,那家 ...

  9. 趣学python教孩子学编程_[转载]学编程要从娃娃抓起——教孩子学Python

    祝家长与娃娃们编程开心! 请记住,学习本书进行编程是件让人开心的事.不要把它当成一项任务.要把编程当做是在创建有趣的游戏或者应用来和朋友还有其他人分享. 学习编程是一种很好的思维训练,效果也非常好.但 ...

最新文章

  1. android 白天和夜间模式切换时闪屏问题处理方法
  2. Cisco/H3C交换机配置与管理完全手册(第2版)卓越网正式到货
  3. 10_InfluxDB常用函数(三)变换类函数(DERIVATIVE, DIFFERENCE,ELAPSED,MOVING_AVERAGE,NON_NEGATIVE_DERIVATIVE)等
  4. c++成员运算符的重载
  5. 防止页面被iframe包含进去
  6. http:(4):http请求方法
  7. 怎么将oracle的sql文件转换成mysql的sql文件
  8. HTML5---新增客户端储存
  9. 更改项目project名称,与项目名称;
  10. H.264的Slice及Slice类型
  11. Ureport2报表工具金额格式化
  12. 【MEMS传感器】BMI160九轴传感器SPI驱动
  13. c语言自学教程——字符函数和字符串函数
  14. 通过注册表永久禁用系统UAC功能
  15. 平面设计师okr_为什么说一名优秀的设计师要懂得OKR
  16. 地震响应分析中土体动力本构模型
  17. 《数字图像处理》-(3)-1从傅里叶级数到傅里叶变换详细推导以及傅里叶图像的性质
  18. 数据结构:顺序表的就地逆置
  19. Undertow文件上传10M以上抛异常UT000020: Connection terminated as request was larger than 10485760
  20. android 课程大纲,Android课程大纲解读.doc

热门文章

  1. antdv 日期选择框date-picker中英文混显问题解决
  2. 【Redis Study】
  3. 单片机c语言怎样设置闹钟,51单片机c语言电子钟(已加入调时、闹铃、整点报时功能).doc...
  4. 大数据技术在银行业应用中,主要有哪些优势,面临哪些难题?
  5. 【SLAM学习笔记1】欧拉角之万向锁问题(Gimbal Lock)
  6. 15.EasyExcel自定义Convert遇到大坑!!!
  7. C++ 奥特曼打怪兽之多态(系列5)
  8. linux有趣的命令之CentOS7版本
  9. react路由配置,路由跳转与传值,路由监听
  10. 关于计算机知识的手抄报图片大全,网络安全知识手抄报图片