读大学前,并不知道是什么是计算机科学,只知道电脑很神奇,可以打游戏,可以看视频,那时候的手机还是翻盖式的诺基亚,没有现在的触屏,拿着塞班系统的诺基亚,登录短信版的QQ。
读大学后才知道计算机是什么,是一个可以运算的机器,你写了指令告诉它,它就会执行,具体底层怎么实现仍然不知道。后来学了计算机组成,操作系统,编程语言,计算机网络,计算理论,编译原理,才知道原来是那么的朴素。
走入社会后,大学学的很多东西都融合进了日常的工作开发中,但是看到很多从其他专业转入,或者中途入门的其他同事们,他们对计算机基础知识如此苍白,导致写出的代码可维护性,可读性,可用性受到极大的影响。
为了自己能够温故而知新,也为了方便其他非科班的朋友们,可以了解这些朴素的计算机知识,所以写了这一本和编程有很大关系的书:数据结构与算法(Golang实现)。毕竟,编程是写代码,而代码与数据结构和算法,关系最密切。
大家都知道,计算机编程语言没有好坏之分,最好的接近计算机底层本质的高级语言仍然是 C
语言,但是它太难学,有许多头文件,编译环境也经常出问题,对于刚入门的人实在不算太好的语言。
同时 Java
语言太重,学习时间太长,概念太多,太抽象。 而 Python
和 PHP
脚本语言又太省略,太友好,友好得让你得过且过。Golang
语言很接近 C
语言,语法相对简单,历史包袱也比较轻。所以,我会用 Golang
语言来实现数据结构和算法。
在后面的章节中,我将会用精简的语言来描述相关的知识,尽可能让没有计算机基础的人也可以看懂。