10 Free Software Development Resources for Beginners
A list of useful resources for anyone starting to learn software development
With the rise of YouTube, Udemy, Coursera, Khan Academy, and various coding boot camps, the barrier to entry in software development is falling rapidly.
Gone are the days when you had to enroll in computer science or software engineering courses at big universities. Anyone with a laptop and internet access can now learn software development almost for free.
If you have just started learning software development, then the list of resources below will be really useful.
1. Developer Roadmap
The software development field is huge. Front-end, back-end, DevOps, full-stack, Java, CSS, React, Angular, JavaScript, SQL, NoSQL, container, Kubernetes, Oauth, APIs, C, Python, PHP, C#, .Net, and the list goes on.
If you are just starting out and don’t have a technical background, you will be lost. You won’t even know where to start and what to learn first. This is where developer-roadmap by Kamran will be really useful. Here, you will find a set of charts showing the paths that you can take and the technologies that you would want to adopt in order to become a front-end, back-end, or DevOps engineer.
I highly recommend that you start your journey from here and decide on the path you want to take.
https://github.com/kamranahmedse/developer-roadmap
2. HTML/CSS/JavaScript Flexbox
Most beginners start their software development journey with front-end development by learning HTML, CSS, and JavaScript. These three represent the foundation of front-end development.
W3School is a great website that has tutorials on various programming languages. I find their HTML, CSS, and JavaScript tutorials very useful for beginners:
https://www.w3schools.com/html/html_css.asp
At some point in your journey, you will end up learning about CSS and one of its powerful features called FlexBox. The two websites below will make your CSS and FlexBox learning fun and interactive.
3. SQL
Writing SQL queries to get data from a database is one of the fundamental skills that you will need to learn as a software developer.
SQLBolt is a website that provides interactive tutorials for SQL. It has a series of interactive lessons and exercises to help you quickly learn SQL right in your browser.
4. Git
At some point in time, you will have to deal with GitHub, where you will manage your code. Knowing how branching works and how Git operates will make your life a lot easier.
Learn Git Branching provides an interactive tutorial with visuals to help you learn the basics of Git commands and branching.
https://learngitbranching.js.org/
As its name suggests, Introduction to Git is an introduction to Git. If you are new to Git and have never used it before, then I recommend you start with this Notion page where the author has organized the content really well.
5. Regular Expression
During your learning or any project that you might be working on, you will end up needing to use a regular expression.
A regular expression is a sequence of characters that define a search pattern.
It is tricky to understand what a regular expression means or get it right on your first attempt. That is where RegExr comes in handy. You can quickly build or check the validity of a regular expression using this online tool.
6. Oauth
Although it’s an advanced security concept, Oauth is used everywhere these days. However, there are still a lot of software developers who can’t explain how it works. There is a lot of confusing information out there.
I found this blog post on freeCodeCamp easy to understand and accurate. If you want to understand how Oauth works, then take a look.
https://www.freecodecamp.org/news/how-to-dance-the-oauth-a-step-by-step-lesson-fd2364d89742/
7. Kubernetes/Containers/VM/Docker
Again, this is a sort of advanced topic, but it’s a topic that you’re bound to encounter at some point in time. You will hear people talk about Docker containers, Kubernetes, and VMs for the deployment and hosting of the applications. Having a good understanding of these topics will make you a well-rounded software developer.
I found the two blog posts below really helpful in explaining these concepts.
https://www.cncf.io/phippy-goes-to-the-zoo-book/
8. Programming Rules
This a great website where the author, Mickey Muldoon, has laid down some rules of thumb for beginner software developers.
https://muldoon.cloud/programming/2020/04/17/programming-rules-thumb.html
I highly recommend you bookmark this website for future reference.
9. Practice
If I had to give only one piece of advice for someone just starting out with learning software development, it would be to practice. I can’t stress this one enough. If you want to code and be a good software developer, you need to practice.
Codewars offers coding challenges in all possible programming languages, all while making it fun with gamification features. I highly recommend you try to complete at least one challenge a day. This alone will make you a great developer and boost your self-confidence as well.
10. Measure and Track
As people say, you can’t improve what you can’t measure. WakaTime is a dashboard for developers. It's a free plugin that you can install on the code editor that gives you daily and weekly reports on where and how much time you are spending in terms of your coding.
It allows you to set goals as well. For example, I can set a goal that I will code at least four hours a day this week in Java. The WakaTime dashboard will then tell me exactly how much time I spent coding in Java and whether I was able to reach my goal.
It won’t help you learn to code but will help you stay on track.
Good luck! Thanks for reading.
If you found this content useful and would like to get notified when I publish new posts please consider subscribing.
I publish posts every week. Topics vary from Tech to Design to Social Media to Pop Culture to Politics to Space to Travel to Productivity to Outdoors to Finance to Books to TV Shows to Youtube Channels to Movies to Self Help. It’s going to be a mixed bag and will help you in your career or personal life one way or another.
Thank you for your support! It truly means the world to me! Please let me know if you have any questions or recommendations, by responding in the comments section below. I will do my best to answer all of them.