I have been asked so many times by my younger friends who are still in their second year of Engineering school in Egypt and they’re thinking about joining Computer Engineering department:
What are the fields that I can work at after graduating from Computer and Systems Engineering Department?
I noticed that each time I am asked about it I reply with the same pretty long answer about different fields of interest and work as a computer engineer.
Thus, I decided to articulate my answer in this article and I hope it could help all those young, ambitious people to decide which part of Computer Engineering they would love to spend their next five years doing.
I will break it down as I see, this is not based on a standard categorization. It’s just my view of it. I will be as concise and to-the-point as possible.
Computer Engineering fields as I see them now, are mainly:
- Software (it’s almost involved in every other field),
- Control Systems,
- Data Science/Analysis,
- Embedded Systems.
This covers Software Engineering, Logic, Computer Organization, Object-Oriented, Coding, Algorithms, Data Structure, Network Basics and Security Basics.
Software is involved in every computer-related or computer-dependent industry.
Desktop Software: (Programming languages - C#, .Net Framework, Java, SQL, Oracle, C, C++)
- Applications(Office suite, Photoshop, Instant Messenger, Antivirus, Internet Browser, etc).
- Drivers (Audio drivers, GPU driver, Ethernet driver).
- Other (than above :D like add-ons for Applications)
Mobile Software: (Programming languages - Java, Swift, Objective-C, XML, SQLite, C++)
Popular Operating Systems for mobile are Android, iOS, Windows Phone, Symbian(Nokia’s one, and yes it’s still used in some environments).
You can build applications for all above platforms and it’s currently one of the most open fields to join. It’s also relatively easy to learn how to build a mobile App.
- Web Apps
NOTE: There’s a misconception between Web apps and websites that really makes most engineers ANGRY. Web apps are NOT websites. Web apps are dynamic, you can create and edit content on them and get back to it later like a Facebook post, a tweet, a Note on Evernote etc. Web sites are static pages that most probably contain information about a person, entity, company, initiative. You just read the content, you cannot edit it or create new content there.
- Intranet applications (Apps for local networks within enterprises. They use the same technologies.)
Embedded Software: (Programming languages - C, Micro C, C++, Embedded C, any C-stuff :D)
The software embedded in laundry machines, cameras, copying machines, printers, SmartTVs, Smart Thermostats, Car infotainment systems, Security alarms, Self-Parking systems etc.
Work options in Egypt are limited in this regard. The automotive industry is the dominant one in the Egyptian embedded software market. The most famous companies are Valeo, Mentor Graphics, EvLabs, SiWare.
Cyber Security: (Programming languages and concepts - C, C++, Python, Java, Perl, Bash scripting, Unix/Linux commands, Network Protocols, Encryption algorithms and Protocols)
This covers Network layers, Network Protocols, Cisco and Brocade switches and protocols, Unix/Linux, Shell Scripting, Python, C.
A network engineer is mainly responsible for designing, building and maintaining computer networks, and also write scripts on network switches to handle and administrate networks. There’s a lot of places where you can find networks:
- Big Enterprise buildings(Intranets): network between different machines installed in that building including laptops, desktops, servers etc. Banks, Big Companies, Big governmental organizations are examples of places that contains such large networks, and those networks most probably expand across countries boundaries.
- Data Centers: and by data centers I mean that room, floor or even a complete building that contains storage arrays, Mails servers, Web servers etc.
This covers Classic Control, Math, Digital Control, Some Physics, Matlab, Labview, C, C++, PLC.
Control Engineers are responsible for designing control units that can handle a different case of controllable systems to be controlled. I think my view of control is more philosophic, I believe that control concepts understanding affects your understanding of everything.
You can build control systems using different types of micro-controllers, mainly for small sized processes like drones, small robots, small parts in a machine. You can build control units for assembly lines in a big factory, you can only control a machine behavior in order to get specific states as output.
You have to understand Control, Basic mechanics, Matlab, and then needed technology to build your controller.
In Egypt, you will be working somewhere around assembly lines and machines.
This covers Mathematics, Statistics, Machine learning, Artificial intelligence, Data Mining,R language, Python data science library, SQL, PostgreSQL, NoSQL, MongoDB, Redis, Hadoop, and some web development knowledge.
As a Data Scientist you are responsible for building smart programs and algorithms that help humans to make decisions using data or help machines to do things using data also.
Decisions like; Facebook friends and pages recommendations, Predictive analysis for traffic, Revenue forecasting and other Business intelligence applications, Predictive diagnosis for some diseases, Machines performance analysis that helps in predictive maintenance etc.
This covers Arduino, RasberryPi, Electronics, Circuits, Hardware Design, Computer Organization, C , C++.
Remember Embedded software and Control systems? Embedded systems are hardware (in most cases) components that are composed of the control systems (in some cases) and are managed using Embedded software and they shouldn't be only control systems they could be any other system that you cannot see in the final design of any product but you can feel its effect and functions.
This article contains so many examples of embedded systems you use every day.
To be a qualified embedded systems engineer you have to grasp C programming, Basic software engineering, Microcontrollers, Peripherals, and sensors.
Edx course is one of the best online courses for understanding embedded systems. You can also google “Embedded systems courses in Egypt” you will find a variety of options there.
- Computer Science/Engineering is multi-disciplinary field by nature.
- Self study is your best friend during your journey through a Computer Science Degree.
- Stackoverflow, Google, Quora are your best friends too.
- Not all the above fields are available in Egypt as is.
Cover Image: Man With A View | Evelyn Hill