数据结构与算法究竟重要吗?

   原文地址:http://www.lihuai.net/itlife/feeling/367.html

   数据结构与算法究竟重要吗!?貌似很多刚入门的程序员都喜欢问这样的问题,尤其是对于那些非计算机科班出身的程序员来说更为困惑。ITLee本身也是非计算机专业出身的,今天突然想写这样的一篇博文,是因为前几天的工作经历,似乎让我找到了答案,而且可以说是对我这一年的编程经历的全盘否定。一年了,我竟然还没有迈入编程的大门。
      几天前,因为项目需求,需要用ExtJS技术配合PHP实现一个树形结构。有经验的程序员都知道,要实现树形结构,PHP返回的Json数据需要用一个简单的递归去处理。问题就出在这个递归算法上,因为自己非计算机科班出身的先天不足,对数据结构和算法基本可以说是0概念,当遇到这个问题的时候,完全不知道怎么处理,整整一天的时间,自己一直尝试用循环去处理(后来知道其实用循环也可以实现,只是因为自己能力不足,惭愧),根本就没有想到用递归这种最基础的算法去实现,一整天的时间就白白浪费在这里了。后来问了一个编程大牛,说是需要用递归处理,迅速百度了一些递归的资料,最后终于解决。
      毫不夸张的说,这个问题的出现对我自己是震撼性的。我是大学即将毕业的时候才决定今后从事IT行业,因为自己学的并不是计算机专业,大四最后的几个月里,自己疯狂的自学着PHP。毕业后,可能是自己的努力得到回报,更可能是自己有那么一点点的运气成分吧,找了一份不错的工作,由于毕业到找工作的过程当中并没有遇到过较大的挫折,心里开始慢慢的浮躁起来,浅薄的以为编程也不过如此。错了,我完全错了,直到遇到这个貌似简单的问题,学了一年了(自学半年,工作也将近半年),我的脑袋中根本就没有任何的编程思想,我以前所做的只不过是拿着别人的代码做一个简单的堆砌,毫无客气的说,一年了,我根本不知道什么是编程。
      在将近一年的编程世界里,我的意识中并不是不知道数据结构与算法的重要性,但是由于自学编程的局限性和工作后基本没怎么用到稍微深一层次的编程技术(可能是由于自己刚毕业,领导有意识的没给自己安排),导致自己渐渐的脱离了正确的提高轨道。在平时的工作中,当需要实现什么功能的时候,自己的第一意识往往是利用搜索引擎,找到相似的代码,稍加修改就是自己的程序了。真正的编程是这样的吗?答案必然是否定的。想到这些,真是为自己这一年的经历汗颜啊,想到这些自己都为自己惭愧,这种水平怎么好意思说自己是一个程序员。
      看着别人的代码来写自己的代码,当遇到一些不是特别基础,网上资料不太多的情况就会手足无措,不知道怎么办时,这样的程序员不是一个真正的程序员。或许可以在公司混口饭吃,或许也可以混的不错,但是我相信这样的人,永远不会体会到编程的乐趣,永远不会进入真正的编程世界。这样一个小小的经历带给我的巨大震撼,让我清楚的认识到现在的自己究竟是一个怎样的水平,认识到自己要学习的还是太多太多了。
      对于一个真正的程序员,一门语言的语法格式并不是起决定作用的关键点。真正决定我们技术高度的是编程思想、数据结构与算法。只要掌握了编程思想、数据结构与算法,使用不同的语言去实现是很容易的。相信在所谓的程序员行业中,有很多跟我一样的伪程序员,不注重思想与算法,只讲究功能实现了就完全ok。这样的程序员想要提高自己恐怕真的很难,好在我自己发现还是比较及时的,弥补还来得及!也希望能看到这篇文章的所有编程者,以后都能写出自己的代码,而不是去复制和堆砌别人的代码。

你可能感兴趣的:(数据结构与算法究竟重要吗?)