前言


读大学前,并不知道是什么是计算机科学,只知道电脑很神奇,可以打游戏,可以看视频,那时候的手机还是翻盖式的诺基亚,没有现在的触屏,拿着塞班系统的诺基亚,登录短信版的QQ。

读大学后才知道计算机是什么,是一个可以运算的机器,你写了指令告诉它,它就会执行,具体底层怎么实现仍然不知道。后来学了计算机组成,操作系统,编程语言,计算机网络,计算理论,编译原理,才知道原来是那么的朴素。

走入社会后,大学学的很多东西都融合进了日常的工作开发中,但是看到很多从其他专业转入,或者中途入门的其他同事们,他们对计算机基础知识如此苍白,导致写出的代码可维护性,可读性,可用性受到极大的影响。

为了自己能够温故而知新,也为了方便其他非科班的朋友们,可以了解这些朴素的计算机知识,所以写了这一本和编程有很大关系的书:数据结构与算法(Golang实现)。毕竟,编程是写代码,而代码与数据结构和算法,关系最密切。

大家都知道,计算机编程语言没有好坏之分,最好的接近计算机底层本质的高级语言仍然是 C 语言,但是它太难学,有许多头文件,编译环境也经常出问题,对于刚入门的人实在不算太好的语言。

同时 Java 语言太重,学习时间太长,概念太多,太抽象。 而 PythonPHP 脚本语言又太省略,太友好,友好得让你得过且过。Golang 语言很接近 C 语言,语法相对简单,历史包袱也比较轻。所以,我会用 Golang 语言来实现数据结构和算法。

在后面的章节中,我将会用精简的语言来描述相关的知识,尽可能让没有计算机基础的人也可以看懂。