数据结构算法学习路线

So You’re interested in software engineering, Full-Stack web development, or any computer related field, but you don’t know where to start? Maybe you even went to a coding Web-dev bootcamp but something isn’t clicking?

因此,您对软件工程,全栈Web开发或任何与计算机相关的领域感兴趣,但您不知道从哪里开始? 也许您甚至去了Web-dev编码训练营,但都没有点击?

Welcome to the club my friend, You my friend need to understand Data Structures & algorithms, and i’ll share my roadmap with you.

欢迎来到俱乐部,我的朋友,您我的朋友需要了解数据结构和算法,我将与您分享我的路线图。

关于我的一点 (A bit about me)

I’m originally an industrial engineer, I’ve worked in logistics and manufacturing for years. I found myself at the age of 29 with a solid job, but I wanted to learn software development, for a startup idea I had in mind. I’ve looked around and found a great Full-stack web development bootcamp in my area, applied, studied the prerequisites, went to the exam and got in.

我最初是一名工业工程师,在物流和制造领域工作了多年。 我发现自己29岁的时候干得不错,但是我想学习软件开发,这是我想到的一个创业想法。 我环顾四周,在我所在的地区找到了一个很棒的全栈Web开发训练营,进行了应用,研究了先决条件,参加了考试并上了学。

Long story short, I finished the bootcamp with a good foundation to build web applications using Javascript, React, Node.js, Postgresql etc. . But went I finally got home to start working on projects to put in my portfolio something was wrong, I knew I know the material, but my problem solving was lacking behind my skills, and after research, I found that maybe i should learn Data structures & Algorithms, and i can’t tell you how much this has helped me, NOW I FEEL READY FOR ANY INTERVIEW!!!

长话短说,我完成了训练营,为使用Javascript,React,Node.js,Postgresql等构建Web应用程序打下了良好的基础。 但是最后我回到家开始着手进行一些项目,以放入我的投资组合,这是有问题的,我知道我知道材料,但是我的技能缺乏解决问题的能力,经过研究,我发现也许我应该学习数据结构和算法,我无法告诉您这对我有多大帮助,现在我随时准备接受任何采访!!!

So I’m writing this to maybe be able to help you IF you feel like me, In my personal opinion i suggest that every aspiring Software/Web developer should start here, it could save you some serious time & effort in the future. So here is my personal roadmap to learning Data structures & Algorithms.

因此,如果您觉得自己像我,我写这篇文章也许是可以为您提供帮助的。我个人认为,每个有抱负的软件/ Web开发人员都应从这里开始,这样可以节省您将来的时间和精力。 因此,这是我学习数据结构和算法的个人路线图。

0.用热情做,甚至不做。 (0. DO IT WITH PASSION, OR DON’T EVEN TRY.)

It’s gonna be hard, it’s gonna demand effort, just like anything else you’ll do in life, and if you don’t love the process, it’s gonna be harder!

就像您在生活中将要做的任何其他事情一样,这将变得很困难,需要更多的努力,如果您不喜欢这个过程,那就会变得更加困难!

But this road map will help you in various ways, you’re code will be cleaner, better, faster, more scalable, it’ll improve you’re thinking patterns, and you’ll be able to ace coding interviews, because lets not forget, ALL coding interviews are about Data structures & algorithms.

但是,此路线图将以各种方式为您提供帮助,您的代码将变得更干净,更好,更快,更可扩展,将改善您的思维模式,并且您将能够获得面试编码,因为忘记了,所有编码采访都与数据结构和算法有关。

1.选择一种编程语言 (1. Select a programming language)

Selecting a programming language isn’t the most important part but you may find it much easier to learn these concepts using JAVA, C, C++.

选择编程语言不是最重要的部分,但是您可能会发现使用JAVA,C,C ++学习这些概念要容易得多。

Other languages like JAVASCRIPT & PYTHON may also be a good idea, but they have some weird parts to them and can sometimes be annoying.

