Over the years, I’ve had a handful of friends ask me how to become a software developer. I’d like to lay out steps on how to go about it, based on my experience and current industry trends. Below is what I think is the best approach.
College Isn’t Needed
Some of the best programmers I’ve worked with did not go to college. They had to use critical thinking skills and personal drive to learn the complex world of software development. These qualities are good markers of how successful they’ll be at work. This isn’t a knock on college at all, but a statement that it is possible to pursue this career without having a degree in it. If you have a drive to learn and persistence, college or not, you can be successful at it.
AI is Your Friend (Mostly)
AI is an incredible study partner. When I was teaching myself programming, this would have saved hundreds of hours of digging to get questions answered or find examples. Use tools such as ChatGPT, Gemini or Claude to work with you as you’re studying.
However, I would strongly urge you to NOT have AI write code for any of your early projects. AI is a tool you’ll use continually in your career while coding, but at this stage you need to develop problem-solving skills and how to debug code on your own. This is what makes a developer valuable.
How to Study
Schools don’t ever really teach a person how to study, yet it’s the most important subject there is when learning anything.
When you’re studying a subject, communication is taking place from the teacher/author to you. In order for a communication to be complete the words must be known. Imagine having a conversation with someone and they say “the cassowaries are out today”. The entire reason you may not understand what they said is not knowing the meaning of the word “cassowary”. Once you understand that a cassowary is a type of large, flightless bird, you now get the whole communication. This is a very simple example, but the concept applies to anything you study.
The words and what they mean are vital to learning. If you notice yourself confused, or even if you’ve lost interest in the subject and no longer want to study it, the odds are you went past a word or words you didn’t fully understand. The remedy is to review what you studied just before you had difficulty, and clear up those misunderstood words.
The other important part of study is having a proper balance of the information you’re studying with an application of that information. In other words, if you’re studying programming, you’re going to have a very hard time if all you’re doing is studying about it. You need to actually apply it—write code, deploy an app, do the steps you’re reading about.
What to Study
My recommendation on what to study boils down to the question: “what interests you?”. For me, it was building apps on the iPhone. The idea of being able to create a mobile app which would be useful for me and others was very appealing. I also liked the fact that it was more niche than web development, so the compensation could be better. This led me to learn the Swift programming language and iOS development.
What’s great is once you’ve learned programming on one platform, you now know the basics of coding and it’s much easier to learn other languages and platforms.
Starting Points
If Android devices interest you…
Learn Kotlin, Java and Android development.
If Apple devices interest you…
Learn Swift and iOS development (MacOS/VisionOS can come later).
If building websites interest you…
(also known as web frontend)
Learn JavaScript, TypeScript, HTML, CSS and React.
If the data that drives web and mobile apps interests you…
(also known as backend)
Learn JavaScript, TypeScript, Node.JS, databases, SQL.
Again, these are starting points. Other languages and technologies that fall under these categories and would come later after you’ve learned the basics. I always recommend eventually learning the full stack (frontend and backend).
Programs of Study
Now that you’ve determined what area interests you, the question is how to start. There are several options:
Free Courses
Many free resources for learning are available. Some courses that I would recommend checking out are:
Web frontend and backend:
iOS:
Android:
Bootcamps
A benefit of a coding bootcamp is you will have more of an interactive experience. They typically have mentors/teachers you can consult with. Group projects tend to be part of the curriculum as well. The downside is the cost, ranging in the thousands of dollars. It’s important to do your due diligence on any bootcamp before enrolling. See what they offer and check reviews. Keep in mind, they will not get a job for you. And no matter what, your success will still be very much in your own hands.
Bootcamp popularity has greatly decreased over the last 5 years. I’m not even sure how many good ones are left. One of the only ones I know of that has been around for a long period is Flatiron School. I can’t recommend for or against it, but it is an example of a coding bootcamp.
One-on-One Mentoring/Lessons
Through one-on-one teaching, you can get a personalized experience that goes at your pace. Think of it like private music lessons, but for coding. It can be approached either very hands on with an instructor, or more as a regular checkin as you progress through a curriculum on your own. This has the benefit of flexibility on how often you want to meet with the instructor, which gives you more control over your cost.