Hi Everyone, my name is Bob and I’ve earned more than $1 million over the past 4 years writing code for a living. I’m not some kind of super star developer either. I’m just a solid, dependable software developer who managed to get into a FAANG. Oh and my coworkers? They’re making millions too! The truth is, software developers in every city and state in the country are getting rich, it really is a “gold rush” of sorts!

Who wouldn’t want a peice of that pie? Salaries at top tier companies are real, near Doctor and Lawyer level pay is common at these companies. Consequently developers all over the country are paid very, very well, take for example St. Louis, Mo. Silicon Valley salaries are pushing the rest of the country to increase pay to keep up. It truly is a great time to be in a developer!

It’s hard to overstate how dramatic a six figure salary can be. Going from credit card debt and debt collectors, to being debt free, able to afford a home in a nice neighborhood, cars, and one spouse staying home with kids is a dream come true for many families. If you’ve ever wondered how people do get into software development, you’re in right place. I started this blog to share the tricks and secrets I’ve learned about software development careers. In this post I will talk about the characteristics that help individuals succeed in this field and the four main paths to enter software development.

Characteristics That Will Help You Succeed

A lot of people are shocked to learn that a Computer Science degree isn’t required for a software development career. Certain traits contribute a great deal to success in the field. I truly believe the number one quality a person must have to be a working software developer is a love of puzzles and figuring things out. Have you ever taken apart some machine or appliance to see how it works? Do you like playing games where you can build things or solve puzzles? Do you sometimes find yourself spending hours on the internet reading and watching videos, learning everything about a subject that caught your interest? This is the type of curiousity that pays huge dividends for developers.

Another important quaility is perseverance. Writing software can be incredibly frustrating, so frustrating a lot of people give up. If you’re the type who can keep coming back to try again, the type to keep giving something difficult one more try, software development could be for you.

One aspect of software development that suprises a lot of people is how much learning is required, often self directed. In fact, people often say this career is about lifelong learning. Generally, developers must be constantly learning as new technologies come and go. But what they don’t say is that focusing on the basics and mastering the fundamentals pays huge dividends, if you can do this you can see the commonality new tech has with what came before. This makes learning new things trivial!

Paths To A Software Development Career

There’s a secret no one really talks about. The secret is Computer Science (CS) as taught in Colleges and Universities does not prepare students to actually work in the field. CS education is generally a lot of theory, bit’s of a programming language or two, and very little else. In effect, this hugely levels the playing field for job seekers. Anyone can learn some coding. It turns out that and a bit of theory can take you very, very far in this field. Everyone has to know the the mechanics and day to day activities of software development, and these basics aren’t taught in school. It’s a truly bizarre situation.

1. Bachelors Degree in Computer Science

It goes without saying that the fast path to a high paying software development career is to graduate with a Bachelors degree in Computer Science. What’s not so widely known is that top tier companies recruit heavily from top CS Universities. For example Google famously recruits heavily from Stanford. Anyone who wants to pursue this path would start early in life. Few of us are that clear in our career choices in highschool! Don’t abandon hope though, these companies and many more hire aggresively from all backgrounds. People with CS degrees from lower tier universities, career switchers with non CS degrees, and boot camp grads all have success entering this field!

The main advantage CS grads have in the job hunt is exposure to Data Structures and Algorithms (DS+A). It’s become common for software development interviews to contain a significant coding portion in which candidates will be asked to implement various algorithms. Some of these can be extremely challenging. It’s become so important that everyone, even experienced developers, are now required to study for this part of the interview.

2. Career Switch with a Non CS Degree

As we’ve seen, the the CS majors learn a little coding and some theory, but usually not much else. The result is they’re better prepared for the DS+A interview questions, but still require a fair bit of “on the job training” to become productive. That brings us to another secret. It’s totally realistic to hold a degree in another field and make the switch into a software development career! A motivated person with the right guidance can learn enough theory, coding, and practical skills to be at the same level as a new CS grad. Some options are online courses, boot camps, and interview prep sites like hackerrank.com.

Career switchers have a big advantage over CS graduates, and that is experience working in a professional environment. Anyone looking to tranisition into software development should look for oppurtunities in their current role to automate repetitive processes and create utilities useful in their own work. This is a fantastic way to gain experience over and above the experience CS students typically get.

3. Attend a Coding Boot Camp

If someone has a degree or not, attending a coding boot camp is a completely viable option many pursue. Some find the emmersive experience highly beneficial. Generally the most successful boot camp graduates are highly motivated and very effective at studying the coure material and via other means like onlince courses mentioned before. This is the path I took. I had a non CS degree, I self studied, and attended a boot camp.

A big part of the boot camp experience is implementing projects and building a portfolio of work potential employers can view. A project portfolio can really help a lot when going for that first job. So important that even many experienced developers now have “github projects” to show off their work.

4. Self Study and Practice

I don’t see people on this path as much nowadays. These people are the ones who simply have an interest in programming and software development. A lot of times these people will get started on their own and gain experience freelancing or volunteering their time. Maybe they keep freelancing, consulting, or tranisition into full time employment and a company or start up. I’ve worked with a few people who’ve gone this route over the years, and they’re some of the most talented developers I’ve known.

Conclusion

As we’ve seen, there are many paths into a career in software development. Due to the odd structure of Computer Science edcuation, entry into the career is also within reach of non CS graduates. That can’t be said for either Law or Medicine, even with similarly high salaries. Software development can be rewarding career, not just financially!