Skip to content

Contact sales

By filling out this form and clicking submit, you acknowledge our privacy policy.

How to become a software developer (with no prior experience)

Software engineer and educator Josh Cummings shares how to launch your developer career, leveraging his expertise from VMware, Workfront, and more.

Jul 29, 2024 • 10 Minute Read

Please set an alt value for this image...
  • Software Development
  • Upskilling

The most common question I get asked by non-developers about my field is “How do I get started?” It’s not surprising -- these days the space is so vast with numerous programming languages, form factors, application layers, and business domains to consider that it can be challenging to know where to start.

In this article, I’ll talk both from the perspective of how I got started and also what I look for in a candidate. By the end, I hope you will have the tools to start creating your own plan to forge ahead.

A bit about my story: How I got into software development

I got into programming when I was 13 years old, or around 30 years ago, which makes me feel ancient! There was a Computer Science class at my school, which was rare in those days. I took the class and loved every minute of it. 

I knew that programming was going to be a big part of my future, but I didn’t know how. I just knew that I couldn’t stop reading my Pascal book. I took it with me wherever I went; I even remember reading it in the back seat of my mom’s car in the McDonald’s drive-thru.

Once I was in college, I declared myself as a double major in Computer Science and Math. As far as programming languages, I primarily learned Java. I also learned a great deal of theory about computers. Once I reached my Junior year, I heard about a Java internship through a neighbor, applied, and was accepted. I worked there part-time for the last 18 months of my Bachelor's degree and then was hired full-time after that.

Early on, side projects were a good way for me to hone any skills that I wasn’t using at my day job. I didn’t make a lot of money with gigs, but I learned PHP, MySQL, HTML, JavaScript, and CSS that way as well as many wonderful lessons about working directly with customers.

How hard is it to get into software development? 

Software development is high-paid skilled labor. What that means is that it’s rare to find a job where you can start from zero and get trained there; it’s just too expensive. Because of that, you need to either have a degree or a strong portfolio. In some niche cases, certifications can help.

Once you have one of those, software development is relatively easy to get into. The software industry prides itelf in being a meritocracy. It’s not a regulated industry, nor does it have labor unions. And while that has its own downsides, what it does mean is that if you have the needed skills, that’s often all that matters.

Are there a lot of jobs in software development? Does it pay well? 

These are interesting times and every industry is a little bit volatile right now, even software. That said, there are all kinds of software jobs out there! I am nearly constantly contacted by recruiters asking me if I know anyone looking for a job. The highest-paid jobs at the time of this writing are for security, AI and large-language models, IoT, and data engineering. You can focus on these areas as you train to make it easier to find a high-paying job that you love.

However, if none of those fascinate you, not to worry! Software developers are paid well relative to the rest of the population. The US Department of Labor Statistics estimates that the median software developer salary (about $100k) is more than double the median salary of about $48k.

Do I need to have been coding since I was twelve?

Technology is changing enough that the things I was learning at 13 are completely obsolete at this point. So, no! You don’t need to be like me, having started when you were a kid. Getting hired is more about your years of experience with a given technology and the adeptness you demonstrate at picking up new ones. 

What about thirty of forty? When is too old to start a career as a developer?

You can start as a software developer at any age! Software development is so much about problem-solving that age matters much less. You will need to attain at least a bare minimum skillset. That can take as many as four years of training to get into some fields, so plan accordingly.

Also, ageism is present in the industry. As you get older, you will need to combat that. Because young 20-somethings comprise most software companies, I appear positively ancient to many of them! Depending on their personality, that can make them listen to me more or listen to me less.

What skills should a software engineer have?

A software engineer now more than ever is an individual who has technical chops as well as at least some people skills.  On the technical side, you should be able to contribute to each area of the software development lifecycle: Design, Develop, Test, and Deployment.

1. Design

You should know how to break problems down into smaller parts. For each of these parts, you will need to consider existing constraints, the best tools, the kind and volume of traffic it needs to sustain, and more.

Some sub-skills that fall into Design are evaluating open-source options, understanding UIs (user interfaces) and APIs, and performing threat modeling.

2. Develop

This is your sweet spot. You should know at least one programming language. I recommend being conversant in at least three: One front-end language, one back-end language, and one deployment language.

Some sub-skills that fall into Development are design patterns, refactoring, using an IDE, using version control (for example, git), and programming defensively.

3. Test

You should have an attitude of testing your solution mercilessly. Hone your skills and habits around unit testing, integration testing, and end-to-end testing. Learn how to consider what the experience is like for your diverse set of users and test their use cases.

Some sub-skills that fall into Test are Test-Driven Development (TDD), separation of concerns, fuzzing, offensive security, and chaos engineering.

4. Deployment

