算法一直是我的薄弱项

说去看这方面的书吧,也看的挺头疼的,当项目中需要用算法的时候才会去深究其原理
我想知道大牛当初是如何自学算法的

我不是大牛。。。根据需要学习算法其实很正常啊。如果你对某个算法不感兴趣,也没有项目要用到,那对它的学习动力肯定不够的。我也是对自己感兴趣的、课程/工作里用得到的算法学习得深入一些,譬如图论的各种算法,可视化相关的算法,优化搜索性能的各种算法等。

学习算法比较重要的一点是一定要结合应用。光是看肯定理解不深,要实际去实现算法,在实际的项目里应用算法,才能对算法的原理、适用范围、优势和局限等方面理解得更深。