A guide to learning software development online

This blog post is aimed at anyone interested in taking an online course to learn a new skill in software development. No prior knowledge or skills in software development are required to understand this blog post.

This post will provide an introduction to online learning, some of the top sites to access online courses, why to take an online course and what to consider before settling on a particular course.

The writer has not been paid to endorse any site mentioned in the blog post.

Introduction

Peter Drucker, an author and thought leader on management, is noted for saying that learning is a lifelong process of keeping up with change. The statement holds true particularly for software developers. Being a software developer requires a commitment to lifelong learning as the field is constantly changing.

As a result, developers are required to be up to speed with new technologies, frameworks, algorithms, programming languages or new approaches to problem solving.

A popular way for developers, beginners or experienced, to learn new skills is by taking an online course. Unlike tutorials which narrow down to a particular concept in a particular field such as how to generate random numbers in Python, an online course is longer and covers a broader area such as programming in Python.

Why should you take an online course?

The following are some of the reasons to consider taking an online course:

  • It makes learning easier - learning a new skill is not easy. It is even harder when you’re learning about a technology you are unfamiliar with. You rarely know what key concepts you need to master, what order to master them and how to apply the concepts in the real world. An online course helps you avoid all those troubles by providing a structured way to progressively learn new skills and apply them as a software developer.
  • You get to learn from experts - a majority of online courses are offered by experts who have experience using a particular technology. As a result, you get to learn from their experience and learn industry best practice in a particular technology.
  • You get a certification - a lot of online courses offer certification upon completion. This can be used to let recruiters and potential employers know that you’re knowledgeable in particular technology even before they see the projects you’ve built.
  • It makes learning flexible - online courses are self paced and you can learn online from anywhere in the world, any time you like. This means that your learning will be done at your own pace. Additionally, it allows you to effectively plan your time.

Where to get online courses on software development

Online courses on software development are offered by universities, online learning platforms, technology companies and even other programmers.

Universities

A lot of universities are embracing online learning and offering online courses on their website or through Massive Open Online Courses(MOOCs) providers such as edx and Coursera. MOOCs are online courses where anyone can enrol without the need to get an admission to a particular university. A lot of universities offer their courses on edx and Coursera.

Typically, online courses offered by these universities are focused on fundamental and core computer science concepts such as data structures, algorithms, discrete mathematics, machine learning and artificial intelligence among others.

Taking online courses offered by universities gives you exposure to leading researchers and professors in the field of computer science and software development. Additionally, you get a glimpse of what is like learning about technology from a leading university. A good course to check out is Introduction to Computer Science offered by Harvard University.

The following are some of the places where you can access online software development courses offered by universities:

Online Learning Marketplaces and platforms

These are platforms dedicated to creating and selling online courses. However, others like freeCodeCamp and YouTube do not charge a fee for their courses and tutorials. Additionally, you can find free courses on paid platforms.

Unlike universities, courses offered on these websites are focused on particular technologies or skills that a software developer might want to learn. For instance, if you’re interested in learning a programming language such as Java, Python, Javascript, C, C++ among others, or frameworks such as Django, Spring, React and NodeJs these are the best places to learn these technologies.

The following are some online learning platforms with good software development courses:

  • Udemy - This is one of the most popular platforms which has courses on almost all subjects in software development. This platform allows people to create and sell courses on different subjects. Courses cost from as low as $9.99 during sales. You only pay for courses once and have the ability to learn from different experts in a subject of your liking.
  • freeCodeCamp - Offers free online courses on software development
  • DataCamp - This is a good place to start for those interested in a career in data science
  • Udacity - This platform is particularly useful if you’ve figured what career you want to venture into as a software developer. They offer different career paths with a syllabus that covers everything you need to know to pursue a certain career. Some of the career fields offered are in programming, data science, cyber security and artificial intelligence among others.
  • Codecademy - This platform offers a wide range of courses on learning programming languages. It also has an option to pursue career paths such as front end engineering, full stack engineering and data science among others.
  • YouTube - Here you can find a lot of online courses offered by differe developers. A good way to use YouTube is to build projects. There are numerous code along videos that can help you.

