My Personal Guide to Becoming a Software Developer (possible… but not easy or simple)

Many people dream of becoming a software developer, so I wanted to write a blog post and share with you a little about my own personal experience.

The first comment I would like to make is… It takes a lot of work, self-discipline and dedication, and not everyone understands the amount of time it takes to become a (slightly) good developer.

Throughout my journey at Turing School of Software and Design, I have spent more than 7 months (with 70+ hour weeks) in a not so glamorous basement. Yes, I was surrounded by amazing people; yes, I have worked with incredibly smart human beings; and yes, I have learned to develop and cultivate the right mindset to understand the impact of technology in the world; but NO, it was definitely not easy.

As I come to the end of the program, I can certainly say that it has been a fun and rewarding journey, however, I would be downplaying it if I would have told you it was all ‘shits n’ giggles’. Of course, I have had a lot of self-doubts and more than ever I had to face and overcome some of my worst concerns, but at the end of the day, this journey has made me a much tougher human being, both emotionally and intellectually.

I now consider myself an able software developer. I have been pushed in all the directions, built applications in languages I would never have touched before, come up with features that I would have never seen, and delivered projects within a very tight deadline. I have spent way too many nights up until 1:00, 2:00, 3:00 or 4:00 a.m. implementing features to make sure the product would be delivered fully functional. Although it was not always fun or easy, I can certainly say it was fulfilling.

Everything in life is worthwhile as long you find something you are really enthusiastic about (not a big fan of the word “passionate”, but that is a different subject).

While I do not consider myself an expert in the career change matter, if you are looking into becoming a software developer, here are some of my suggestions (take it with a grain of salt):

Have something you really want to make: Whether it’s a blog, a game, a website, a SaaS startup, an online dating website, or an app to manage your family’s finances, having a project that you’re motivated to build will push you through the tough times when learning to program. A real-world use-case for your skills will accelerate your learning. In my personal experience, the students who progressed fastest with their skills were those who had something they desperately wanted to build, because everything they learned, they could apply in their project.

Do a coding bootcamp, if you can, and if you feel it will work for you: A good coding bootcamp will give you a focused environment, help when you need it, and support when the journey gets tough. When you’re first learning to code, it can be really hard to know what you should focus on. In my experience, coding bootcamps have been very good at whittling this down to the essentials you need to build or design web apps.

A GOOD coding bootcamp will also assume no prior programming knowledge, and teach you the skills you need from the ground up, unlike many programming articles and videos, which will be written with professional programmers in mind.

Coding bootcamps can be expensive, and they’re not for everyone, but if you feel like it might be worth the investment, I highly recommend them.

Connect with other people learning to program: Learning to code can be difficult at times. Having a network of other people going through the same challenges can be hugely important. If you don’t know anyone making the transition, attend local meetups and talk to people there, especially if you’re focused on languages popular among junior developers (Ruby and JavaScript in particular). If you’re lucky, your local programming meetup may even host a ‘Newbies’ night now and again. Make sure to go!

Find a mentor who works in the industry (VERY IMPORTANT): A friendship or mentorship with a working software developer can also be immensely helpful in your journey. They will know what the interview culture is in your local industry, will be able to give you advice when you get stuck, help you focus on the most important skills to learn, and give feedback on your code. If you’re lucky enough to find a software developer generous with their time in this way, make sure to give back somehow, even if it’s just buying lunch when you meet. Once again, meetups are a great way to meet potential mentors. If meetups aren’t for you, or there are none in your local area, you can also find mentors on CodeMentor.

Focus your learning: If you’re hoping to primarily do backend programming (the engine of most apps, not the visual presentation), focus on learning one language and one web framework as well as you can. Also aim to be somewhat familiar with Ruby on Rails, JavaScript, HTML and CSS, as many roles will have you working with both the front-end and back-end of an application. If you’re aiming for a front-end role, focus on JavaScript, HTML and CSS. You might also focus on a popular JavaScript MVC framework like React or AngularJS.

Be prepared to invest in your career change: You can spend a lot on the transition; books, courses, classes, and screencast subscriptions can add up to hundreds of dollars a month, and many boot camps are over $15,000. Despite the hype around programmer salaries, you can expect to make between $65k and $75k as a junior developer (depending on the city), with higher starting salaries available in startup hubs like San Francisco and New York. At first, it might seem like you’ve invested a lot in this career change without much financial reward. Over the long term though, this investment should pay off, with developer salaries steadily rising into the six figure territory as you gain experience.

Don’t worry if your journey isn’t linear: Learning to program is tough; it takes time. If you’re juggling a pre-existing career and other commitments, it may be difficult to focus on it for more than a few hours a week. You may have doubts, you may get distracted, and you may stop progressing for days, weeks, or months. Trust that if software development is truly what you want to do, you’ll find your way eventually, even if you end up taking the scenic route.

It’s hard sometimes: Self-doubt is a common trap for junior developers, especially those from groups who are underrepresented in the software industry. If something feels hard, it’s not necessarily because you’re not cut out for this. It might be because you have more to learn, or perhaps, because the thing you’re working on is actually hard. You may also be concerned when something you find challenging seems easy to someone else, especially when that someone else has a similar level of experience. But stick with that person long enough, and you’ll likely encounter something they struggle with, that you find really easy. We’re all different, we bring different pre-existing skills to the table, and we all practice differently. Programming is like any skill: you can become good at it if you persist long enough and care about getting better.

I hope you find this blog post helpful. Please feel free to leave feedback and share your experience.

Raphael Barbo