自学编程 9 年,想学算法,有可以推荐的书吗?
rt,题主从小学起开始自学编程,但总觉得每每会了入门了一门语言却很难有所提升,总感觉无论怎么学都跟大佬们相差了很大距离。由于没有老师,9 年来学会的东西很多,从前端到后端,从嵌入式到计算机软件,各类流行技术、框架,语言等等都有进修。
始终觉得自己学的越多,越觉得自己菜的到家。
今日浴室奇想,醒觉算法也许可以让我停滞的修为有所提升。但因为此前没有怎么接触了解过如何去体系化学习算法,想找些书看。有些编程基础,请问我应该找哪本书看会更适合呢?
rt,题主从小学起开始自学编程,但总觉得每每会了入门了一门语言却很难有所提升,总感觉无论怎么学都跟大佬们相差了很大距离。由于没有老师,9 年来学会的东西很多,从前端到后端,从嵌入式到计算机软件,各类流行技术、框架,语言等等都有进修。
始终觉得自己学的越多,越觉得自己菜的到家。
今日浴室奇想,醒觉算法也许可以让我停滞的修为有所提升。但因为此前没有怎么接触了解过如何去体系化学习算法,想找些书看。有些编程基础,请问我应该找哪本书看会更适合呢?
能够熟练运用书本上的知识了,才能谈提高。这个时候就需要去挑战自己能力的边界,去解决那些自己感觉棘手的问题,这个过程你可能要经过各种思考、尝试、查找资料,当你解决完一个又一个以前解决不了的难题之后,你的水平也就提高了。
总之,要带着问题去学习,不要泛泛而学。与其考虑该看什么该学什么,不如好好想想你学编程是想干什么或是解决什么问题。找到这个目标之后,一路打过去就行了,然后再向另一个更高的问题出发。
我学编程也就是爱好吧,因为喜欢什么而去学什么。
当然希望以后毕业也能投身到自己热爱的事业中去,我学习的方法也和 @sudoy 一样,一边做项目,一边学习,至今也做了许多项目,也都因为小和对自己写的菜的认识,也都没有开源。
在网上也经常听说各位前辈也有一年经验干了两三年,没办法进步的事。想找算法书也是希望能有所提升
计算机解决一个应用问题的方法就是 1. 把应用问题建模成一个已有算法的数学问题 2. 实现该数学问题的算法 3. 把应用的参数传到算法里。
业务架构师工作重点在第一步,算法工程师工作重点在第二步,开发工程师重点在第三步,这就是为什么很多人感觉自己只是调包侠。
实话说恰饭的话用不上算法,会用顺序选择循环把参数传到合适的包里就能恰上饭了,但是既然你想学,那就说说我的看法。
钢铁直男的学法是先学离散数学,熟悉计算机领域数学问题的描述方法,然后啃「算法导论」,能啃完前四部分应该就超过大部分人了。
不那么头铁的方法是找资源更丰富的课程学习,我推荐学堂在线邓俊辉的数据结构,直接送上书的地址,视频、助教、示例代码、OJ 功能齐全。不要担心没有提升,我也没学完就找到工作了,后面就研究怎么恰饭了。就我观察 99% 的人是学不完的。学多少是能力,学不学就是兴趣啦,加油,祝你能打通。
https://cloud.tsinghua.edu.cn/d/902db8d098bc4479b82e/files/?p=/%7Edeng/ds/dsacpp/dsacpp.pdf
另外, 学完这些之后假如您还不需要立即找工作,比如正在读书。 建议找一两个你喜欢的开源项目,先看看人家的代码。如果你能有一些 commit 被合并进去, 以后找工作肯定是一大亮点
Python 是节约时间,快速解决问题。这是一个解决问题的工程师思路。更好的解决问题,优化算法等,这是另一个思路。
计算机科学才刚刚开始,感觉永远学不完。我也是自学而来的。不要有太大心理压力。也别被什么老板吹牛而被动敬畏。回过头来看看,那些都是毛毛雨。真正厉害的,不用吹,看看历史对他们的评价比自吹自擂更让人信服。
非常后悔大学 4 年都浪费,没有好好学习。
主这么早就学习编程,而且还很喜欢这行的话,绝对未来可期。
请问有转专业成功经验的前辈们指点些建议吗?
找了很多算法入门的资料,其实没有太好的,只能反反复复看一看,最后从适合自己,或者自己感兴趣的入手。
基本上分几类,严肃点的就是 CLRS,如果 CLRS 太复杂就从 Princeton 开始。另外 Amazon 前 CTO 写比较有意思,书名好像也叫算法导论,不过好像有人也翻译成引论,那本书主要专注于数学归纳法相关的算法,可以解决很多问题。
还有就是课,比如 MIT 的 OCW 有 Erik Demaine 教的算法和高级算法和数据结构感觉不错。
还有就是科普向的书,比如上面说的 Grokking algorithms,可以入门试试。
还有就是一些旁门左道,比如我最近发现一本 Common Lisp 的算法书,打算试试。
最后就是一些各领域的不同风格算法,比如分布式算法,比如 persistence data structure 的算法 – CMU 有一本 Okasaki 之类额。
其次你还是学生,好好学线性代数、微积分、运筹学,很有帮助。