Aside from the above learning platforms, there are developers who have platforms where they sell their own courses. Most of these developers also have YouTube channels where you can check their style of teaching to see if it suits you.

However, often times these courses will be more expensive compared to similar courses platforms such as Udemy

Here are some platforms with courses offered by specific developers:

  • Code with Mosh - By Mosh Hamedani who offers courses on languages such as Python, Java, Javascript and frameworks such as React, Django and NodeJs among others.
  • Kevin Powell - By Kevin Powell who offers courses on making responsive websites and using CSS like a pro.
  • Developed by Ed - By Simo Edwin who offers courses on coding, design of websites and website animations.
  • Webdev Simplified - By Kyle Cook who offers web development courses.
  • Amigoscode - By Nelson Djalo who offers courses in Python, Java, Javascript, and databases among others.

Technology companies

A large majority of technology companies have online courses targeted at developers. Companies such as Google, Microsoft, MongoDB, Oracle and Apple among others, all have online courses for developers.

However, it is important to note that a lot of these courses are designed to teach you how to use a particular company's technology in software development.

Still, the courses are very useful.

The following are some companies that offer online courses for software developers:

What to consider before picking an online course

  • What you want to learn - depending on what you want to learn you can pick a platform that will best address your needs. For instance, if you want to learn how to build a form on a website, Youtube would be ideal. However, if you’re interested in learning about a subject like web development, consider getting a course on web development. If you're interested in learning core computer science concepts, universities or MOOCs would be ideal. To learn how to use a certain company's tool, see if the company has courses on the same.
  • Pricing - Ultimately, the course you settle on will depend on your ability to afford it. Platforms such freeCodeCamp and YouTube offer free courses. However, other platforms require payment to access their courses. This can be paid for as a monthly subscription or a one time fee for the course. Therefore, consider how much a course will cost you before making a choice.
  • Certification - A certification is proof that you undertook a course to completion. This is a good way to show that you are knowledgeable in a particular technology. For online courses, favor the ones that offer a certification upon completion.
  • Projects - Building projects are a fantastic way to showcase what you’ve learnt and enrich your portfolio. For instance, to show that you have learnt web development, you can build your own website. To grow as a software developer, you need to build projects. Therefore, while picking an online course, look for courses that have projects you can build while learning. This will also enhance your experience in software development.
  • Reviews - These are opinions of other students who have taken the course. This can be a good way to gauge how good a course and an instructor is. Look to see if other students have gotten value from the course, if their concerns are addressed and how effective the instructor is. Additionally, try establish whether the instructors glosses over key concepts or offers an in depth explanation to core concepts. Most online courses have reviews sections where you can see all this. Reddit is also a good place to find reviews on online courses.
  • Instructor - while learning online, you’ll spend a lot of time listening to your instructor. Therefore, it is important that you establish whether an instructor is right for you. Look at the course preview to determine whether you understand how an instructors speak, how engaging are they and do they they explain concepts in a clear, simple and concise manner. This is very subjective, but pick what works for you.
  • Learning style - before picking a course, look at how the course is structured and delivered. It could be that videos longer than 10 minutes are just too much for you. Therefore, try establishing the average duration of videos to determine if they match your style of learning. Also look at how content is delivered to establish if it matches your learning style.
  • Quality - Whereas this can be hard to establish if you are new to a technology, you can rely on reviews of the course by other students to gauge the quality of the course. Additionally reviews of the course on social media can help. Since online courses provide an outline of what is going to be taught, you can also use this to determine if it will teach you everything you need to master a particular technology. This is where an expert can come in handy. Share the course with an expert in the field and ask them if it will be sufficient to master an area you're interested in.
  • Refund Policy - For paid for courses, look to see if there is a refund policy in case you purchase the course and realize it is not what you wanted.

Next Steps

Online learning is a good way to learn and grow your skills. Once you settled on a course, immerse yourself fully in it and build projects of increasing complexity as you learn. This will ensure you get the full benefit of the course.

A common pitfall beginners learning online face is tutorial hell. This is a situation where you learn new skills but are unable to apply them in building real world projects. Read Eshan Sharma's post Tutorial hell to see how avoid that unfortunate situation.