If all you want is to be called a "Software Engineer", then a fairly established route is to get a degree in something like Computer Science, Computer Engineer, or Information Technology,... and go apply for a job that will give you the title of "Software Engineer". Those are the more directly applicable majors but they are also not the only majors that can lead you into a career as a Software Engineer. Some of the most intelligent Software Engineers I've worked with were once Electrical Engineers, Mathematicians, Statisticians, and Physicists. College is also not the ONLY point of entry to the career (as G. Mark pointed out in his earlier answer) but having that degree will certainly check a box for a lot of resume reviewers.
However, you may still end up doing something within the field that you genuinely don't find interesting.
Before picking a major, I think the first steps are to further explore the world of software development to find out what you'd be interested in DOING as a "Software Engineer". You can do this by picking a project and seeing how far you get. It's OK if you never finish or discover that you don't necessarily enjoy that particular project. Just pick another and move on till you find something that you do like.
"Tinkering" is a common pass-time for many software engineers. It's how we stay up to date with the changes in technology over time. We also enjoy the "process" of discovering new tools (even if we don't have the time to master them in the moment). There's a feeling of "empowerment" when you find a new tool or technique that allows you to solve a problem better than you've solved it before.
From your Tinkering Adventures you'll learn what you like/dislike to do with computers. Maybe you'll find that you really enjoy programming in a particular language. Maybe you like programming hardware. Maybe you're more into graphics and user interfaces. Maybe you enjoy programming that's heavily involved with calculations and large amounts of data. Being able to define what kinds of projects you enjoy working on will help you to better determine how you want to go about entering your career.
If you pick the college route then you'll end up doing lots of projects for school that will help too. Whether you choose a traditional path or a self-taught path, I'd suggest you ask yourself what you'd like to DO with your career rather than stick to just pursuing a title.
David recommends the following next steps:
Okay -- first off, a "software engineer" is simply someone who engineers software. That doesn't mean the person has a degree or an impressive job. People are simply engineers because humans just solve problems. So, now that that's out of the way, let's say you meant a "software engineer" in the most popular common parlance. IOW, what a lot of people think when you say "software engineer". Basic -- you need to know how software works and usually how to program a computer. Or at least use a computer. Most folks aiming for this will take at least an associate degree in computer technology or science. So you need to get familiar with using computers in any particular environment you prefer. Usually, that will entail learning how to perform those functions in some popular environment, language, operating system, etc.. High success potential is in those that you see in a lot of job listings. You'll notice that I'm not being very narrow or "concrete". This is because I personally believe that a lot of "software engineers" may not be college graduates, may not be versed in the most popular languages or operating systems. They may not be experts in discrete mathematics or computational algorithms, and yet, they still contribute to a software engineering project. So look for various paths of education and use your own judgement as to whether you want to focus on something that floats YOUR boat, as it were, or something more "mainstream" -- i. e., what you see most frequently in job listings. So the bottom line is that what it takes is an interest in being a software engineer. Solving problem with software. Period.
There are a lot of different paths people take to become a software engineer, from obtaining a formal Computer Science degree to a learn-on-your own approach, with a lot of things in between. What is required often depends on the industry you want to work in, and the types of problems you are interested in solving. Learn one language really well rather than several languages superficially. Learn how to learn. To get a job, most employers will want to see how you've applied the software engineering skills you have to real-world problems. That might be in another job, through volunteer work, or school or personal projects.
Some skills that are critical in every role:
- a learning mind-set
- ability to work well with others, and be open minded
- problem-solving and
- communication skills
There are so many paths you can take these days to becoming a software. This career requires skills in programming, communication, and leadership but there is no strict requirement on education. I actually didn’t finish my college degree and acquired most of the skills that got me to where I am studying on my own using online learning platforms. Some colleges and universities have traditional Computer Science programs through a 4 year degree. There are also code schools and coding boot camps where you can have a very intense training in programming and have job-ready skills in anywhere from a few weeks to a few months. There are also a lot of online learning resources where you can learn programming skills and how to make websites. I really like www.freecodecamp.com because it’s completely free and very approachable for people new to programming and a resource I’ve used myself.
Software engineering is a highly rewarding career! Technology is changing the world and a career in engineering will allow you to solve hard problems with great people in a fun and creative environment. I believe that anyone who enjoys building things or solving problems has the makings for a great software engineer. The best major for engineering is "computer science" - it is a challenging degree but will best set you up for your first job. To see if it's something you enjoy take an online class from Coursera -- I recommend a class that teaches you to build something you can show your friends like a mobile application.
Alex recommends the following next steps:
There are multiple ways to become software engineer. You can do college with computer major or you can do online online programming classes with any other major in college. You can do some hands-on by doing software projects or building mobile apps.
Kirtee recommends the following next steps: