Since you're living in Texas, to become a Software engineer in USA starts with at least a bachelor degree in computer science. There are plenty of universities that offer that degree so you will have to search. Of course, you can opt for higher degree like master degree or PhD but really, bachelor degree is the entry grade.
Then, you need to practice. Your college/university will teach you some basics, give you some projects but really software engineering is about practicing a lot. Find internships during your college/university years to learn different aspects, implement personal projects ... whatever makes you practice.
So you need to find out which one you prefer, then you can choose corresponding courses (including theoretical knowledge and programmer languages--Java, Python, C++, etc) to learn from internet to see if you like it. Then you can consider to obtain Bachelor of Computer Science from a college.
1. Do you have a real interest towards coding from computer science point of view ? If yes, do you like to code at systems level (Operating systems, device drivers etc) or userspace (Applications) ?
2. How do you rate yourself in developing an algorithm for a given problem ? Say for example, take a problem statement from your academics computer science subject (Hoping you're a computer science related student). Think about different ways of solving the problem by coming up with multiple algorithms for the same. What are the difficulties you phase when you do this exercise ?
3. Do you have a liking of testing a code which is written by others (say an open source project already available) ?
The reasons why I've listed few questions is, it's important for you to know your skills before you choose a path in your career. When you answer Q#1, you can choose several courses available online (via coursera/Udemy etc) depending upon your programming language interest areas.
Also joining some of the linux open source projects will help you go in the software development direction. To begin with you may just try to contribute to documentations for a given project, raising bugs when you test it followed by addressing the bugs/feature additions etc. You may get several useful links in the internet to get started with opensource.
There are several routes to becoming a software developer nowadays.
Traditional 4 year computer science/electrical engineering or related degrees is one way to get your foot in the door and was previously the standard requirement. Several companies have begun to drop that requirement though. This is the route I went and it provided me a solid foundation in not only programming, software development, computer architecture and other areas, but also provided me with the tools of continuous learning and some soft skills.
Programming boot camps can get you versed in a specific language quickly. Typically boot camps run for several weeks to several months and focus on a specific set of skills. Because of the speed of a boot camp, you can miss out on some of the foundational knowledge, but it is a great way to rapidly expand your skillset.
Work on projects (open source or personal). Employers and interviewers like when they can see your code before the interview. If you have an open source account with some projects or a personal website showcasing your work, that shows dedication to the craft, shows you can code and shows you can complete projects.
There are more routes than listed here, it's amazing the journey people go on through their career.
If you can write code today, try out some simpler projects and see how you like it. Make a tic-tac-toe AI that's impossible to beat. Make a Sudoku solver. If you do not know how to write code, there are plenty of resources online to get you started. Find the topics that interest you and go for it!
if you want to keep on working in a scientific domain, a degree which mixes science (biology, etc...) with computer science can also be an option.
Step #1: Be Clear About Your End Goal
You should have a clear goal like:
I want to build my career as a software engineer
I want to work as a software engineer at an established IT company.
I want to work as a team member and get paid well for it.
Step #2: Select A Language to Learn
you should know at least a couple of languages, and a deep understanding of how they will function. Below are given the list of some popular programming languages:
Step #3: Earn A Degree in Computer Science or A Related Field
You should first earn a degree in computer science or a related field. You should have at least a bachelor's degree to begin your career as a software engineer.
Majoring in computer science will offer you the most useful background for designing software. Interviewers will ask questions regarding data structures and algorithms. Therefore, the theoretical knowledge provided by traditional computer science degrees best prepares you for this.
Step #4: Supplement your studies
All the education institutes provide theoretical concepts and ways of thinking that can be important for your success.Although, how much you will get paid is being able to apply the knowledge of the real-world software. This is where your study helps you.
Here are some ways to supplement your learning:
StackOverflow is the most reliable question and answer website for developers. You can search according to the technology, problem space, or language you want to improve in.
Sites like CodinGame and CodeWars offer thousands of programming solutions which help you to test your skills.
Step #5: Read Code Written by Experienced Developers
Another useful aspect of becoming a software engineer is learning how to read other people's code. You can do this easily by visiting sites like GitHub repositories and looking through documentation.
However, sometimes documentation also goes wrong, but most of the source code accurate in these sites. Therefore, by learning to read that code, you'll be able to understand how a specific program is working.
Step #6: Find A Community of Software Engineers
You need to find a community to learn which guide you to success as a software engineer. Therefore, when you are surrounded by a community of like-minded people, you have an automatic support system. A real-world software engineering community gives you guidance on where to focus your learning. Sites like Meetup is an ideal choice to find other professionals.
Step #7: Build Projects
Nothing like practical experience. You need to start building projects on a language you are comfortable with. By doing this, you not only enhance your learning but also found a potential employer. As you learn how to code, build projects, etc., you should slowly help you to build up your professional network.
Step #8: Master Your Pre-Interview Skills
Next, you need to focus on your resume as it plays a vital part for your hiring. You'll need to master three things: resume, cover letter, and your online presence.
Hiring HR managers still look at them to get a snapshot of your skills and experience. Moreover, cover letters are needed when applying for jobs online; they're your opportunity to get someone's attention and make an impression.
Step #9: Ace Your Job Interview
Finally, the time is come to face the interview. Most of IT companies start with a screening interview, usually done on the internet, at home. After that, you need to face a phone interview. If you successfully clear both interviews, you'll land the on-site interview.
Step 10: Accept the Job Offer
After you successfully clear round of interviews and demonstrate your new skills, you will likely to get a job offer. Select the best which helps you to enhance your career.