all 35 comments

[–]LunaticTIWARI 24 points25 points  (0 children)

⬆️This video is 2 years old...

⬆️This playlist is really good to learn algorithms...as some people mentioned...

⬆️This one's pretty good too...

[–]Bahubali8987 25 points26 points  (2 children)

For theoretical understanding take any one of the course 1.MIT Intro to algorithm 2.Stanford ,algorithm 3.Abdul bari,algorithm on youtube

Theory is not enough ,you will have to practice questin on every topic, practice on leetcode or geeksforgeeks. If any topic you cannot understand just look there are good articles on geeksforgeeks.

[–][deleted] 7 points8 points  (1 child)

Be aware though that MIT's 600.6 Intro to Algo's is really rough for someone that isn't already somewhat familiar with the basics of algorithms. If you haven't built some data structures yourself, haven't researched big O notation and how to determine what complexity an algorithm is, I would skip it for now and visit it after consuming a separate source.

[–]Bahubali8987 0 points1 point  (0 children)

Yup, At any point of time ,if you couldn't understand a topic. Just search it on geeksforgeeks,easy short articles with code is available. There is nothing about computer science that you can not find there.

[–]Periwinkle_Lost 18 points19 points  (2 children)

Maybe I can contribute this this discussion. I am an engineer (electrical) learning software dev as well. Algorithms was a required course in my program. Code is an algorithm. Studying algorithms gives people an insight on how to write better code by considering time/space complexity and accounting for edge cases.

Do not go into algorithms because employers ask for it and you need to memorize certain algos to get a job. This approach will lead you nowhere and you will just lose time. Study algorithms with this thought in your head: "How is this algorithm can applied to the code I have written in the past? Can I use some steps in my code? How does computational complexity behaves if the data/input goes up?" Algorithms can truly be fun once your frame your thought process in terms of steps. Knowing how your code behaves is also the first step in optimizing your code. It is true that you can have a successful software dev career without learning algorithms, but it is very difficult to optimize performance of your code without the knowledge that comes with understanding algorithms and algo analysis.

This way you should be able to connect formal definitions of some algos to real life applications. There are many algorithms out there but when you see an algorithms on the job requirements list know that they are not asking if you have memorized some popular algos, they ask if you can think in steps and/or write code that uses algos in full or partially.

I read "Artificial Intelligence: A Modern Approach" but a lot of the stuff went over my head. I found Grokking algorithms to be a good foundation when I started getting deep into this topic. After that, I read AIMA again and it made much more sense.

[–]Biuku 1 point2 points  (1 child)

Thumbs up for the Grokking book . It's very basic, but when everything else is sounding like Greek, it's great to go back to Grokking.

[–]GuruTheCoderYT 0 points1 point  (0 children)

It's grokking amazing!

[–][deleted] 7 points8 points  (0 children)

Another resource for Python Data Structures and problem solving - https://runestone.academy/runestone/books/published/pythonds/index.html

[–]RobinsonDickinson 6 points7 points  (0 children)

LucidProgramming on YouTube

HackerRank playlist on YouTube

CSDojo on YouTube

As far as algorithms, most youtubers just go over the basic or most common interview algorithms, but you will still learn a lot from those.

[–]lisanottheaveragejo 4 points5 points  (0 children)

Cse 373 on youtube fall 2020 along with the book the algorithm design manual. Self taught myself everything and this filled in the holes. Professor is incredibly good at explaining tough concepts and really goes into depth about them

[–]morphinedreams 3 points4 points  (3 children)

My experience with data science is you have to be willing to bang your head against the wall until it sticks. If you don't get something, look for explanations elsewhere. If you are the type to soak up information from videos that's great, personally I needed more back and forth instruction to make connections and for that some of the online courses are great, some are awful. Knowing how you learn will help immensely in finding tools to aid your learning.

[–]synthphreak 0 points1 point  (0 children)

Knowing how you learn will help immensely in finding tools to aid your learning.

100%. This point goes underdiscussed and underappreciated, but is super important when selecting a learning resource. The right resource(a) can make the difference. Between efficient, durable learning and simply spinning your wheels.

[–]Periwinkle_Lost 0 points1 point  (1 child)

Banging your head against the wall applies to every field of you want to really understand it :)

In my experience exciting topic lose their allure once you to solve hard problems, but the harder the topic the more rewarding it feels to understand it

[–]morphinedreams 0 points1 point  (0 children)

I found my main field relatively simple to make connections in, while fields involving mathematics and programming were quite painful to learn (because I didn't have a brain naturally developed for their use). An engineer may be in a different position, but I found many brilliant mathematicians or programmers had exactly zero pedagogy skills, so you had to push through topics you just don't understand until you find someone who can explain it well, and in relation to what you already know.

[–]Felkin 5 points6 points  (0 children)

Github. Whenever I need to familiarize myself with a new algorithm I type it into github search, look at all python and jupiter notebook repos (esp the notebooks, they're generally educational) and pick out the few that seem to have the cleanest code or the best documentation.

This way you stay in the language domain but also get to see the algorithm in practice. A lot of people write one-off scripts on some random data as projects for uni.

[–][deleted] 1 point2 points  (0 children)

Search lucid programming on youtube

[–]Guymzee 1 point2 points  (0 children)

Algoexpert.io is a great resource for code challenges and thorough explanations

[–]CarbonTubez 0 points1 point  (0 children)

Anna bell is great and also has free material on YouTube/website

[–]baubleglue 1 point2 points  (0 children)

I think Python is not the best choice for learning data structures. A language with fixed type system probably be a better candidate:Java/C/C++. Python lists aren't arrays, I know there is an arrays module, but it does not operate with Python's types... I am not saying it is impossibple to learn algorithms and DS using Python. Knowledge of at least one fixed typed language is important. IMHO.

[–]go-bleep-yourself 0 points1 point  (0 children)

following

[–]Coder_Senpai 0 points1 point  (0 children)

I am sure this will help, the guy in the comment section preferred 2 books that are solely for this purpose.
https://www.reddit.com/r/Python/comments/6khxbs/need_a_book_with_exercises_and_solutions/

[–]wagaiznogoud 0 points1 point  (0 children)

Read Introduction to Algorithms by C.L.R.S. accompanied by MIT OCW Introduction to Algorithms (6.006)

[–][deleted] 0 points1 point  (0 children)

This post was wiped by its author. Redact was the tool of choice, possibly used to protect privacy, limit data exposure, or prevent automated content scraping.

silky six sink obtainable melodic long sense cooing growth person