Earn a degree in computer science or a related field. Most software engineer positions require a bachelor’s degree. Majoring in computer science will provide the most useful background for designing and perfecting software. Most often, interviewers will ask questions focusing on data structures and algorithms, so the theoretical background provided by traditional computer science degrees best prepares you for this. However, you will likely need to spend considerable time outside of the classroom writing software to learn how the theoretical concepts you’re taught can apply in the practice of writing real software.
It is possible to get hired with an associate’s degree or even with nothing but self-taught experience. Pursuing this route, you should have a strong collection of completed and functional projects demonstrating your skills on a website like Github. You can also pursue open source projects to contribute fixes and new features to in case you don’t have a concept of your own. Open source means that the code (source) for a piece of software is publicly viewable (open). Often, this allows anyone to submit code to a project, pending approval of the project maintainers. Finding an open source project with a welcoming community of developers can greatly accelerate your skills after you’ve established a baseline skillset.