Get your First Software Development Job
When you are first learning to write code, there are so many things to learn that it can sometimes seem overwhelming. It can also appear unclear that you will ever know enough to become a professional and make writing software a career. In other industries, there is often a set path to follow, whether it be taking specific courses, receiving the right certifications, or joining a formal professional society that will accredit you. The software industry is unique in that you often feel like you have to figure out everything for yourself; there is no official standard for what makes a professional developer. While that can seem a bit bewildering, it's also very empowering because it means with the right plan and a little effort, you can become a software developer. So what do you need to do to get your first software job and be successful?
The Right Knowledge
The first thing to note about getting a job in software is that it is a widespread practice in the industry to value knowledge and experience above all else. It is not necessary to have a CS degree or to complete a Bootcamp to get a job. Yes, those things can help you learn and guide you down the right path, but they are not required. Some companies and roles value them more highly, and later we will talk about the different hiring practices companies have, but for now, know you can for sure get a job without them if you learn the right things. Expect to be tested on your knowledge of this material in the interview process. A technical interview usually involves some demonstration of your abilities via code challenges, and question and answer sessions. The types of things you can expect to see during an interview will vary widely depending on the company.
Algorithmic Problem Solving
A popular way to test that a candidate knows how to program is to ask them to solve a few coding challenges, which often happens on the phone during a technical screening and again during the in-person interview. Not every company does this, but it is likely enough that you should spend some time practicing it, especially when interviewing for your first job. There are a lot of great resources for practicing this part of the process. Cracking the Coding Interview by Gayle Laakmann McDowell is a very comprehensive and often recommended one.
Knowledge of a Programming Language
You will need to have some level of comfort with at least one programming language. Most companies will let you choose whichever programming language you are most productive with for your interview. They want to test your programming skills, not trip you up with syntax you do not know. There are some exceptions to this. Certain types of jobs may prefer you have some experience with the language most commonly used for the kind of development you will be doing. For example, you might spend more time learning javascript if you want to be a front end web developer or choose a back end language, or a mobile language like Swift or Kotlin for other types of roles. Most importantly, though, remember there are lots of jobs out there, and you can pick one that will let you interview in a language where you feel comfortable.
Experiential Knowledge
If this is your first job, you probably won't have a ton of experience, but there are a few things you can do to shine here. If you have a programming side project, you can talk about tradeoffs and choices you made while building it to demonstrate your thinking process and that you make good technology choices. Contributing to an Open Source project is another excellent way to stand out and prove you can work on a large codebase collaboratively with a team.
How to learn
So it's easy to say that all you need to do is learn enough in these three categories and you can get a job. The hard part is, of course, learning the right things. Which type of programming problems should you study, how much detail do you need to know about your programming language of choice, and what experiences should you cultivate? Luckily there are a ton of great free resources out there that offer a guided path to covering all of these topics. One great one is https://www.freecodecamp.org/ FreeCodeCamp provides a free and fully fleshed out curriculum. If you complete all of the material there, I guarantee you can get a job. If you are the type of person who benefits from more structure and guidance, paid code camps are also useful, and they can certainly be worth the money if you think one is a good fit for you. Just remember that having the graduation certificate is not the thing that will get you a job, you need to put in the effort to understand the material and learn how to communicate your knowledge during an interview.
Don't give up
The most important thing to remember is that there are thousands of companies hiring developers. Each one has a different process and is looking for different types of people, with different levels of skill. Some also do put more stock in degrees and credentials, even though it is now pretty rare. So if you don't succeed in your first interview attempt, don't get too worried. There is most likely a company out there that will hire you. The best way of all to improve your software development skills is to work with other people every day and get paid for doing it. So keep at it, and once you get in the door, the real learning can begin, and you will be on your way to building a new career.