84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
不是科班生,没上过大学,也没去过培训班。现在呢想学习算法,但是网上一看有一本叫《数据结构与算法 JavaScript 语言描述》的用JS实现算法的书,但是网上评价不太好。又没啥好办法。“学个C,看数据结构啊”“学习计算机导论啊,学习各种基础啊”这上面的也是我的方向,但是毕竟现在工作用到的是javascript,所以还是着重于它。至于别的基础,我也只能是穿插的学。不知道有什么好方法呢?
闭关修行中......
首先,要学什么,就学什么。C语言的书多,详细,但你还要先学C,学了C,平时写代码也不用,曲线救国道路曲折啊
数据结构与算法的知识,不同于学习jQuery,看看文档直接搞。
可能你看完书后也不会用。最好从实际问题出发。
看到题目要遍历DOM(22课),广度优先深度优先?二叉树?这是个什么东西啊?(一脸的懵比)
然后Google,看维基百科,搜二叉树的知识(用JS如何实现),哇,原来还有二叉搜索树,栈与队列,先记下来
看别人代码,自己仿照着写,回到起点,把遍历DOM实现
抽空看看栈与队列是什么东西,买本书看看
1.发现问题:百度前端技术学院,你可以从十三课做起,这里是我的代码4.《学习JavaScript数据结构与算法》昨天刚买了这本书,值得一看,适合初学者。
最后,我们本来就没有受过系统的教育,自己看书有时实在看不进去,不如从实际项目出发。共勉!
首先说句现实的话,楼主的提问是个伪命题,既然你是javascript菜鸟,那么学习js算法有什么意义呢?其实算法本和语言没有什么关系,但是用某种语言去实践一些经典算法就必须要对语言本身的api和特性熟悉才能学好!比如js你如果不懂闭包,柯西化,函数式编程等这些概念,不能自己撸一些基本的插件或者工具库,那么你所研究的算法怎么可能说有自己的见解,无非是把别人的代码抄了一遍。另外前端中算法的目的何在,我觉得更多在于优化,一个巧妙的算法肯定是提升了性能,解决了某些实际的问题,而不是只是为了装逼,为了算法而算法。不然算法写得再好,如果其他方面做得不好,比如兼容性处理得不好,在某个地方提升的一丁点优化并没有什么卵用。
不是有意喷楼主,打击楼主积极性,而是善意提醒,如果楼主基础不好,如自己所说菜鸟,建议先把js api大致学习一下,一些特性很熟悉了,然后尝试从某个实际问题入手去学习,比如可以先看看别人提出的一些算法背后解决的问题,然后想想这个问题有没有什么办法,然后再考虑不同算法的实现,不然学得很盲目,我见过一些算法书,写得很好很厚,只是那种一般很少人坚持读完,读完了也不见得短期内技术有什么提升,让学习的人可能并没有什么成就感!
每个人都有自己擅长的领域,没必要别人说要学算法就学算法,也没必要所有人都变成全栈,你开发页面的效率很高,页面做得很漂亮,也是有价值的。
至于学习算法,我以前去网易公开课看过一些,我也是非工科生,计算机基础很差。我觉得看书的话效率比较低而且容易没兴趣,推荐看网上的各种公开课,尤其是国外名校的公开课,一部分科甚至水准远远高于国内院校,算法,计算机理论都有。
这是我找到的一些关于JS算法的资源:
https://segmentfault.com/a/11...https://segmentfault.com/a/11...https://segmentfault.com/a/11...https://segmentfault.com/a/11...https://segmentfault.com/a/11...
PS:这些文章的作者是同一个人,你可以关注下,相信应该可以学到不少与JS有关的东西。
如果你能把《javascript权威指南》搞透,你就是大神了。但是它太过于“官方”,我当时看几十页就看不下去了,后来买的《javascript高级程序设计》,这本书已经来来回回看了近10遍了。你说的常用算法什么的,里面都有提及。建议先搞定基础,如果你喜欢算法,那么基础扎实后专攻算法也是不错的选择。总之,凡事讲究循序渐进,切不可急于求成。
leetcode上用js写写题目,每天写一题,每题基本都会涉及一些数据结构,算法的知识,然后再去了解。日积月累下来,你就是大牛了。
好像并没有什么大关系,学习算法主要是思想,语言是工具,能够熟练使用一种语言,就能做一些算法相关的练习,用你会的语言把算法表达出来,学习算法的思想
首先,要学什么,就学什么。C语言的书多,详细,但你还要先学C,学了C,平时写代码也不用,曲线救国道路曲折啊
数据结构与算法的知识,不同于学习jQuery,看看文档直接搞。
可能你看完书后也不会用。最好从实际问题出发。
看到题目要遍历DOM(22课),广度优先深度优先?二叉树?这是个什么东西啊?(一脸的懵比)
然后Google,看维基百科,搜二叉树的知识(用JS如何实现),哇,原来还有二叉搜索树,栈与队列,先记下来
看别人代码,自己仿照着写,回到起点,把遍历DOM实现
抽空看看栈与队列是什么东西,买本书看看
1.发现问题:百度前端技术学院,你可以从十三课做起,这里是我的代码
4.《学习JavaScript数据结构与算法》昨天刚买了这本书,值得一看,适合初学者。
最后,我们本来就没有受过系统的教育,自己看书有时实在看不进去,不如从实际项目出发。共勉!
首先说句现实的话,楼主的提问是个伪命题,既然你是javascript菜鸟,那么学习js算法有什么意义呢?其实算法本和语言没有什么关系,但是用某种语言去实践一些经典算法就必须要对语言本身的api和特性熟悉才能学好!比如js你如果不懂闭包,柯西化,函数式编程等这些概念,不能自己撸一些基本的插件或者工具库,那么你所研究的算法怎么可能说有自己的见解,无非是把别人的代码抄了一遍。另外前端中算法的目的何在,我觉得更多在于优化,一个巧妙的算法肯定是提升了性能,解决了某些实际的问题,而不是只是为了装逼,为了算法而算法。不然算法写得再好,如果其他方面做得不好,比如兼容性处理得不好,在某个地方提升的一丁点优化并没有什么卵用。
不是有意喷楼主,打击楼主积极性,而是善意提醒,如果楼主基础不好,如自己所说菜鸟,建议先把js api大致学习一下,一些特性很熟悉了,然后尝试从某个实际问题入手去学习,比如可以先看看别人提出的一些算法背后解决的问题,然后想想这个问题有没有什么办法,然后再考虑不同算法的实现,不然学得很盲目,我见过一些算法书,写得很好很厚,只是那种一般很少人坚持读完,读完了也不见得短期内技术有什么提升,让学习的人可能并没有什么成就感!
每个人都有自己擅长的领域,没必要别人说要学算法就学算法,也没必要所有人都变成全栈,你开发页面的效率很高,页面做得很漂亮,也是有价值的。
至于学习算法,我以前去网易公开课看过一些,我也是非工科生,计算机基础很差。我觉得看书的话效率比较低而且容易没兴趣,推荐看网上的各种公开课,尤其是国外名校的公开课,一部分科甚至水准远远高于国内院校,算法,计算机理论都有。
这是我找到的一些关于JS算法的资源:
https://segmentfault.com/a/11...
https://segmentfault.com/a/11...
https://segmentfault.com/a/11...
https://segmentfault.com/a/11...
https://segmentfault.com/a/11...
PS:这些文章的作者是同一个人,你可以关注下,相信应该可以学到不少与JS有关的东西。
如果你能把《javascript权威指南》搞透,你就是大神了。
但是它太过于“官方”,我当时看几十页就看不下去了,后来买的《javascript高级程序设计》,这本书已经来来回回看了近10遍了。
你说的常用算法什么的,里面都有提及。建议先搞定基础,如果你喜欢算法,那么基础扎实后专攻算法也是不错的选择。
总之,凡事讲究循序渐进,切不可急于求成。
leetcode上用js写写题目,每天写一题,每题基本都会涉及一些数据结构,算法的知识,然后再去了解。日积月累下来,你就是大牛了。
好像并没有什么大关系,学习算法主要是思想,语言是工具,能够熟练使用一种语言,就能做一些算法相关的练习,用你会的语言把算法表达出来,学习算法的思想