感谢图灵社区的电子书阅读奖励计划。
这本书更恰当的名字应该是“使用JavaScript实现数据结构和算法“,并且12章只有3章是在介绍算法,前面都是数据结构相关。
其实前面的部分还不错,尤其是介绍”栈“、”队列“的时候,不仅给出使用JavaScript
实现这两个经典的数据结构的代码,还有使用最新的ES6
语法实现方式,最最好的地方是,它给出了使用场景。
作为一个非计算机专业,在接触过编程一段时间并且有实践经历后,我一直想要学习这些”科班“基础,但一直都以失败告终,因为不知道这些数据结构能用在哪里,Array
就够了为什么还要Map
,还要Stack
?
我以为我的疑问会在这本书中得到解答,梦想总是美好的,到了第三种数据结构”链表“的时候,后面只给出了这句话:
...相比数组最重要的优点,那就是无需移动链表中的元素,就能够轻松地添加和移除元素,因此,当你需要添加和移除很多元素时,最好的选择就是链表。
说得很有道理,但是”很多“元素是多少?10 个?100个?
说实话完全无法接受以准确为生的程序员会给出这种答案,你能接受产品给你的需求是,”当输入框内文字很多时,给出提示“???
但我还是耐着性子看了下去,说不定只是链表不太好找实例呢?
结果到了集合,小结部分是这样描述的:
...介绍了在其他编程语言的集合数据结构的实现中不常用的一些方法,比如并集、交集、差集和子集。因此,相比于其他编程语言目前的
Set
实现,我们实现了一个非常完备的Set
类。
为啥这些方法不常用?是没有用处吗,如果能用到是在什么场景呢?为什么这么感觉是在炫耀”我好棒棒“?
结果到了后面都是类似这种了,作者似乎默认了读者有一定的基础,不再顾忌读者的感受,一味只顾自己。
总结
这本书的定位究竟是什么?不知道,但我觉得不是给所有的JavaScript开发者看的。这又延伸出一个问题,究竟怎么样写书,才能让人接受?
看起来定位于”基础“但实际并没有考虑”基础“者的能力,高阶但我又能看懂,虽然记不住,鸡肋啊。
网友评论