大多数人都听过这样一个说法,就是算法是编程的灵魂。很早就听说了这样一个说法,我也对这个说法是深信不疑。可惜的是一直没能真正当成指导自己学习的准则。
上次面试腾讯,面试官也提到无论是什么应用,说到底还是算法。因为跟我心底的想法是一致的,所以我没有产生任何疑问。
回来后,我就一直在思考,为什么说算法是灵魂是核心?还有,即使我不熟悉那些数据结构啊,算法啊,但那些经典的东西网上一般都会有现成的源码,开发应用时如果需要直接COPY过来不就行了,为什么我们还要耗费精力去学呢?
慢慢的似乎想明白了一些,这些经典的算法之所以经典,就在于它的思想,一个算法解决的不是某一个问题,而是某一类问题;它能启发人们解决的不只是已经的一些问题,还有很多未知的问题。
突然想到编程和写作在某些意义上是惊人的相似。
在最初我们需要学习组词,学习造句,然后学习一些修辞手法,学习一些文章的结构……当你开始尝试写作时,也许你会特别注重这些词语啊,句子啊,修辞的使用;慢慢的,写作能力提升后,你会发现你已经忘记了这些细节的东西,语言只是你表达思想的一个工具。
我们学习编程也是如此,无论使用什么编程语言,编程语言应该是帮助你表达“思想”的工具。这也是编程人员需要追求的一个境界。