Skip to content

lefex/DSA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DSA

这个项目主要用来记录我学习的过程。DSA(Data structure Algorithm 数据结构与算法),希望通过这个名字来告诫我,数据结构和算法很重要,即使工作中用的比较少,但是它能够调整写代码时的心态。同样的代码,不同人写出来却千差万别。

《C++ Primer Plus》:

学习数据结构和算法,前提是需要一门语言来写代码。我以前只是看书了,结果发现自己什么也不会,这种纸上谈兵只会浪费我更多的时间。语言我选择了C++,因为我觉得这种偏底层的语言能够让我更容易理解计算机的原理。学习C++我选择了**《C++ Primer Plus》**,这本书讲的特别详细,读到每个章节我都记录读书笔记,你可以前往 Issues 中查看。

有了语言的基础,你就可以开始刷 LeetCode 上面的算法题了。

编译原理:

回顾我所用过的编程语言,有C++、C、Python、Objective-C、Swift、Java、JavaScript,那会我很难考虑清楚为什么会有这么多的语言。如今,通过编译原理这本书,我大致明白了为什么会有这么多语言。我试着回答一下这个问题,可能会随着我的认知,答案越来越明确。语言是为了能够更方便、快速地与计算机进行沟通的一种工具,它最终都会通过编译器转换成计算机能读懂的语言,而有些语言在运行时由解释器解析成计算机能读懂的语言。为了让编程者更方便地与计算机进行交互,语言设计者尽力把语言设计的足够简单。

设计模式:

解决不同的问题可以用不同的实现方式,选择一种容易理解,逻辑清晰的结构无非让维护成本变得更低。而设计模式就是告诉你,该用哪种方式会更好。

《Effiective Objective-C 2.0》:

52个技巧,让你写好 iOS。代码写的不清晰会耗费非常多的时间来维护,也会引发各种问题,最终你会发现改一个需求比自己重新写一遍还会耗时的时候,你心里就会骂爹,这TMD是谁写的了。

《iOS和MacOS性能优化》:

让你的程序跑的更快,更省资源。

《Android第一行代码》:

Android 入门的第一本书。

《重构改善既有代码的设计》

我有个习惯,写完需求会花费一些时间来重构我写过的代码,发现最终会删掉好多没用的代码,删掉很多不合理的写法,都靠这本书了。

我的公众号,平时写一下自己的想法

About

Data structure + Algorithm

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published