You should be familiar with how the code that you write gets shipped to your users. For example, at one company code is compiled into a set of binaries and then uploaded to a cloud provider like AWS. Or, at another company, code gets cross-compiled to several architectures and then is flashed onto ROM chips.

Some sub-skills that fall into Deployment are Continuous Integration (CI/CD), automation, networking, and infrastructure as code.

While it’s a long list, don’t get overwhelmed! You don’t need to know all these things to land your first job. Focus on development and work your way outward.

How can I get a job as a software developer right out of college?

There are a few different paths to getting a job right away.  The first path is the most accessible, and that is an internship. Many colleges these days have partnerships with businesses that offer internships to dozens of students each year. Other companies post online the internships that they have available.

The second path is to start putting yourself out there for gig work. This path can have a steep learning curve and be high-stress at times. The advantage is that you can start getting paid right away at a wage you determine.

The third is to build your network. Post online about what you are building and what interests you. Talk to your friends and make connections. Attend job fairs. Search job listings on the web and apply to them. Schedule lots of job interviews; they are good practice and an opportunity to further widen who you know.

Is it easy to get a remote software development job?

In my career, I have worked remotely for nine of the last thirteen years across two jobs. I was hired at both of those jobs because of a specific skill I had that the company wanted very much. But now, there is remote work everywhere. COVID showed many managers that software developers are more productive in their home office than at work. Also, as companies continue to grow, they need to expand their reach to find untapped sources of software developers.

While it’s easier to find remote work today, I would recommend two things to increase your likelihood of finding one. First, have plenty of experience under your belt; simply put, I wouldn’t hire a remote worker right out of college. Second, consider where you live. If you live in a tech hub, you are more likely to have folks from all over reaching out to developers in your area.

Do I need a Bachelor’s degree to become a software developer?

While you don’t need a Bachelor’s degree, I strongly recommend it. Having the fundamentals under your belt will make you a better programmer, and the senior devs interviewing you know this. That said, you can also develop a strong portfolio. Software engineering, above any other industry I know, functions as a meritocracy. If you can demonstrate your ability to do the work, a degree is less important.

What certifications or qualifications can I get to become a software developer?

To be honest, the certification route is somewhat niche for becoming a software developer. Because software is unregulated, you don’t need a stamp of approval from any organization to allow you to work. That said, there are security certifications through SANS, networking certifications through A+, and a growing number of certifications for other specializations.

I recommend every developer continue to “sharpen the saw” and for many, the structure of these certifications or classes is just what they need to make material progress. I personally attained certifications earlier in my career to help me move in the direction of application security.

What should I highlight in my resume or during interviews?

What I primarily like to see on a resume or during an interview is an interest in the specific job. If they have researched the company, that’s a plus. If they know a bit about our technology stack, even better. To a degree, if you are interested in me, I’m interested in you.

I also like to understand what the person has done at past jobs that demonstrate problem-solving, leadership, living with one’s own mistakes, and working with others. While a candidate doesn’t need all of these, the more they have, the better.

Finally, I like to see that they have highlighted what parts of their skillset they feel align with the company’s mission, values, and technical stack. 

For example, tell me that you have been coding in Java for three years. Also, tell me what fascinates you about cryptography, security, hacking, bounty programs, CVEs, or something in the space. The first one tells me what your skill level would be coming in; the second one tells me why you are applying.

Conclusion

The world of software is waiting for you! We continue to operate in a surplus market for software developers, meaning that there are more jobs than candidates in many cases. We need your creativity, your passion, and your cleverness, regardless of your age or previous background.

Strongly consider formal education. Short of that, certifications and gig work can help you get a jump start. Develop skills in Design, Development, Testing, and Deployment. There is enough software out there that you can find a company whose mission you are passionate about. Tell them! Focus on where you feel you can contribute to that mission.

I hope I get a chance to work with you soon.


Additional learning resources

Want to learn how to program? Check out Pluralsight's "What is Programming?" video course by Simon Allardice, which teaches you the language-agnostic fundamentals of programming. You can access it and many other courses by signing up for a free 10-day trial. Note that the "What is Programming?" course is only three hours, so that's plenty of time to check out it and many other learning materials.

Additionally, you might find the following articles on this blog worth reading to help with your career journey:

Interested in contributing to the Pluralsight community?

If you’ve got an article you want to write, we want to hear from you! Visit our community contribution page and register your interest.

Josh Cummings

Josh C.

Like many software craftsmen, Josh eats, sleeps, and dreams in code. He codes for fun, and his kids code for fun! Right now, Josh works as a full-time committer on Spring Security and loves every minute. Application Security holds a special place in his heart, a place diametrically opposed to and cosmically distant from his unending hatred for checked exceptions.

More about this author