4 answers
4 answers
Updated
Derin’s Answer
Hey Jeffrey, as others have said there are a lot of specializations within software engineering so you just have to try them until you find something you love. I always tell everyone to get started with web development at freecodecamp as it is a free resource and teaches you a lot of the basic fundamentals you need to get started as a software engineer. They also have a youtube channel that produces good quality videos that teach from basic HTML (frontend) to SQL (backend). Other resources you can use include Codecademy, Udacity, Udemy, and Pluralsight.
Sign up for https://www.freecodecamp.org/
Derin recommends the following next steps:
Updated
Jenelle’s Answer
As others have answered, what resources you use will depend on what area you want to focus on or start with. Spending time writing code and building projects is the most important thing you can do to be successful. You'll also want to spend time learning and practicing data structures and algorithms; they will improve the code you write but are also a fundamental part of most software engineering interviews. There are many practice problems on websites like https://leetcode.com/ and many resources and walkthroughs on YouTube. You can also try problems from the popular book Cracking the Coding Interview.
Updated
Alexandra’s Answer
Choosing a language that you are interested in learning. If you do not know what you are interested in, then start with something simple such as python. if you want a challenge, or gaming like mentioned above, start with C. If you are interested in cloud and open source, then golang...I am biased lol If you want to deal with Web UI, then javascript and html and css. Once you pick one, stick with it and learn the fundamentals. Meaning identify a really nice book that gives you great E2E information about the language but pay attention to the concepts. As once you learn one it will be much simple to pick up a second language. In addition, you can find almost any book in pdf format online free if you look a little hard. If you don't have the funds utilize free resources as they are out there. In addition, check out 100daysofcode as a method to keep yourself accountable. Get a buddy that is also interested in it and work together on a project to accomplish something that you are passionate about or a problem you would like to solve and then go for it.
Updated
Zach’s Answer
Keep in mind that there are a bunch of different things you can do or contribute to as a software engineer, so the resources you use should be informed by what your goals are.
If your eventual goal is to work at a major FAANG-like corporation, some of the important things to know would be software languages like C++, Python, Java, Rust, etc., along with major concepts like algorithms and software security. You'll probably want to know the basics of Linux, maybe some concepts of Cloud engineering.
If you'd prefer to do something like open source software development, a lot of the time you'll need to know C, Python, or shell. You'll definitely want to know a lot about Linux and Unix.
Game development -> C++, C#, etc.
If you'd like to go into academia you'll probably want to know lower-level concepts like operating systems, hardware, etc. You'll want experience in C and assembly.
There's a ton of avenues to go down, but you'll probably want to pick based on your more specific interests. That being said, some good basic knowledge can be picked up by learning Python and Linux. Python can help you learn basics for most any programming language, and as a software engineer there's a good chance you'll use Linux on a regular basis as well.
https://python.org
https://ubuntu.com
If your eventual goal is to work at a major FAANG-like corporation, some of the important things to know would be software languages like C++, Python, Java, Rust, etc., along with major concepts like algorithms and software security. You'll probably want to know the basics of Linux, maybe some concepts of Cloud engineering.
If you'd prefer to do something like open source software development, a lot of the time you'll need to know C, Python, or shell. You'll definitely want to know a lot about Linux and Unix.
Game development -> C++, C#, etc.
If you'd like to go into academia you'll probably want to know lower-level concepts like operating systems, hardware, etc. You'll want experience in C and assembly.
There's a ton of avenues to go down, but you'll probably want to pick based on your more specific interests. That being said, some good basic knowledge can be picked up by learning Python and Linux. Python can help you learn basics for most any programming language, and as a software engineer there's a good chance you'll use Linux on a regular basis as well.
Zach recommends the following next steps: