Marc Andreessen famously said, “Software is eating the world.” And there’s data to prove it: According to a report by the Bureau of Labor Statistics, there were more than 1.25 million software engineering jobs in the US in 2016 alone, and those jobs were growing at a rate of 24% per year. On top of this growth, software engineers enjoy an average annual salary of nearly $100k!
But what does it take to land a job as a software developer? Having a deep and practical understanding of data structures and algorithms is key to acing the job interview and growing your technical career. Whether you want to become a web developer or set a foundation in software development to move into roles like machine learning engineer or data engineer, understanding data structures and algorithms will help you get there.
Today, we are excited to announce the Data Structures and Algorithms Nanodegree Program! From evaluating which data structures to use when you’re building a website, to selecting the right algorithm for a self-driving car, every software engineering problem requires an intuitive understanding of these tools. This is why all software engineering job interviews emphasize data structures and algorithms during coding interviews.
Students will practice solving everything from very 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. With the launch of this program, anyone with an Internet connection and intermediate Python skills can practice these in-demand interview skills with over 100 problems.
During this program, students will complete four courses and over 100 practice problems. Throughout the program, students will start by practicing with well-defined problems and then move into open-ended problems that will require them to make design trade-offs. All practice problems and projects require that students have intermediate Python knowledge.
Having a deep and practical understanding of data structures and algorithms is key to acing the job interview and growing your technical career.
Here’s a course-by-course breakdown:
Course 1 – Fundamentals
Students will learn a framework to deconstruct any open-ended problem and understand the concepts of time and space complexity, essential tools for evaluating different data structures and algorithms.
Course 2 – Data Structures
Students will learn different data structures and the methods used to manipulate these data structures and examine the efficiency. Students will also learn how to approach open-ended problems—either in interviews or in real-world scenarios—and select appropriate data structures based on different constraints.
Course 3 – Basic Algorithms
In this course, students start with learning fundamental algorithms, such as searching and sorting, and examine their efficiency. Students will use recursion to implement these algorithms and learn how some algorithms can be implemented without recursion. Students will solidify their skills in solving open-ended problems by practicing these algorithms for a variety of interview problems.
Course 4 – Advanced Algorithms
Students will build their 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 subproblems.
In the final project, students will build a route-planning algorithm like the one used in Google Maps to calculate the shortest path between two points on a map using A* search.
Assuming that students spend approximately 5-10 hours per week in the classroom, we estimate program completion within three months. The total cost of the program is $599, which includes Udacity student services:
- Dedicated mentor: Udacity mentors are key to student success. They provide guidance, answer questions, review work, and give webinars to help students solidify their understanding throughout the program. This includes 1:1 weekly session with the mentors.
- Project reviews: Each time a student submits a project, a member of Udacity’s reviewer network provides personalized feedback on how to improve the project. If the project does not meet specifications, they have the chance to improve and resubmit it. Our services model monitors student progress to make sure no student gets stuck.
- Student community: Students can connect with one another to discuss the courses and projects, chat about job search strategies, or just network and support progress through the program.
- Career services: Students receive feedback on their LinkedIn profile, Github portfolio, resume, and more, as well as learn useful tips for interviewing and landing a job.
Companies all over the world are looking for software engineers and our goal is to help anyone ace their next coding interview thanks to the fundamental skills practiced in the Udacity Data Structures and Algorithms Nanodegree program. Registration starts today and the classroom opens on April 23.