Computer Science Engineering - As a career option
Computer engineers are people who use computers to consolidate the principles of mathematics with other branches of science and engineering to advance humankind’s capacity for computation.
The pertinence of computer science (and hence computer engineers) in the present day stems from three major facts:
- The world around us is governed by mathematics. Whether you’re an astronaut or a surrealist painter, chances are that you’re never too far from a position that can be significantly improved with a greater mastery over the mathematics that surrounds it. Development costs computation.
- To be able to use mathematics to your advantage, you often need to do a massive amount of computation. For example, the fundamental energy conservation equations that determine the behaviour of a flying aircraft require fundamental mathematical operations to be performed over a trillion times per second.
- The human brain may be unimaginably complex and never at a dearth of ways to amaze us, but its capacity for computation is quite limited. To do the trillion calculations mentioned above (that some computers do in one second), an average human brain would take more than 32,000 years!
Do You Want to Become a Computer Science Engineer?
You have to take a series of highly competitive entrance exams and get into a Bachelor of Technology in Computer Science Engineering course. Following your bachelor’s you can pursue an M.Tech in Computer Science or a PhD.
Eligibility Criteria to Become a Computer Science Engineer
- +2: Need to be in the science discipline and graduate with over 60% marks
- Bachelor’s Degree: Bachelor of Technology (B.Tech) in Computer Science Engineering
- Master’s Degree: Master of Technology (M.Tech) and PhD in Computer Science Engineering (optional)
How Do Computer Engineers do Coding?
Computer engineers develop methods of computation that they call “algorithms” and phrase them in words that a computer can understand, which they call “codes”, or “programs”.
The time it takes for an algorithm to solve a certain given piece of computation is a measure of its “complexity”. One can safely say that complexity is the Voldemort of a computer engineer’s fantasy world – often, reducing the complexity of a code even a few notches would fetch your company (and you!) millions of dollars.
What Does it take to be a Computer Science Engineer?
You need a B.Tech in computer science engineering to start with, and the most difficult thing is getting there: aside of a class XII degree, you need a stellar rank in an Engineering Entrance Exam of your choice.
Entry into computer science programs is arguably the single most competitive aspect of engineering, so not everyone who wants to get there makes it.
However, there are alternative routes: given its similarity to mathematics and electronics, it is also possible to end up at the same place as a computer science engineer by studying mathematics or electronics engineering in your undergrad. This is of course, one of many possibilities.
A Day in the Life of a Computer Science Engineer
Can a computer have a mind?
Hi, I am a computer science engineer working at one of the world’s most prominent technology companies, and my work comprises pretty much exclusively of answering that question.
Most of us now believe that the question has been answered and that the answer is yes. Things were different when I was in school: the world was convinced that it would take nothing short of magic to get computers to think for themselves. But then, as Arthur C. Clarke was kind enough to postulate – any sufficiently advanced technology is indistinguishable from magic.
So call me a magician, or a philosopher, or just another engineer, I am trying to develop machines that can think for themselves and make intelligent decisions that would take present day computation and electronics to an unforeseen horizon.
9:00 AM: I arrive at work and am greeted by my colleague, who has been here all night. It’s common for computer engineers to work at odd-hours – coding can be quite addictive! I’ll start-up my PC and take a quick scroll through and talk a bit about our work.
10:00 AM: Here at our lab, projects are fun. This time, we’re trying to write a code that plays the 8-bit Nintendo Game “Mario” (you know it). Not unheard-of, but what’s different is not the final output but the methodology. Existing computer programs play the game, but they don’t “think” it.
Programmers give those computers a list of rules and a long, long list of possible logical moves and how to respond to them, and all the computer does is follow orders.
The code that we are building is different in that not only does it “think” its way to the next logical move, it also “learns” from the outcomes of its previous moves and enhances its ability to play.
11:00 AM: The massive whiteboard in our lab has the bare framework of the algorithm drawn out. Y and I collaborate to develop two distinctive aspects of the algorithm. My job is to design the computer’s decision-making capabilities.
To do this I use an age-old algorithm called the Monte Carlo method in conjunction with an ultra-modern decision-making model that involves probabilistic sub-processes called Markov chains.
Basically, the computer constantly updates its stance in response to a large number of random plays of the game (that it does “in its head”).
The basic framework of my code has been written for months – now, and for the rest of the year, I’ll be trying both subtle and substantial changes to my functions and testing out the results.
1:00 PM: Because we deal with a massive amount of data that grows as the computer learns, using my algorithm requires a very complex computational model. This is where Y comes in: Y is a neuron physicist with a specialization in Neural Networks.
A Neural network is a computational model that mimics the way information is processed in the human brain. Y’s convolution neural network connects my decision-making algorithm to the computer’s key memory storage system.
The amazing thing about the neural network is that it can recognize patterns in logic just like our brains can.
4:00 PM: I have written a subroutine that is aimed at minimizing the convergence time for a single Monte Carlo iteration. Even though it compiles perfectly while I run it in a separate dedicated “model” python code, I’m having trouble integrating it with the actual framework – prosaic errors like these used to seem annoying when I was in college but is now pretty much part and parcel of life.
3:00 PM: The idea is that upon being introduced to a new level or an otherwise new scenario, the code should, over the first few failed attempts, learn what moves are “correct” and take the game forward.
It’ll interest you to know that we aren’t the first to do this: IBM’s artificially intelligent Chess Computer “Deep Blue” once famously defeated Gary Kasparov, the then world champion, essentially out thinking him.
Our own code, while already working, needs to be able to pick up and recognize patterns faster, as well as converge faster into new decisions. Complexity costs money!
5:00 PM: It turns out that the reason my subroutine wasn’t working out is the scope discrepancy of a certain class object. I defined a certain class object (a kind of variable) as a number in my “model” subroutine because numbers are faster to deal with, but the original code defines it as a floating point. I change the data-type and the code integrates smoothly. Excellent!
As you might have noticed, our job really doesn’t involve a lot of moving around, and it might appear to outsiders that we’re leading laid-back lives; but that tiny subroutine I wrote today might eventually save my company thousands if the AI algorithm we’re developing kicks off. Guess what, I have a cool job!
Did you find computer science engineering a cool profession? Did You like what a computer science engineer do the whole day? Are you interested in this profession? Do you want to ask something more? Have your say in the comment box below! Enjoy Reading!