How to Build Your Own Software Development Learning Curriculum

You don’t need a degree in computer science to become a successful software developer.

Madison Hunter
The Startup
9 min readDec 21, 2020

--

Photo by Marcel Friedrich on Unsplash

At a time like this, everyone is taking a good hard look in the mirror and asking themselves if they’re happy with their career. For some, they ended up pursuing careers in fields they chose to study when they were 18 and no longer have the same passion that drove them in the first place. For others, it’s a matter of no longer having the drive to work a standard 9-to-5 job that should require overtime pay thanks to a mind-numbing commute. And for the rest, it may be that time away from work during a quarantine gave them the time to explore other passions or interests.

You may be in this situation and are now realizing that you want to become a software developer, thanks to a wealth of benefits unique to the industry, including the six-figure median salary, the ability to work remotely from anywhere in the world, and the chance to enter a new and constantly changing field with a low unemployment rate and nearly guaranteed job security.

However, like many people looking for a career change, you don’t want to spend thousands of dollars and years of your time to get a university certificate, technical diploma, or college degree. A coding bootcamp should be out of the question as well because there is no legitimate guarantee in the world stating that what you learn at a six-week course will land you a job at Google. Shame on you bootcamps for false advertising.

There is another option though.

Thanks to the ingenuity and generosity of many software developers, a lot of the courses you would take at a traditional university are now being offered online for free. This has prompted many current and up-and-coming developers to design their own learning curriculums to help them join the job market and be as competitive as any university graduate.

Here’s what a typical software development curriculum looks like at a formal post-secondary institution.

After high school, I attended a technical institution where I graduated with a technical diploma in software development. A technical diploma differs from a four-year university degree in the length of study and the types of courses involved. In Canada, a technical diploma takes two years to complete, and the courses are generally geared towards making you a competent developer who can hit the ground running at any company after graduation. This means that you get to focus on learning how to code right away, and by the end of the two years, you can confidently build industry-level software.

While I completely support learning the complexities of computer science, I also know from experience that you don’t need to know each minute concept about how the software works to get your first job as a developer. Those details can be filled in at a later date and will eventually make you a much more competent programmer.

However, because time is of the essence and you want to pack the most knowledge into your personalized curriculum, it’s important to tailor your courses towards essential knowledge only.

Here is a look at the courses I took during my formal two-year program:

Software development curriculum at post-secondary institution.
Technical Diploma in Software Development Class Schedule by Author
  • blue courses: courses centralized around understanding the software development life cycle (SDLC) and principles of business and systems analysis
  • red courses: courses based on web development practices and coding
  • green courses: courses centralized around software development and learning how to program
  • yellow courses: professional development courses

One unique thing you may notice in my schedule is the programming languages that I learned. The professional mandate of the post-secondary institution I attended is to produce graduates who have skills that are relevant to the local industry. In my case, the languages that are commonly sought after in my province are C#, SQL, and JavaScript.

This program was incredibly effective at producing graduates who were immediately competitive in the industry because they possessed most of the skills looked for by employers. In essence, graduates had everything that they needed, and nothing that they didn’t.

Looking back, many of the courses I took are now offered online for free or for a small fee, and the online variants will generally yield the same, if not better, results. The professional development courses I took can all be found on LinkedIn Learning, whereas the systems analysis, software development, and web development courses can all be found on sites like FreeCodeCamp, Udacity, Youtube, and in blog posts.

Questions to ask before building a personalized curriculum.

While you can go ahead and follow my curriculum exactly using online resources (I’m sure it would be relevant for many of you), you may want to consider a few things first.

What programming languages are relevant in my location (or future location)?

A quick Google search of the top programming languages for your location will likely be different than the top programming language sought after in a different country. It’s important to structure your curriculum around learning languages that are often used by the companies and firms in your area to avoid becoming redundant.

However, there are a few staples that you can’t go wrong with learning, including Java, C#, JavaScript, Python, SQL, Ruby, and basic HTML and CSS.

What skills do I already have / what do I need to learn?

In short, what skills do you already have that are transferable to this new endeavor, and what do you need to learn going forward?

For example, if you already have a working knowledge of HTML and CSS, don’t spend hours taking courses on what you already know and are comfortable with. Or, if you are already proficient in business communication, you can rest assured that you’re not lacking in that specific skill area.

You will also need to determine specifically what you need to learn. This requires making a list of programming languages, technical skills, and soft skills that you need to make part of your curriculum. This can be done by looking at job ads and seeing what employers are looking for.

What is my preferred learning style?

It’s important to decide in advance how you’d like to learn how to code.

From my personal experience, I find it easier to learn when I have someone discussing the code as they’re writing it. This means that for me, I enjoy following along with videos. On the other hand, blog posts have been really instrumental to learn simple topics that can be easily understood from reading descriptions and looking at source code.

