The Most Helpful Online Tools for Self-Improving as a Software Engineer

The Most Helpful Online Tools for Self-Improving as a Software Engineer

Resources for Self-Taught Developers at Any Budget and Time Commitment

My experience with self-learning in tech

My experience as both a self-led and formally-educated software developer has brought me countless learning resources, from free mentorships to pricey bootcamps and college courses. I've followed the advice of technical social media influencers, completed dozens of paid certification programs, and even graduated from an expensive, online software development bootcamp in addition to Bachelors in Computer Science degree. There was even a time when I had a dozen certifications from online educational programs on my resume. Today, I no longer include those certifications on my resume, because what's more important than completing courses is what you build along the way. But we all must start somewhere.

Online, self-led learning resources for developers are the perfect tools for motivated learners to hone their skills and start building fast. Here is my list of the most helpful resources I've used during my self-led development journey!

Types of Online Resources:

  • official documentation and textbooks

  • project tutorials, concept explainers, and roadmaps

  • online courses (which you can complete at your own pace)

  • cohorts and timed online courses

  • online educational platforms

  • hackathons and competitions

  • video presentations

  • bootcamps

  • mentorship programs

  • interview training & problem-solving

  • social media tech communities & creators (Youtube, Twitter, Reddit, Discord, etc.)

  • online certifications and degrees from formal education institutions


Free resources are my favorite due to their accessibility and are among my most-used resources to this day. Often, the best resources are free. The downside of free resources is that the lack of investment may discourage accountability for new devs to complete the curriculum. **This is why I recommend paid resources for aspiring devs who are new to self-led learning and struggle with accountability. **


Paid resources help new devs stay accountable to finish the curriculum, and often come with many perks such as career coaching and job search assistance. But I can't emphasize this enough -- paid resources are not a requirement to become a skilled developer. As I progressed through my career, I found that the price of an online resource had no correlation to the curriculum's quality. This is why I only recommend paid resources for new developers who need help staying accountable, and for experienced devs looking to hone in on a unique specialty where the resources may not be so easily available.

The Basics:

No matter what kind of developer you want to be, or even if you just want to work in tech without necessarily being a developer, you must know the basics of computer science and GitHub!

A broad understanding of computer science will give you the required domain knowledge to succeed anywhere in the tech industry. Experience on GitHub and using git version control will enable you to confidently save and showcase your work, as well as work with other developers.

Harvard's CS50x for Computer Science

  • Free

  • Self-paced course with a cohort

This free, online computer science 101 course led by Harvard professors is one of the most renowned free online resources for computer programmers, and for good reason! This 11-week, self-paced course covers the basics and beyond of computer science, how to think algorithmically and solve problems, concepts such as abstraction, data structures, security, web development, and more. You'll also gain familiarity with several software languages, such as C, Python, SQL, and JavaScript, plus HTML and CSS. There's also an option to submit a final project and receive feedback from professors and other students! The best part is that this course is designed for first-timers who have yet to write their first line of code.

Check out the final project gallery, available specialty tracks, and more here!

Out of all the resources I've utilized to learn computer science, this is my tried-and-true, all-time favorite. It also happens to be free and grants you the bragging rights to say you've completed courses at Harvard. :)

FreeCodeCamp for Computer Science & Git

  • Free

  • Non-profit educational platform

  • Self-paced courses, tutorials, and video lessons

FreeCodeCamp is an online, non-profit educational organization with over 8,000 tutorials on its website and Youtube channel. Their online platform has tracks for web design, JavaScript, algorithms, data visualization, data analysis, machine learning, and so much more! Each contains blog posts, Youtube videos, project-based tutorials, concept explainers, and a chance to earn certifications by submitting projects.

If you are brand new, I recommend starting with their Intro to Computer Programming and Computer Science course followed by their Learn Git and Git Version Control in 1 Hour course to get started! Then revisit FreeCodeCamp for their specialty tracks.

