The Most Helpful Online Tools for Self-Improving as a Software Engineer
Resources for Self-Taught Developers at Any Budget and Time Commitment
Table of contents
- My experience with self-learning in tech
- Types of Online Resources:
- The Basics:
- Beyond the Basics
- Lastly, a few important warnings...
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
online courses (which you can complete at your own pace)
cohorts and timed online courses
online educational platforms
hackathons and competitions
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.
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
Self-paced course with a cohort
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
Non-profit educational platform
Self-paced courses, tutorials, and video lessons
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
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
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.
For developer relations... check out this list of Tech Community & Developer Relations Resources.
For the hardware & embedded enthusiast... The Dragon Book.
For hackathons... Major League Hacking.
For open-source... First Timers Only.
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! 🎉