For those just starting with learning how to write code, I would suggest using a variety of sources early on so you can decide quickly which one works best for you.

Medium, StackOverflow, Youtube, Coursera, Codecademy, Udacity, and freeCodeCamp are generally the best sources in the game.

Do I have the necessary interest in completing this curriculum?

It’s easy to get swayed by the promise of a six-figure salary, a tropical work environment, and the relative guarantee of a job for life.

However, if those are the only reasons you’re learning to code, you’re in it for the wrong reasons. Ask yourself if you’re going to be happy working as a software developer before you invest the time and effort to developing and following your curriculum.

Building your personalized software development curriculum.

Now comes the fun part.

Once you’ve done a little research into the languages you need to learn and the other technical and soft skills you need to add to your arsenal, you can begin to build your curriculum.

Separate the competencies you wish to achieve into categories, and slot the courses you want to use into those categories.

Some things to keep in mind:

  • Include a mix of beginner, intermediate, advanced, and project courses when learning a new programming language. The project courses will be especially important as you learn how to apply your new knowledge.
  • Don’t forget about learning some of the processes that occur during software development. While you may be taught on the job, it’s nice to have a firm grounding in the software development life cycle (SDLC) so you can know what to expect at each step.
  • One of the biggest complaints of people hiring developers is that developers often don’t know how to communicate. While it’s vital to be a proficient programmer, you also need to be an effective communicator. Learning how to explain your thought process, how to present to groups of people, and even how to write a business email or proposal, will make you invaluable to your future boss.
  • Make sure you round your curriculum off with a big capstone project. While you’re going to miss the opportunity to complete the project in a group of people, you’ll learn many valuable skills while working on the project solo. You don't have to enroll in a specific “capstone project course”. However, they’re a good source of ideas for a project you can accomplish. Try to pick a capstone project that will challenge you, and doesn’t necessarily require the use of any of the languages you learned during your curriculum. For example, the majority of my education surrounded C#, but my capstone project ended up being done in Angular and Java. A capstone project ties together all the loose ends, and gives you a sense of satisfaction and confidence at the end of your curriculum, not to mention a shiny new project for your portfolio.

Example Curriculum:

Programming languages: C#, JavaScript, Python, HTML & CSS

  • C# Tutorial — Free Course for Beginners: freeCodeCamp
  • Create a C# Application from Start to Finish: freeCodeCamp
  • C# Intermediate: Classes, Interfaces, and OOP: Udemy
  • C# Advanced Topics: Prepare for Technical Interviews: Udemy
  • Learn JavaScript — Full Course for Beginners: freeCodeCamp
  • Build 15 JavaScript Projects — Vanilla JavaScript Course: freeCodeCamp
  • JavaScript: The Advanced Concepts: Udemy
  • Learn Python — Full Course for Beginners: freeCodeCamp
  • Intermediate Python Programming Course: freeCodeCamp
  • Learn HTML5 and CSS3 From Scratch: freeCodeCamp

Technical skills: understanding the software development life cycle (SDLC) and software testing

  • Software Development Life Cycle (SDLC): LinkedIn Learning
  • Software Development Life Cycle Models and Methodologies: Medium
  • Software Testing Foundations: Testing Throughout the SDLC: LinkedIn Learning
  • Beginner’s Manual Software Testing Guide: Medium
  • Software Testing and Methodologies: Medium

Soft skills: business communication

Capstone Project

Final thoughts.

What I want to leave you with is this nugget of wisdom from one of my previous articles: don’t expect to be guaranteed a job after learning to write your first “Hello World”.

Becoming a software developer is rewarding, though a tough path to take. There is no guarantee that you will come out of your own curriculum as a competitive developer who is ready for their first coding interview. Furthermore, it’s difficult to determine just how long it will take before you get the hang of things. Some success stories describe individuals who learned to code and six months later were hired by Google, while others describe individuals who had to work at it for years before they got their first job.

However, if you’re wanting to become a software developer for the right reasons, this shouldn’t dissuade you from embarking on this journey.

Keep in mind that being a software developer requires lifelong learning, and the stuff you teach yourself today will get built upon in years to come. By remaining relevant and participating in Kaggle competitions or hackathons, or completing capstone projects, you’ll further cement your learning and will become an even more competitive, valid candidate.

It has been proven time and time again that successful software developers don’t need university degrees, so why can’t you become the next great developer? So persevere with your curriculum, and be sure to do so with eyes wide open. Because maybe, with the right amount of fortitude and ingenuity, you might attain your goal of becoming a fully-fledged, self-taught, software developer.

--

--

Madison Hunter
The Startup

CAN | +1M views | Data Science, Programming & Learning | TerraBytes Newsletter: https://terrabytes.substack.com/