诸如JAVASCRIPT和PYTHON之类的其他语言也可能是一个好主意,但是它们有一些怪异的部分,有时可能会令人讨厌。

I went with C, although I’ve never programmed in C when I started learning, I picked it up fairly quickly, it’s a straight forward approach to any problem, don’t be intimidated, and don’t look too much, try one, if you don’t like it, try the next.

我选择了C语言,尽管我从不学习C语言,但是我很快就开始学习它,它是解决任何问题的直接方法,不要被吓到,也不要看起来太多,尝试一下,如果您不喜欢它,请尝试下一个。

2.学习基础 (2. Learn the basics)

Great buildings need solid structures. start with the basics, try to get a grip around pointers, structures, classes, recursion and dynamic memory allocation.

伟大的建筑需要坚固的结构。 从基础开始,尝试掌握指针,结构,类,递归和动态内存分配。

3. Big-O表示法 (3. Big-O notation)

This is the back-bone of time complexity, it’s very useful when sorting big amounts of data, (An array of 10,000+ items).

这是时间复杂度的骨干,在对大量数据(10,000多个项目的数组)进行排序时非常有用。

4,数据结构简介 (4.Intro to Data structures)

Now that you know the basics, got comfortable with a programming language, it’s time for an intro.

现在您已经了解了基础知识,已经熟悉了编程语言,是时候进行介绍了。

Start you’re learning with arrays and lists, stacks, queues, hash tables, trees, heaps, graphs.

开始学习数组和列表,堆栈,队列,哈希表,树,堆,图。

Every one of these subjects has other sub-subjects in it, it may seem like a lot but don’t worry, each one of these will take you a day to understand and implement. try implementing what you’re learning on websites like codewars.com.

这些主题中的每个主题都包含其他子主题,虽然看起来很多,但请不要担心,其中每个主题都需要您花费一天的时间来理解和实施。 尝试在codewars.com等网站上实现您正在学习的内容

I found a great 8 hour video on YouTube that will help you a lot, it’s called,

我在YouTube上找到了一个很棒的8小时视频,它可以为您带来很多帮助,

” Data Structures Easy to Advanced Course — Full Tutorial from a Google Engineer”

”数据结构易于上高级课程-Google工程师提供的完整教程”

5,算法简介 (5.Intro to Algorithms)

Algorithms are the harder part of the bunch, it’s not hard, but it won’t be easy.

算法是最困难的部分,这并不难,但要实现起来并不容易。

You’ll learn a dozen concepts on sorting algorithms.

您将学习有关排序算法的十几个概念。

I’ve found two FREE courses on coursera.com, algorithms 1 & algorithms 2 by Princeton university, they are very helpful, they teach in java, but if you know C or C++ you won’t have a problem learning.

我在coursera.com上找到了两门免费课程,分别是普林斯顿大学的算法1算法2 ,它们非常有帮助,它们使用Java进行教学,但是如果您了解C或C ++,就不会有问题。

学习的一些技巧 (Some tips for your studying)

  1. focus, turn off every distraction for 2 hours and study

    集中精力,关闭每两个小时的注意力,然后学习
  2. Take breaks. Most people forget to take breaks, taking 5 minute breaks drastically improves your learning process.

    休息一下。 大多数人会忘记休息,休息5分钟会大大改善您的学习过程。
  3. Don’t give up. It’s a process, the beginning won’t be easy, but it’ll get easier with time.

    不要放弃 这是一个过程,开始并不容易,但是随着时间的流逝会变得更加容易。
  4. PRACTICE. Coding is like playing an instrument, if you don’t practice, you’ll never learn properly.

    实践。 编码就像弹奏乐器,如果您不练习,就永远不会正确学习。
  5. Write summaries. Summaries are an excellent way to remember, after writing something down it’ll be much easier to remember, and refer to when needed.

    编写摘要。 总结是一种记住的好方法,写下一些东西后,将更容易记住,并在需要时进行参考。

翻译自: https://medium.com/the-innovation/road-map-to-learn-data-structures-algorithms-7960035fc4dc

数据结构算法学习路线

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