GitHub's Skills Lab

  • Free

  • Self-paced, interactive courses

When it comes to essential skills every beginner developer should learn sooner rather than later, GitHub and git version control are among the most important. GitHub is an online platform for hosting code and working with other developers. Git version control is a standard for how developers save their work and track changes in code. Learning these will enable new developers to confidently showcase their work and learn real-world skills you'll need for working with other developers.

GitHub's Skills Labs provides interactive tutorials for learning all of the following -- intro to version control, contributing to open-source, writing documentation for READMEs, setting up continuous workflows, and more! I found these lessons later in my developer career, and wish I had found them sooner. The way these insightful lessons are seamlessly integrated with GitHub allows you to catch onto the concepts quickly.

Beyond the Basics

If you've already written your first "Hello Worlds" and want to dive deeper into specific topics, such as blockchains, web development, machine learning, etc., here are my favorite resources for building niche skills in specialty tech topics!

Coursera, Edx, and Udemy for all subjects

  • Paid, but sometimes free

  • Self-paced courses, sometimes with cohorts

These are my favorite online resources for individual courses and certifications. All provide a variety of courses to choose from at a decent price. Coursera & Edx have a large selection of courses created at world-class universities. Udemy has frequent deals and discounts with the majority of their courses coming from independent educators.

FrontendMasters for frontend & web development

  • Paid with a free trial

  • Self-paced courses with video lessons

In my personal experience, web development and frontend software engineering practices are so frequently innovated that finding up-to-date resources can be difficult. Luckily, FrontendMasters has mastered just that -- cutting edge frontend tutorials from world-class developers. This platform saved me a ton of headaches when I was learning ReactJs and much of the docs had yet to be updated to reflect the newest version!

DataCamp for backend & data science

  • Paid with a free trial

  • Self-paced courses with video lessons

DataCamp is an educational platform that specializes in programming for data science. It was my favorite when I was using Python for data management for a job once, because their courses start at a beginner-level, and effectively advance to expertise courses. Whether you're a data science wanting to get into programming, or a programmer wanting to get into data science, DataCamp will serve you well.

Buildspace + DeveloperDAO for blockchain & web3

  • Free or purchase of NFT

  • Self-paced project tutorials with cohorts

Buildspace is a project-based web3 tutorial platform that enables you to learn alongside a cohort and earn NFTs! Pair this with a developer_dao membership, a thriving community of thousands of web3 enthusiasts, and you'll have access to tons of blockchain resources and web3 interest groups!

AlgoExpert, Codewars, & Leetcode for interview prep

  • Paid with free tiers

  • Online problem-solving platforms

  • Competitions

The dreaded coding interview can be made less stressful with practice! Personally, I have become addicted to solving a few of these problems daily, I think of it as a "techie" form of a daily Sudoku puzzle! AlgoExpert is my favorite way to practice data structures and algorithms for coding interviews. It provides video explanations, insightful answers, and options for completing problems in different software languages. LeetCode is the world's premier coding interview practice platform that has over 2400+ questions and provides the structure for tracking your progress. Codewars is similar to Leetcode but has a gamified element with competitions.

Misc. Favorites

Lastly, a few important warnings...

  • no educational resource should ever, ever take a percentage of your income once you earn a job, please avoid those programs.

  • online bootcamps should never cost thousands of dollars, effectively, these programs are not worth the cost because their curriculum can be taught for free, please use caution and weigh all your options before committing to a program that isn't affordable to you.

  • networking to find a job can be achieved for free through job sites and social media, especially Twitter and LinkedIn, please do not let an over-priced program convince you that it's worth it because they will help you find a job, you will need to learn to market yourself regardless.

  • it's less about earning the certification, it's about learning the concepts and building the projects, so if there is a paid option for a certification, note that this is not necessary.

  • if you do earn certifications, add links to them on your resume to stand out. :)

  • be careful to not get stuck in 'Tutorial Hell'.

Happy Learning! ๐ŸŽ‰