目录
学习数据结构和算法的原因:
1.面试准备:大厂手写代码(亲身经历过,非常紧张窘迫,在编辑器甚至白班编辑器上写,没有提示的话非常考验编码习惯、代码风格、设计模式)面试短短的1、2个小时,面试官很难判断候选人的能力,就算是考察项目经验和以往的开发经验,由于面试官没有参与过你开发过项目或者研发方向,也很难理解候选人面临的问题和挑战。而考察数据结构和算法,既是对编程基础的考察,又能很好的考量解决问题的能力、思考问题的方式和路径,以及编码的习惯和风格。
2.核心能力:开发过程中的大量框架、库,都是基于数据结构和算法来完成的。例如react,需要熟悉日常使用的框架的底层原理和运行逻辑有一定的认识和了解;更像是在运用武器的时候,如果我们不了解武器的一些基本原理,在出问题时候会找不到解决的办法。可能在日常的框架学习使用中用不到,但是越向上可能就越需要这种的功底,考验这些基本功。
3.提升生涯高度:有核心能力就拥有了一定的竞争力,在生涯中也会越走越远。在写代码层面上数据结构和算法是必须的,这是一个合格甚至优秀的程序员所必备的功底。当然,想成为一个项目的主导者甚至部门的主导者就需要更多的个人魅力和其他软实力。
学习方法:
1.了解数据结构:链表、数组、栈、队列、堆、树等等。
2.分类学习算法:力扣上的不同类别的系列题目。
如何使用正确运用力扣来刷题:
1.切碎知识点:将不同类型的题目形成一套解题思路和模板。
2.要针对性练习:击碎薄弱的系列题目。
3.反馈:多看别人,学习别人。
4.多写:熟能生巧。
5.总结规律:不做麻木无知的背诵者,成为一个有思想的人,去思考问题的本质。
面试做题:
1.明确题意:输入,数据类型,数据量,输出,边界条件等。
2.可能的解:多方法解决,最好的方法解决,多层面思考。
3.复杂度分析。
如果做不出来题目也可以询问面试官,或者要求换题。
道阻且长,道阻且跻,还需加油,成长的路还有很多很多要走。