谈谈“编程能力”

作者: thinkChao | 来源:发表于2017-04-07 21:43 被阅读222次

之前一直不是很懂,为什么计算机专业的学生去应聘软件开发,为什么必考“数据结构”和算法。我当然知道这门课程很重要,但是作为一名搞开发的程序员,在实际工作中,其实很少会接触到数据结构和算法,这些东西大部分已经被封装成了各种API,功能完善,我们只需要做合适的调用就可以了。那到底为什么还这么重视数据结构呢?难道是因为这门课比较适合检验我们的学习成果?最气人的是,有人说这是程序员的基本素养,说的没错,但废话一句,程序员需要的素养多了去了,怎么偏偏这么宠爱它呢?

去问别人,他们给出的答案也很简洁且显得很高大上,是为了测试你的“编程能力”。我靠!我只想要一个解释,结果给我一个概念——编程能力。那什么又是编程能力?不要告诉我就是“编写程序的能力”,虽然这句话说的很对。好的答案其实一定就隐藏在某本书的某一页里,或者互联网的某个字符串里。我很幸运的找到了,不过在遇到之前,还是要自己先思考一番,当你发现答案的时候,感觉似乎和你想的也差不多,只是自己不够自信能证明自己想的就是对的。说实话,作为一名计算机专业科班出身的学生,竟然没有深入的思考过这个问题,一直处在无知的状态中,也真是惭愧。更诡异的是,这句话就一直挂在我们学生和老师的嘴边,但却没人真正的给我们阐述一番,到底什么才是“编程能力”。

学习数据结构,很重要的一点,是学习堆栈,二叉树,图等经典结构,因为这些都是很有用的逻辑结构,可以帮助我们更好的实现某些算法,每一个牛逼的算法都是基于这些数据结构的。除此之外,对于我们普通程序员来讲,之所以这么重视数据结构,其实就是为了考察我们的编程能力——把现实问题转化为计算机可执行程序的能力。

我们人类的语言表达相对于计算机来讲,其实很抽象、很模糊。比方说“树”这种数据结构,我们其实很容易就理解它的核心思想,以及遍历算法,给我们一个数组,我们很快就可以在纸上画出一棵二叉树,并给出各种遍历。但计算机不同,计算机是一种很笨,很机械的机器,只会按照预定的指令一步步执行。所以这就需要我们程序员,把自然语言描述的问题转化为计算机语言的表示,让计算机一步一步的去执行。这是一种非常重要的逻辑思维能力的锻炼, 也是程序员入门的条件。

此外,如果是纯粹的考察算法,那就不是考察你的编程能力了,更侧重的是你设计算法的能力,或者说是逻辑思维能力。对时间复杂度、空间复杂度都有较高的要求,这个时候,就应该往算法设计上去努力,有点考察一个人智商的意思,一般脑子逻辑不清楚的同学,也想不出效率太高的算法。

当你知道了什么是编程能力后,你就可以通过刻意练习,来提高自己的这种能力。当然了,数据结构只是基础,更复杂的问题就需要类库、框架、模式等的支撑了。

相关文章

  • 谈谈“编程能力”

    之前一直不是很懂,为什么计算机专业的学生去应聘软件开发,为什么必考“数据结构”和算法。我当然知道这门课程很重要,但...

  • 谈谈 dart_objc 混合编程引擎的设计

    谈谈 dart_objc 混合编程引擎的设计谈谈 dart_objc 混合编程引擎的设计

  • 前端思考

    编程语言 编程思想 编程能力 学习能力

  • 谈谈对于响应式编程RxJava的理解 - 原理篇

    谈谈对于响应式编程RxJava的理解 - 核心思想篇谈谈对于响应式编程RxJava的理解 - 原理篇 源码分析 我...

  • 谈谈对于响应式编程RxJava的理解 - 核心思想篇

    谈谈对于响应式编程RxJava的理解 - 核心思想篇谈谈对于响应式编程RxJava的理解 - 原理篇 对于RxJa...

  • 编程能力

    为什么现在非常注重编程能力呢,一旦有编程能力,自己在哪个行业都是可以生存下去的。 因为涉及到网络,我还是觉得 ,得...

  • 1-1作业参考答案

    模块一:函数式编程与 JS 异步编程、手写 Promise参考答案 简答题 一、谈谈你是如何理解 JS 异步编程的...

  • 自学Python发现很难,入门方法到底是什么?

    学 Python 发现学一门编程语言很难,有哪些学好编程的方法或技巧? 今天,我们抛开语言本身,来谈谈学习编程的具...

  • 未来是属于少儿编程的!

    少儿编程真的有那么重要吗? 今天我们一起来看看编程达人康奈尔硕士Brikman和我们谈谈,关于编程思维的重要性。 ...

  • 少儿编程--窥一窥

    编程课的主要目的应该是启蒙,让孩子接触编程知识,在编程学习中强化逻辑思考能力、系统思维能力以及组织协调能力,进而激...

网友评论

  • 一蛮牛:今年想学编程来着,朋友说的第一句就是要先学习数据结构,说是要打基础
    一蛮牛: @插着扇子的石头 现在还是门外汉,不知道从何入手,感谢分享,还望多多指教
    thinkChao:是的,最好还是先学一门编程语言,因为在学数据结构的时候,最好边学边上机实现,理解更透彻,同时锻炼了编程能力。建议学C,java个人感觉确实不太适合算法编程。
    插着扇子的石头: @vavy 学编程不是先学编程语言么?我当时就是先学语言,然后同时学算法和数据结构,数据结构强推严蔚敏老师的书
  • 流川枫AI:看完了,还是觉得有点模糊的,但是想找工作就只能硬看了呗:joy:

本文标题:谈谈“编程能力”

本文链接:https://www.haomeiwen.com/subject/xxjkattx.html