There’s never been a more exciting time to break into tech. And there’s always a growing demand for skilled software engineers. So how do you land a software engineering job—even if you’re taking the self-taught route—without a CS degree?
To help you get there, we’ve compiled this list of free courses and guides from Google. These resources will help you learn the following:
Foundations of programming
Programming with Python
Data structures and algorithms
Software engineering principles
And much more. So you can learn everything you need to know to land a software engineering job—for free.
If you have no prior programming experience, you can start with the Foundations of Programming course.
In this course, you’ll learn basic programming concepts like:
Variables and operators
Control flow
Strings and arrays
This will give a high-level overview of what programming is all about so that you can build on these foundations by taking other courses.
Link: Foundations of Programming
To break into software engineering you need to be proficient in at least one programming language. Python is easy to learn and you can dive right into working on projects. Besides, Python is really handy to use in coding interviews.
And Google’s Python class will help you learn Python programming with a mix of lecture videos, text material, and coding exercises. Here’s an overview of what you’ll learn:
Python basics
Lists and strings
Sorting
Dictionaries and files
Regular expressions
Utilities (from Python standard library)
Link: Python
Once you learn how to code in a programming language, understanding how data structures and algorithms work is fundamental to problem solving. This is also super important for coding interviews.
The Data Structures & Algorithms collection will help you learn and practice the following:
Hashmaps
Linked list
Trees
Tries
Stacks and queues
Heaps
Graphs
Runtime analysis
Searching and sorting
Recursion and dynamic programming
Link: Data Structures & Algorithms
The resources we’ve reviewed so far will help you learn programming, data structures and algorithms. On a fundamental level, these are all you should know to tackle coding and technical interviews in general.
But how do you prepare strategically for technical interviews? That’s where the Interview Prep guide comes in handy.
The resources in the guide will help you understand how to:
Prepare for coding interviews
Communicate in technical interviews
Practice coding interview questions and mock interviews
Link: Interview Prep
As a software engineer, you should write clean and well-documented code that is easy to understand and maintain. So you should also be familiar with the principles to write maintainable and clean code.
The Software Engineering Principles course covers of following topics:
Testing and debugging
Working with open source tools
Design and documentation
Link: Software Engineering Principles
So if you want to launch your career as a software engineer, I hope you’ll find these courses helpful in your learning journey. As you might have guessed, these courses are free, but they require diligent efforts, interest, and practice from your end to crack interviews and land a software engineering role. So keep grinding!
If you’re specifically looking for resources to help you with coding interview preparation, check out 5 Free University Courses to Ace Coding Interviews.
Bala Priya C is a developer and technical writer from India. She likes working at the intersection of math, programming, data science, and content creation. Her areas of interest and expertise include DevOps, data science, and natural language processing. She enjoys reading, writing, coding, and coffee! Currently, she’s working on learning and sharing her knowledge with the developer community by authoring tutorials, how-to guides, opinion pieces, and more. Bala also creates engaging resource overviews and coding tutorials.