Whether you want to be a web developer, a machine learning engineer, or a data scientist, having a deep understanding of Data Structures and Algorithms is essential to acing job interviews and becoming a successful software engineer. As Linus Torvalds famously said, "Bad programmers worry about the code. Good programmers worry about data structures and their relationships".
The Data Structures and Algorithms Nanodegree program will help you excel at solving everything from well-defined problems, like how to calculate the efficiency of a specific algorithm, to more open-ended problems, like building your own private blockchain or writing a web-crawler.
You?ll work on over 80 exercises and four real-world projects so that you can get the hands-on practice required to learn how to implement appropriate solutions based on your design choices.
Get an overview of your program. Meet your instructors, and refresh your Python skills. Learn the framework to deconstruct any open-ended problem and then understand the concepts of time and space complexity.
Learn different data structures that can be used to store data. Implement different methods used to manipulate these data structures and examine the efficiency. Understand the advantages and applications of different data structures. Learn how to approach open ended problems (either in interview or real-world) and select appropriate data structures based on requirements.
Learn and implement basic algorithms such as searching and sorting on different data structures and examine the efficiency of these algorithms. Use recursion to implement these algorithms and then learn how some of these algorithms can be implemented without recursion. Practice selecting and modifying these algorithms for a variety of interview problems.
Build on your algorithm skills by learning more advanced algorithms such as brute-force greedy algorithms, graph algorithms, and dynamic programming which optimizes recursion by storing results to sub problems.
Show reviews
The program is good but I don't think it's worth the money. I got this one on 75% discount. I would never pay full price. There are similar courses out there for a fraction of the cost. The feedback from real people is certainly helpful but I am the kind of person that can learn on their own from videos and don't benefit much from having real people support me. I originally did the Intro to CompSci course in 2014. The videos, quizes and projects are great. But again, I cannot justify the price. Also, having a certificate or not does not really help me as I already have a degree in CompSci. I do look forward to doing more of the free material on Udacity. If you offer 90% discounts I would consider buying more nanodegrees but otherwise it's too expensive. For instance, if you want a review on your project you could head over to https://codereview.stackexchange.com or other free and open communities for that.
I just finished the first part (of 4) of the course. It covered a bit of big O notation and problem solving. I got some useful tips from the latter, but I think I will see their value moving forward. For Big O notation it was good as an intro and I hope there will be more about it. I also took a refresher on Python basics which I enjoyed very much. The project for this part was relatively short but nice for reasoning about solutions and complexity. The code review was also a high point of the experience. I got to improve some of my ways of working thanks to the review :) Overall I'm satisfied and I look forward to continuing the course, in the knowledge that this kind of material grows on you as you apply them to everyday software development projects.
I am writing code before I know basic data structures and I also gained couple of years working experience too. On the time being I come to know that how important it is to apply right data structures and algorithm to solve a problem. For lack of knowledge I was not that good which is why I was not confident at the same time. After this course I found I wrote many programme which can be solved efficiently with using proper data structures and algorithm. I was not thinking much about complexity and use better data structure/algorithm but now I think twice or more before writing any piece of code.
I'm really enjoying the program. I love the jupyter notebook exercises and the learn by doing approach. However I have found some of the exercises extremely time consuming requiring alot of research outside of Udacity to arrive at a solution. This especially applied to the Recursion section for me. I thought the first project was a great warmup too and would really help people delve more into Python and give them a general sense of where their coding ability needs to be at to progress smoothly with the rest of the course.
It's met and exceeded my expectations -- I am very happy with it, and have learned a lot. Time expectations set by how long each section says it'll take could be improved. Transparency is always a great thing, and some sections say "this will take a few hours" and have taken me days if not weeks. There are also more than a few typos in the content -- wanted to avoid seeming negative by pointing them out each time. I will recommend this program and celebrate on social media once I complete it: great work!
I have learnt a lot theory and gained practical skills. Though one can not completely trust estimated time for each section because, for example, one lesson in section 2 with estimated time of 3 hours took a looooooot longer than another lesson in section 4, and when I say longer, I mean longer 5 times if you really want to learn the topic.. It maybe really misleading for scheduling time to learn
Oh yes! it has been exciting and challenging so far. I always wanted to learn data structures, algorithms and the efficiency analysis of my code. I am getting that kinda confidence slowly after my first project. I look forward to learn and take away lots of valuable information with me. Udacity content has always been fantastic. No doubt, DSA has very interesting course design. :)
This program has helped me alot more in polishing all my skills concerning designing data structures along with maintaining an algorithmic efficiency throughout. I would definitely suggest my fellow buddies to go through this Nanodegree. Thanks to my Udacity Instructors, Mentors, and my friends here for always holding on to helping me whenever I get stuck up with some concepts!
It's great, some of the things I used to love learning about are a pleasure to revise and I am also expanding my knowledge from where I left off my study of DSAs. I like reading the solution codes too, as the proposed implementation is often so beautiful. I'd like more resources to practice problems for ex: more recursion, dynamic programming problems. Thanks a lot!
The Nanodegree has been absolutely amazing in terms of the learning curve. It has given be a good grasp of all the Data Structures and Algorithms coupled with some really amazing prsojects. This is a must do course for anyone who wants to strengthen their knowledge of Data Structures and Algorithms. Excellent teaching, mentoring. Overall, a must in todo!