So, how to become a software developer? This is a step-by-step guide on what I would suggest doing to go from knowing pretty much nothing to being a self-taught software developer. Now I want to stress that there’s no magical path to success. These are just some basic steps that I would suggest, and I’m not going to just ramble them off. I’m gonna elaborate and talk about each one, and hopefully, it can help you find your path to successfully becoming a software developer of any kind.
So, how to become a software developer? Follow the following steps:
Step 1: Figure out your end goal
The first step is to find your end goal and what I mean by that is what you see yourself doing and what you want to do. Do you want to work for a large company? Do you want to work for a start-up? Do you want a freelance and run your own business, or maybe you just want to create software at a license out and sell. There’s a lot of things you can do, so figure out which one of them you can really see yourself doing and what you would like to do.
Some people like the benefits of working for a company, and some people like the freedom to build something of their own (freelance or start their own business). Also, there are many different paths in programming and technology. What do you want to do as far as coding? Do you want to do web development, game development, or data science?
There are many different paths to take. I would encourage you to really look at what you’re naturally good at. For instance, if you’re really good with math, you might want to look into data science or possibly some low-level programming. If you’re more visual, you might want to go into web development or mobile development, or desktop applications.
If you’re interested in knowing the pay scales and job security for different positions, Glassdoor is a great website. There are many other websites that you can look at stuff like that because I’m sure that will play a factor in what you choose for your end goal. So, once you decide what you want to do, work for a company or freelance or whatever it might be.
Step 2: Choose a programming language
You need to choose a programming language. It’s definitely the first thing that you want to learn. Different jobs and different types of programmers use different languages. For instance, if you’re going into data science, machine learning, AI, or anything like that, you’re gonna learn Python. Most likely for mobile development, you’ll probably learn Swift or Java.
So you will have to do some research on that. Now a big mistake that I see people do is jump right into frameworks and libraries and stuff. I would definitely recommend learning the fundamentals of a language. First, learn some computer science fundamentals and principles before you go on and learn frameworks and stuff. Because you’re just going to overwhelm yourself if you try to learn multiple things at once.
You also need to pick a text editor or an IDE. I use Visual Studio code for just about everything, but I’m a web developer. If you’re using a compiled language such as Java, you’re probably going to want to use some kind of IDE, some sort of integrated development environment.
Another thing to mention is you know once you pick a language, you’re not stuck with it. If you find that you want to do something else, you can switch. If you know the basics and fundamentals of just programming, you can quickly pick up languages and learn multiple languages.
Step 3: Find resources and build a curriculum
Now, to learn a programming language and learn other technologies, you need to find resources and build your own curriculum, which can be tricky. When you go to college or pay for a boot camp, everything is laid out for you, but you have to find your own resources when you are self-taught. So I’m just gonna go over some of these resources.
So, books, believe it or not, are the best resources for learning programming languages’ fundamentals. In my opinion, they suck for things like frameworks and libraries because those are updated so often, and pretty much all the books I’ve ever looked at on frameworks are out-of-date. But they are perfect for programming languages. They even give you the history and computer science principles and things like that. So, they are suitable for that stuff.
Documentation is one of the best resources for just about any technology. However, documentation is more for reference than a linear way to learn something. So, it’s usually used as a kind of a supplement to a more linear course.
You also have free resource websites like MDN and W3 schools. These are great sites for beginners. W3 schools have everything from HTML to Python to SQL, and it really helped me out back when I was learning web development.
so the video is definitely my preference. It can be challenging to find up-to-date courses. You have to do a little bit of digging, but the good news is like with books, if you’re learning a programming language, they often don’t update. YouTube, which is free and great for shorter videos and fundamental. But you probably want to get into some longer-form content as well.
You have Udemy, where you can go through and pick different courses of all types, all various topics, for like 10 bucks apiece. And then you have membership sites like Pluralsight, lynda.com, front-end masters. It’s just a ton of them out there where you pay 20 to 40 dollars a month, and you get access to all types of great courses.
In addition to that, you have some options where, pretty much like an online boot camp, they lay things out for you. So, sites like freeCodeCamp, which is excellent. I know many people who have gone through it and learned a lot—Codecademy, which I also believe is free. You also have paid programs like Treehouse and Udacity that have these kinds of online degree programs. You go through different technologies and learn other things, kind of like a boot camp. It is definitely something to check out, especially if you’re not really good at making your own curriculum and you need that laid out for you.
In addition to these, you have challenge websites like Codewars, where you can solve algorithms and things like that. You can use multiple languages. So, something to look at after you already learned the fundamentals. This will also kind of prepare you for job interview questions and things like that.
So, there’s a lot of different ways to learn online. You just have to find what works for you and find online instructors that you click with. There are so many talented online instructors that, in my opinion, are better than a lot of college professors. So, you can find some excellent teachers online.
Learn more about free online courses in my article: 11 Best free coding apps (Learn to code for free)
Step 4: Find A Community
So this next one is often overlooked in self-taught development. Having a community of peers to learn from and bounce ideas off is very beneficial. And If you can find an excellent mentor, most developers are very busy and/or very expensive so, that’s kind of hard to do.
The easiest way to start talking with other developers is in online communities. Of course, you have forums on different websites, but a better option is to find some kind of discord or a server or a Slack channel where you can interact and communicate with other developers. You can get help with just about any language framework or anything like that. There are many coding discords and slacks out there to join and start talking to other developers online.
I would also suggest finding people in real life to work with. Talk to meetups is a great way to interact with other developers that you can’t get from just sitting on your computer by yourself. Find some kind of online or real-life community that you can join. Even if it’s only one or two other developers that you can talk to or email. Doing this isn’t just for learning. You’re also networking at the same time. You’re meeting people in the industry, and you never know where it might take you, so don’t be too antisocial
Step 5: Create Your Own Projects
So, number five is to create your own projects. At this point, you should have a good arsenal of resources that you’re familiar with. You should have taken some courses. Whether it’s freeCodeCamp or books, whatever it might be, and now it’s time to create your own projects. Following along with courses is only half the battle.
When it comes to learning, you also learn a ton from doing things on your own. I think this is the part where a lot of people get stuck, and many people even quit. They feel good when they’re learning and taking a course and feeling like they’re actually getting something out of it. But when they create their own project, their minds just go blank and stare at an empty text editor.
So, one thing I would stress is that for your first few projects or any project for that matter, you don’t have to start from scratch. You can take one of the course projects and use everything you learned and apply it to something new. And then I guarantee you you’re going to start getting different ideas and different features to add to the project. Then you can use documentation and other supplemental resources to figure out how to add on what you want to do. Slowly, you’ll be taken out of tutorial hell, and you’ll be building stuff on your own.
So, you use projects as a reference, use other people’s code as a reference go on Github. Find projects similar to what you’re doing that are using the same technologies and get some ideas. Don’t copy it but get some ideas from it and build on that.
Step 6: Create Your Portfolio
Once you have a fair amount of projects under your belt. You want to create an excellent portfolio that’s attractive and modern but also really simple to navigate. Have a website where you can showcase your work. If it’s web development you’re doing, have a live version of the project hosted somewhere so that employers or clients can check it out. If you’re doing like desktop tools or mobile apps or something like that, be sure to just have a link to the code and maybe an executable or something they can use to actually see your work.
This goes for people that want to be freelancers, or if you’re going to get a job at a company, it’s twice as important if you don’t have a degree. Because if you don’t have a degree, you need to have solid proof and examples. Having a portfolio with some adorable projects, in my opinion, is the best way to do that without having that piece of paper. I mean, I would definitely suggest working hard on your portfolio as well as your projects.
Step 7: Contribute to Open Source
So the next step or the next tip is to contribute to open source. This is something that I mean it’s not mandatory, but it’s something I would suggest looking into. Go on GitHub, find something that interests you, that you have some knowledge about, and check out the issues. If you can improve on something or add a new feature, this will give you some real-life experience with a real project. It’ll also give you a little experience collaborating with other developers.
There are videos out there that explain exactly how to contribute to open source or open-source projects. There are articles and stuff like that. Find an open-source project and fix a bug or add a feature or something like that but doing this will give you something else that you can put on your resume. So, it is a good idea.
Step 8: Create An Online Presence
Another thing that is really important that I don’t think is stressed enough is your online presence. So, make sure you have an up-to-date LinkedIn profile with a link to your website. Have some kind of branding and logo keep your Github up to date with any projects you’ve done. You might want to create a professional Twitter account. If you can make YouTube tutorials do.
This is really important again for self-taught developers without degrees. Because it shows what you’re doing. It shows that you’re passionate you’re motivated. If you’re tweeting about code all the time, it shows that you’re really interested in it. Anything you can do, write articles for your blog or for Medium or site like that. It just shows employers and clients that you’re really motivated in what you’re doing.
Step 9: Prepare And Apply For Jobs
The last step is to prepare and apply for a job. So, at this point, you should have all the other boxes checked. You should know your end goal, you want to specialize in at least one programming language proficiently and most likely a framework. Have resources and a community to go to if you need help and have some projects under your belt with an excellent portfolio. And hopefully some kind of online presence.
Once you have all this, you’ve pretty much-done everything you can to set yourself up to get a job. Or if you want a freelance, start getting clients if you’re looking to get a job with a large company, be sure to practice things like algorithms and whiteboard questions. The interview process can be pretty brutal, so do some reading up on interview prep. There are actually full courses dedicated to this. Look for jobs in your area looking for things you know, so if you know Python, apply to every job looking for people who know.
Job postings will often put like a minimum requirement of a bachelor’s or something like that, and as a self-taught developer, I know how depressing that can be. But just because it says that doesn’t mean you shouldn’t apply, your work and portfolio are so important. Because if you can prove that you can do the job and have the experience, many companies will overlook that degree. And that overlooked that piece of paper. Not all but some companies will if you can prove yourself.
When it comes to finding a job, don’t sell yourself short. However, you can’t be too picky because you don’t really have that experience yet. Remember, your first job isn’t going to be your last most likely. Unless it’s a really good job. Your salary might not be exceptional, but it’s not going to stay that way either. The most significant thing is just getting that position or getting that client under your belt. And you can add that to your resume for when you want to apply to your next job or your next gig.
Those are nine steps to becoming a self-taught software developer. Obviously, everyone’s path is different, but I think it’s a good foundation or a good map to follow. Remember, nothing comes easy. You really have to put in a lot of hard work to become successful in software development and anything in life. So just pace yourself and try to keep a positive outlook on what you’re doing. I know programming can be very frustrating at times, but if it’s what you want to do, I think you’ll be just fine. So, that’s it. Hopefully, this helped you out. Happy Coding : )