top of page

Choosing a domain in Computer Science


Computer Science is currently the most popular engineering stream in the world, and it is highly likely that it will remain the same for the next couple of decades.

This discipline pervades all aspects of human life, ranging from growing food, to being a form of mass entertainment. This kind of a variety entails a large spectrum within Computer Science itself.


And here lies a question that challenges almost every budding engineer.


How do I go from being an Engineering student, to a developer? Which domain do I choose?


Everyone would love to be a Computer Science graduate, but the catch is that CS is a vast topic, and it's really easy to end up being lost and confused on what to do. So in this post, I'll be covering certain broad domains, and how you should go above solving the question above.

 

How do I go from being an Engineering student, to a developer?

As a student, you'll be taught the foundation of Computing. This is the base on which the entire field has been built on. These concepts will allow you to understand the fundamentals of CS, but they do not go into current trends, tools and upcoming technologies. In some ways, it's similar to how schooling is, you get a taste of everything that's there in the world, learn basics (Math, English , Science), and once you're done , you choose your path.


And that's where CS differs. You will get a taste of the foundations, but without any specific paths , you (most likely) won't be doing something you enjoy.

It is an extremely vast domain, and without a particular ideal in mind, it's hard to get to where you want to be.

Note the word ideal . This is because you need not have to have a set job,a position or a company in mind. If you do, well that's good too. All you gotta have is an interest in a domain, a curiosity of sorts, which helps you understand and specialize in that specific domain.

Try out whatever interests you, and pick one which you would dive deep into.

 

Coming to the second part. Which domain do I choose?


Now that is a question that cannot be answered by anyone apart from you. You will have your own tastes, your preferences. And the only way of knowing it, is by trying out new domains. You may find it in your first go, or it could take a couple more tries, but you'll eventually get there. In order to help you out, I've compiled a small list of domains, which would be useful.


  • Electronics and Embedded Systems:

This domain covers IoT, Edge Computing, SoCs, and microprocessers such as Arduino and Raspberry Pi.

What does this domain require: - Knowledge of C and Assembly languages, as you will be working with devices with minimal OSes and basic compilers.

- Knowledge of Networking

- Interest in Energy optimization, as these devices have to rely on weak or no active power sources

- Knowledge of Electronic components, sensors, and other interfaces.


If you're the kind of person who loves getting your hands dirty, wiring stuff up, using multiple sensors, analyzing and programming microprocessors, then this would be a field for you.


Examples of Embedded Systems: Amazon Echo, Google Home, Smart home devices, Google Loon project.


  • Data Science

Data Science covers Data Analytics, AI and ML. In short , it is a statistical approach to human intuition. This field deals with Language Processing, Game AI development, Prediction software, Sentiment analysis and every other application that involves a statistical approach. What does this domain require: - Knowledge of Python, R or any other Data oriented language.

- Interest in Mathematics, especially Algebra, Calculus and Statistics.

- Keen eye for recurring patterns, especially in numeric data.


If you've got a passion for math, and an interest in predictive and identification mechanisms, then this would be an apt field for you.


Examples of Data Science: Google Assistant, Siri, Youtube Recommendation algorithms.


  • Application Development

Application development includes Web, Mobile, PC and every other form of interactive software application. Here, you will be building end-to-end solutions. You could be a front-end, back-end or a full-stack developer. You may also have to design entire systems from a scratch, reaching across disciplines, to utilize databases, cloud services, networking and Auth protocols. In short, you'll be the idea builder. What does this domain require:

- Knowledge of core languages , such as Python, Java, Ruby, JS, React.

- Knowledge of scripting languages, such as CSS, XML

- A keen interest in new developments, and a thirst for learning.

- A problem solver, who won't back down from any sort of a challenge.


If you have the ability to envision an idea, while maintaining a depth of abstraction and complexity, along with a "Never back" down spirit, then this is your field.


Examples: Every single mobile app, Google, Spotify


  • UI/UX

A UI/UX designer is an artist. They have the ability to understand user sentiments, and design interfaces that attract and engage users. UI/UX designers are considered to be non-programmers, but the reality is that no software can succeed without a good UI, from video games to bank interfaces, and UI design has a lot of script programming involved. They are fundamental to CS.

What does this domain require: - An artist's eye. The ability to imagine and design unique and stunning concepts.

- Knowledge of tools such as Adobe XD, and other design tools

- Scripting languages, like CSS and XML

- Understanding of developer tools, and how to merge UI and software


Love drawing, sketching and any other form of art? Got a passion to understand workings of software, and using digital tools to draw? Then this is a field that will excite you.


Examples: GTAV, Google's suite of applications and services, this website.


  • Algorithms

Algorithms are the backbone of any software application. They handle, coordinate and react to users, and other programs. They manage everything from data handling, to Operating systems. Optimizing existing tools, building new software, training AI models, everything requires algorithms. What does this domain require: - A strong knowledge of fundamental languages, such as C, Java , C++, Rust.

- Knowledge of existing algorithms

- Ability to analyze and improve existing systems, or design better implementations.

- A competitive and analytical mindset.


Enjoy solving challenging problems? Interested in Competitive programming? This domain would suit you perfectly.


Examples: The software that is letting you read this post right now, Google Drive, every single program ever written( yes, even "Hello World").

 

This list is in no way complete. It provides a general idea of CS as a whole, along with broadly classified domains. Most domains overlap with one another, and are interrelated. This makes separating these fields difficult. For example, a game developer cannot design lighting algorithms without a knowledge of algorithms and optimization.


So in CS, being a "Jack of all trades" is really helpful, but won't be of much use until you're a "Master of One". Cheers,

Irfan S




22 views0 comments

Recent Posts

See All

Comentarios


bottom of page