According to various sources, it is well known that one of the fastest growing professions in the nation is a Software Developer/Engineer. The nationwide median for this progression is an annual $69K – $80K in 2019, compared to the estimated national median for all professions at $46.8K. This profession is thought to be highly desirable not only due to the monetary aspect, but also because:
- The ease of finding similar job offerings
- Health Benefits
- Work schedule flexibility (even remote work days)
- Promotion potential
- Degree of worker satisfaction
- Casual dress code
Obviously, entering this profession won’t resolve all of life’s problems. Some common complaints of this profession may include:
- Long work hours for some projects
- Fast pace
- Lack of diversity
With that in mind, I would like to discuss a various approaches on how to enter the industry as a Software Developer.
1 – Go to college/university
This is a common approach for the many people who are young and fresh out of high school. Modern universities and colleges have various courses which are geared to prepare graduates with skills for entering the Software profession. For a more universally timeless approach it makes sense to choose Computer Science as a major. For the business savvy, or those more contextual minded, Information Technology is another option. Assuming you graduate, going to school practically guarantees you an entry level Software Developer job when you begin job searching — even better if you have a portfolio.
The obvious downside to going to college/university is the cost & time that you will have spent. It’s not rare to graduate with some debt from loans. It is also not uncommon to hear how unpractical the knowledge gained was upon entering the real world. For this reason, if you decide to go to school for 4 years, I’d advice taking per-requisite courses in a community/technical college before transferring your last 2 years to take the more focused major-relevant courses. With this, you save more money on tuition costs and have more wiggle room, if you decide to switch majors.
2 – Enroll in coding Boot-camp
This is a middle ground alternative I’d recommend for those with a specific idea on which area of expertise they would like to focus and/or, those who want to switch their current career to something in Tech but need a structured regimen to do so. In 2019, this is a popular approach considering the ocean of material one can find online for any development stack. Switchup.org has a really nice list of some coding boot-camps out there (i.e. App Academy, Flatiron School, Coding Dojo, etc).
Most of all these schools have a guaranteed job-placement post completion and some even defer tuition until you are hired. Some downsides of taking this approach is the cost (~$9K – ~20K), focus on specific stack technologies, and the intensiveness — it’s called boot-camp for a reason. Overall it seems like a reasonable investment if you have the time to put in.
3 – Save enough money, quit your current position, and put aside a few months to build your portfolio
Made possible due to the plethora of information online today but a very arguable approach due to the risk level. But where there are risks, there are rewards, and this is worth mentioning. If you understand what a Software Developer position requires (certain skill-set around a stack (Front-end, Back-end, Devops, etc), ability to answer common interview questions (algorithm,s live coding, what would you do), good communication, and possession of a curious and/or team-player state of mind), working up to your first job will be a matter of setting your goal, defining tasks, and spending the time to become well-versed in each of the key areas.
Taking this route will require lots of discipline and also access to the materials that will get you technically proficient. For example, if you would like to get a formal understanding of computer science concepts, you can enroll in an open university like Open or Edx, among many others.
Or maybe you need to understand the big picture but also have access to video walkthroughs of how to use a technology. That’s were sites like Pluralsight, Udemy, or Egghead come in. Reading official documentation is always the first recommendation though 😉
Once you have gained an understanding around how to use and develop, you should build your portfolio by working on a project, even better with if it’s on a team. You should at least have a github presences.
At this stage I would highly recommending learning a cloud platforms such as AWS, Azure, or GCP, if you have not. Many companies, large and start-up are utilizing the cloud so it is good to play with and understand key services (storage, instance provisioning, architecture as code, lambda, etc). Getting AWS developer certified, for instance, will cost $150 but will help show prospective companies you understand the fundamentals.
Once you have all this under your belt, now is a good time to start taking practice interviews and hunting! Update your Linked profile, and head out to the job boards. At this point it will take time, but be patient and consistent in applying at the jobs that you are passionate about and highly desire. Be confident in your abilities because learning this much to switch careers means you are proactive and disciplined and highly adaptable, all common traits needed to become a successful Software Developer/Engineer.
Best of luck!