Ever wondered what to learn in order to get a job?
Here is my guide based on experience...
Embedded Systems | Operating Systems | Network Engineering
Embeded systems, operating systems, and network engineering are usually low level and this require languages that are low level.
Embedded, operating systems, and network engineering is tightly coupled. Often individuals in this line of work can bounce around in these positions but the overarching skill set is more around how software interacts with the hardware behind the scenes.
Engineers in this career path often are developing things like military devices, medical devices, communication devices, etc.
Suggested that you should learn a bit of:
- C
- C++ | Rust
- Java | JavaScript
- Computer Architecture
- Linux
- git
- Communication Protocols
- Assembly
- Firmware
- Network Security
- Firewalls
- docker
Web, Data, Cloud, DevOps & 'Traditional' Software Engineering
Software Engineering is all about abstraction & encapsulation. (Not just woth object oriented programming). A lot of behind the scenes nitty gritty is obscucated by the use of frameworks and libraries.
The primary focus of software engineering is the end user's ability to access and communicate to a product whether thats front or back end. Of course theres more specific skills depending on whether front end, web, server side, etc but this is probably the most vast "field"
Less about the language and more about the tools.
Suggested that you should learn a bit of:
- Java | C# | C++
- Javascript
- Python | Ruby
- Framework
- RESTful APIs
- Node & npm
- SQL/NoSQL
- git
- OOP
- virtial environment (not virtual machine)
- cloud and cloud hosting
- docker
- Testing
Data Science | AI/ML | Statistical Analysis
Data science, AI/ML and stats based jobs are all about math, statistics, and using data for engineering solutions.
These generally require you be on top of newest trends and dabbled in research as it is still a fairly new field.
Suggested that you should learn a bit of:
- python
- R
- JavaScript | C | C++
- Language Models
- Algorithms
- Advanced Statistics
- SQL/NoSQL
- Big data Analysis tool(s)
UI/UX | Accessibility Engineering | Design | Scripting | IT Systems Development | Automation
These are all about the end user and how their experience is or speeding things up for a business. With it are more high level skills required.
Suggested that you should learn a bit of:
- Javascript
- Html/CSS
- figma
- cli
- A11Y Principals (auto re
- Salesforce | ServiceNow
Game Dev | Robotics| Graphics | Medical Simulation Engineering | Aerospace | Physics Engineering
This is all about mimicking real life and real objects which means: yay math. Specifically linear algebra and geometric calculus.
Suggested that you should learn a bit of:
- C++
- C# | Python
- Game or Physics Engine
- Sockets
- Linear algebra
- Geometric Calculus
- Algorithms
QE/QA, Software Engineering in test, Testing Engineer
This is about testing and less about developing. More test more test more test.
Suggested that you should learn a bit of:
- Java | Python
- Integration Testing framework
- Unit testing Framework
- Function Testing Framework
- docker