If you're pursuing a career as a professional software engineer, you should dedicate the first three to six months to mastering the fundamentals.
Here are the courses I believe you should take, listed in order. Depending on your knowledge and experience level, you can take all the courses in order, or just pick the ones that are best for you.
Introduction to Programming with Java
Learn the basics of programming using Java, one of the most widely-used programming languages. This is a great starting point for anyone new to programming.View course
Object-oriented Programming with Java
Learn and understand object-oriented programming principles used in designing complex applications and frameworks.View course
Advanced Java Concepts (Optional)
Master exceptions, generics, collections, lambdas, streams, multi-threading, and asynchronous programming. Take this course only if you want to become a professional Java developer.View course
Data Structures and Algorithms
Studying classic data structures and algorithms helps you improve your programming and problem-solving skills. These topics are frequently asked in coding interviews, and this course will help you master them.
Data Structures & Algorithms: Part 1
Learn all about arrays, linked lists, stacks, queues, and hash tables.View course
Data Structures & Algorithms: Part 2
Master more complex data structures and algorithms: binary trees, AVL trees, heaps, tries, and graphs.View course
Data Structures & Algorithms: Part 3
Master the classic searching, sorting, and string manipulation algorithms.View course
Design patterns are engineered solutions to common problems in software design, and are often asked about in coding interviews. There are 20 classic design patterns commonly known as GoF (Gang of Four) patterns. The following courses help you learn and understand these patterns and appreciate object-oriented programming techniques.
Design Patterns 1: Behavioral Design Patterns
Learn and understand the memento, state, iterator, strategy, template, command, observer, mediator, chain of responsibility, and visitor patterns.View course
Design Patterns 2: Structural Design Patterns
Master the composite, adapter, decorator, facade, flyweight, bridge, and proxy patterns.View course
Design Patterns 3: Creational Design Patterns
Master the prototype, singleton, factory, abstract factory, and builder patterns.View course
Version Control and Collaboration
The Ultimate Git Mastery Course
Everything you need to version your code and collaborate with others using Git and GitHub in one course.View course