How to Get a Job As a Software Engineer
With advances in technology, internet, and cloud, the time has never been better to enter the software engineering field - here's how to do it
With advances in technology, internet speeds, and cloud computing, the time has never been better to enter the software engineering field. The breadth and depth of the field continue to expand. Let's take a look at what it takes nowadays to get a job as a software engineer.
What Does a Software Engineer Do?
Software Engineer Role
As a software engineer, you are responsible for creating and maintaining software programs. This role involves all stages of the software development lifecycle, from the design and development of the software to the implementation and ongoing support of the software.
You may be working alone, but usually, you are a member of a team comprised of software engineers and other roles critical to successful software delivery. Sometimes you decide what programming language, database, and overall architecture are used to create the software solution. Other times, the overall architecture is already in place.
Your Creativity Fuels It All
Regardless, as the software engineer, you are the person writing the actual code that makes the interface appear or stores data in a database. You write the processing that efficiently handles millions of events being sent to your application from across the world over the internet. You have a lot of creative freedom in designing your software solutions!
Software Engineer Technology
Your creativity is part of what is driving technology and the software industry forward so quickly! Advancements are moving at breakneck speeds in major software engineering areas including:
- game development
- mobile apps
- web development
- custom tools/frameworks
- artificial intelligence & machine learning
Those software development areas continue to grow and challenge programmers at every level. This means an opportunity for entry-level developers as well as seasoned veterans.
How Do I Get The Software Engineer Education I Need?
In general, software engineering professionals choose between the following paths:
- training boot camps
- computer science colleges
- self-directed learning
Your choice depends on your learning style, schedule, and budget. Depending on the path you choose there are several advantages and disadvantages, and you should review each path thoroughly to fully understand it.
Training bootcamps can be quick and less expensive than other options. However, they can also be too focused on specific languages or technologies, limiting your job opportunities.
If you are considering a training bootcamp, I recommend trying to talk with someone who has gone through it. What did they learn? What languages and technology did they focus on? What actual software projects did they code? Did they work individually or as a team? And did the bootcamp include any opportunities to talk with potential hiring organizations?
Computer Science Colleges
Computer science colleges can build a solid foundation in computer science theory and help teach you fundamentals that will apply throughout your software engineer career. However, they can also be expensive and can last anywhere from 18 months to 4 years or more.
These colleges vary greatly so I highly recommend understanding what you get for your money. It doesn't matter if it's an 18-month program, 2-year program, or 4-year program necessarily. What does matter is:
- seeing the full curriculum that will be taught for that cost/time invested
- knowing what hands-on coding projects will be conducted
- understanding what career placement will be available
I went to a 4-year college and thoroughly enjoyed my time there. I feel like I built a solid foundation in computer science theory that has helped me learn over a dozen languages more quickly and be more effective at higher-level architecture than I otherwise would have been without further specific training.
But I also know numerous people who went to 18-month or 2-year programs and are just as successful for the same reasons. It's all about having goals, then understanding what you're getting in your college choice that helps you attain those goals.
Self-directed learning is a great way to get started very quickly and to focus specifically on the skill or area you are most interested in like game design or native mobile apps. However, self-directed learning can also make it hard to build a solid skill and experience foundation that makes you more hirable as an entry-level programmer.
Let me make this clear- some of the best programmers I know were self-taught. There is absolutely nothing wrong with this approach and it is doable. You just need to be sure you consider the full impact of the self-directed approach. For example, you may be the latest wiz-kid who can learn language syntax in a few days and throw up the next huge mobile app in a week. But a lot of things must align for that to happen. In a self-directed approach, be sure to consider:
- your goals - you still need goals no matter the skill path you choose to get there
- your source of learning - you can't trust that everything on the net is the right approach
- YDKWYDK - you don't know what you don't know - what aren't you even thinking of?
So if your life situation warrants the self-directed approach then go for it. Just make sure you don't get so much in a bubble that you forget where you're trying to go and that you don't get the help (often free help) from people who have been there already which could save you time and money.
How Long Does It Take To Become a Software Engineer?
As stated earlier, the time it takes to get adequate training for software engineering can vary based on the training path you choose: bootcamps, colleges, or self-directed. This can take anywhere from 18 months to 4 years or more. It depends on the programming skills you are starting with, your career goals, and the training it will take to get you there.
The Software Engineer Trip Versus The Destination
Remember, you can "become a software engineer" by going to a bootcamp and learning a specific skill set for a specific job. For example, you might learn HTML, CSS, and the LAMP stack (Linux, Apache, MySQL, Perl/Python/PHP) and become a software engineer in 18 months. But you will continue to grow and expand as a software engineer for years to come.
As your career advances, you will learn new things. Your life situation will change. You may decide you really enjoy Python more than you thought but HTML and CSS not so much. So you beef up your Python skills and move into a new software developer role writing serverless Lambda functions in AWS using Python. No more web interface at all.
Then your family situation changes and you want to look for a bigger, more stable company to work for. So you parlay those Python skills over to a DevOps role at another company doing both software development and DevOps work.
Enjoy The Ride
My point is that you shouldn't get too caught up in how long it will take to become a software engineer. Start small, set goals, and build the necessary skills to get there, and it will probably happen faster than you think and change to a new role faster than you think too.
I also recommend you continually review and revise your career goals to ensure you are still on the path you desire. Things change, and you change, and that's normal and even healthy. Keep your goals updated to keep moving forward with confidence.
How Does The Software Engineer Job Market Look?
I cover software engineer salaries and career statistics in this article. Most of this data is based on 2021 data from the Bureau of Labor and Statistics. Some highlights are as follows:
Number of Software Engineers (US)
There are currently over 4.3 MILLION software engineers in the United States alone. And remember that every year developers enter the workforce, advance their careers into new roles, retire, or leave the workforce.
The number of software engineers in the workforce sounds large, but the demand for them is even larger and continuing to grow.
Companies Hiring Software Engineers (US)
Companies of all sizes are hiring software developers. Here are some general numbers on those hiring company sizes:
- 46% of the total has over 10,000 employees
- 80% of the total has at least 1,000 employees
- but companies of all sizes (even start-ups) are hiring developers!
Industries Hiring Software Engineers (US)
Companies across all major industries are hiring developers. Here's a list of the major industries:
- Technology (37%)
- Fortune 500 (21%)
- Telecom (5%), Media (5%), Professional Services (5%)
- Finance (4%)
- Start-ups (3%)
- Manufacturing (2%)
COVID-19 Has Changed Software Engineer Career Opportunities
With the onslaught of COVID in 2019, a major shift to hybrid and remote work opportunities spread worldwide. This was a natural and easy transition for the software development field.
Many in the field had already embraced agile practices, cloud-based collaboration, and cloud-based version control and continuous integration/deployment tools. Now, many organizations are offering hybrid or even remote work as a way to entice software engineers they could not otherwise attract due to location or other factors.
How Much Does a Software Engineer Make?
As I lay out in this article, the software engineer's salary range is very healthy as well. When I first graduated from college with my Information Systems degree (well, I was also trying to finish up a dual major in Anthropology) many years ago, my starting salary was around $31,000 per year.
Oh my, have times changed! Here are the 2021 numbers according to the Bureau of Labor & Statistics (for the US):
- software engineers make, on average, about $100,000 per year
- the bottom 10% of that bell curve average is about $73,000 per year
- the top 10% of that bell curve average is about $136,000 per year
So, since that bottom 10% likely includes mostly entry-level programmers, that's a good representation of entry-level software engineer salaries.
I don't have all the details on exactly how they classify a software engineer, but I still think that the lower 10% of the bell curve is a good indicator of the general starting salary for a software developer in the US.
How Do I Apply For Software Engineer Jobs?
Once you complete appropriate training and preparation you can begin applying to positions!
Your Approach Will Vary By Training Path
Oftentimes, the training path you chose also provides some level of career placement. This will vary greatly across career paths and even within a given career path.
For example, a training bootcamp may only offer a general job board you can participate in since bootcamps can be low-cost or even volunteer in nature.
Colleges often include career placement centers. Companies may even come to the college to take a look at upcoming graduating classes.
With the self-directed learning path, you're usually on your own and have no career placement assistance unless you hire someone to help you.
You're A Software Engineer - Have A Plan!
Start by identifying your career goals. Then select a job you want that fits your training and experience and also fits your career goals. You want to have your goals in mind during the application and interview process so that you can properly consider each opportunity against your goals.
Otherwise, you may suffer what I call shiny-object syndrome. You continuously gravitate towards whatever the latest shiny object is (language, technology, start-up company, etc) rather than moving forward with confidence based on a goal-driven plan.
Wrap-Up: You Can Get a Job As a Software Engineer
The software engineer job market is in high demand and continues to expand. The breadth and depth of technology and skill needs mean there are many options for you to choose from. You just need to set some goals. You need to choose a skill-building path that fits your needs. And you need to be prudent in picking the job opportunities that best fit your skills and goals.
So what are you waiting for? Get out there and become a software engineer!