First Id like to start off by saying that this is not a click bait title at all. What im going to share is a curriculum that you can follow if you want to have the equivalent of a Software Engineering degree. How do I know what that looks like? Well I have my degree in Software Engineering from Arizona State University.
So how do you get a FREE online degree? Through MOOC courses given through Udemy, edX, and others. What I’m going to do in this post is match free MOOC courses to the courses that I took as a Software Engineer at ASU.
Three side notes here, one I will only include the technical portion of the degree and other classes such as English 101 and electives. Two, this is not meant to be a replacement for an actual Software Engineering degree and in no way am I saying that you can get an ASU degree by completing these courses. Three, the courses on this list are free to enroll meaning that you get all of the materials but you cannot submit assignments for feedback or a grade.
All right, lets get to it.
Freshman year is going to be a little light on the technical classes and the reason being that this is when you handle other courses like math, science, english and so on.
Course 1: Intro to Java
For me this course was in two parts but here they have combined it into one course. This is a good first course to jump into as it teaches the basics of programming in Java. If this ends up being too difficult for you, look into Codeacademys java tutorials.
Course 2: Digital design
This course introduces you to logic gates and boolean algebra. These are the basic building blocks of what computer chips are made up of. This course was so fun, that I had to take it twice! 😆
Welcome to your Sophmore year of college! Are you having fun yet? Do you drive home on the weekends so that your parents can feed you and do your laundry or was that just me? Just me? Ok.
Anyway, this is the year for the meaty parts of the degree. Lets get to it.
Course 1: Programming Paradigms
This course introduces you to different types of programming languages out there. The purpose of this class was to not only get experience with different languages but also to see each language can serve a specific purpose based on what you are trying to build.
Course 2: software testing
For me this was a two part course but I believe that the first part was not very useful. The second part however is something the I and every developer SHOULD be doing with every piece of code they write, testing. Testing is VERY important to do.
Course 3: Computer Organization and Assembly Language
This course gives you an understanding of how the code that you write in C/Java/Python translates into something that the computer can understand. That language is known as assembly and it is one step above 1’s and 0’s. Check out this photo for a quick explanation of how its done.
Course 4: Data Structures and Algorithms
Here it is right. The course that gets all of the chatter because of how much importance current technical interviews put on this class.
I included two links here as one represents data structures and the other represents the algorithms portion.
Course 5: Operating Systems
Operating systems are pieces of software like Windows and Mac that allow you to run programs like Google Chrome or Microsoft word. If you have ever wondered how and operating works, this is the course for that.
Congratulations! You made it through the weed out courses! At least that’s what we called them because of the amount of people that would change majors because of how much work was required for them. You got through it though!
Lets charge on.
Course 1: Software Design and Architecture
In this course you will learn about design patterns which are useful tools that help you build quality code. On top of that you also learn about a way to visually represent you code using diagrams.
Course 2: Agile Development Specialization
This course shows you how modern software is managed from a people perspective. If the question is how do you manage a team of software developers, the answer is currently Agile.
Course 3: Distributed Programming
This course was difficult for me to fully grasp but it was so much fun for me! It teaches you about the different tools that are used when two remote computers are trying to talk to each other. Thinking back on it, maybe my enjoyment of this class should have tipped me off that I would like cloud computing 🤔. Either way, I loved it.
Course 4: Database Management
Databases are places that store data about a customer, a person, a business, anything really. This course teaches you how to design a database and also SQL. SQL is the language that is used to do things with the database like add, delete, modify, and search for data.
Here we go! Graduation is right around the corner and you can basically taste it. Also its ok to cry when youre done, at least thats what I did so I think its ok 🤷♂️.
One thing youll notice about this section is that the number of the courses are all 1. Thats because you can choose any two of these and be done! The reason behind that is that for my degree I could pick two of these three and I was done with my degree. So here I give you the same option, choose two and be done. Lets get to it!
Course 1: Full Stack Web Development
This course teaches you how to build an application. If you combine this, intro to java, and the data structures and algorithms course you essentially have a typical coding bootcamp. Take that piece of info however youd like.
Also for what its worth, this was one out of the two electives that I had to do as part of my degree.
Course 1: Embedded Systems
If you have ever wanted to learn about the computers that run in your microwave, oven, washing machine, and so on this is the course for you. For what its worth, this was the second elective that I had to do as part of my degree.
Course 1: Cloud Computing Specialization
I so wish I could have taken something like this when I was in school! Cloud computing is everywhere today that its almost a required skill in my opinion. Thats why I decided to add it here as an elective. Again, if the option were available at the time, I would have taken this class!
There you have it! Four years of classes rolled into one nice blog post. Now get out there and start learning! Any comments or questions feel free to comment below!
Oh and also, if you work through this and realize, I need more hands on experience working on a team, well then Codubee has you covered! Giving students actual real world experience is our specialty.