美高梅官方网站66159

其实很少会接触到数据结构和算法,好的程序应该如何写

作者:美高梅线上平台游戏    来源:未知    发布时间:2020-05-03 04:43    浏览量:

在我十几岁的时候就开始玩甲级级棒球。我水平很差,但当我决定要做好什么事时,最终总能如我愿。现在我是计算机专业3年纪的学生。在编程上,有些事情和体育是截然不同的:棒球教练可以教会你如何打棒球,但一个计算机教授却不能教你如何编程。

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

我很吃惊,在整个大一期间,我的老师或教授从来不点评我的代码,大二时更是如此。我们的作业很多,题目很难,但在完成了数据结构课上的2000行的代 码后,我从来没有收到过老师的任何一条评论——只要程序能编译通过,单元测试显示没有错误,这就行了。直到遇到了一个小组开发的项目,我才认识到我的代码 写的多烂,我才开始询问:好的程序应该如何写。

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

图片 1

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

  但是,什么样的代码才是好的代码?我花了大量的时间来提高代码的可读性,添加注释。我努力模仿UNIX的哲学观,力求简约,首先让程序能跑起 来,在此基础之上,在需要的情况在进行优化。复杂的东西要逐步增加。除非必要,我不使用线程。但是,说实话,我不知道这是不是好的代码(说实话,我觉得自 己水平很差)。

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

  我很幸运,能和一群优秀同学一起工作,他们都是出色的程序员,他们在微软、谷歌、亚马逊等公司实习。他们的观点都很一致,认为自己的知识都是自己总结或从其他程序员那里学到的。即使是非常资深的软件工程师也有这样的看法。所以,我的结论是:

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

  所有程序员都是自学成才的。

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

  我受的教育给了我很好的基础:数据结构,算法,数据库设计,并行计算,网络编程,敏捷开发以及各种编程模式。但所有的这些,即使是它们使得编程更高效和更精巧,你仍然可能用错它们——我曾经看过一些学生在这些课程上学习成绩非常好,但写的代码却让人想哭。

  我并不认为学过计算机科学、软件工程或得到一个大学文凭会有多大的用处,如果你想靠写代码为生,自学是你不可缺少的途径。

(文/PHP100)    

上一篇:没有了
下一篇:没有了

更多新闻推荐

Copyright © 2015-2019 http://www.77zhth.net. 美高梅官方网站66159有限公司 版权所有