INTRODUCTION
COMPUTER SCIENCE IS SHAPING THE FUTURE.
A DEGREE IN COMPUTER SCIENCE CAN HELP SHAPE YOURS.
Computer science is
an integral part of our lives, shaping virtually everything from the
objects around us to the ways in which we communicate, travel, work, and play.
And the computer revolution has just begun – CS is now a key enabler for discovery and
innovation in most other fields of endeavor, making it an incredibly
relevant course of study.
Computer science is
an integral part of our lives, shaping virtually everything from the
objects around us to the ways in which we communicate, travel, work, and play.
And the computer revolution has just begun – CS is now a key enabler for discovery and
innovation in most other fields of endeavor, making it an incredibly
relevant course of study.
Computer scientists
invent the future by developing
architectures and techniques for more advanced computing, and by developing the
applications that operate within those frameworks.
Computer science is a
powerful force for making a positive difference in the world. Computing has made possible undertakings such
as landing the Curiosity rover on Mars, managing patient care to avoid
undesired drug interactions, revolutionizing K-12 teaching and learning through
the use of mobile devices, and even the creation of a computer that can win at
Jeopardy. It’s a field of
unbounded potential – get ready to change the world!
WHAT DO COMPUTER SCIENTISTS DO?
Don’t confuse a
computer scientist with a computer programmer – many people do. A computer
programmer writes programs, but a computer scientist has broader impact.
A computer scientist
combines technical skill with creativity, a design sense, and understanding of
the needs of users in the global community, and business sense. A computer
scientist is an expert in:
·
understanding the possibilities and
limitations of computers
·
evaluating alternative software solutions
·
understanding challenges of projects
involving multiple cultures
·
communicating with team members and end users
·
performing/evaluating usability studies
·
identifying relationships between problems
and solutions
·
planning and managing projects
·
working effectively and coordinating tasks in
interdisciplinary teams
·
giving effective presentations and product
demonstrations
Computer scientists
understand, innovate, and direct to solve problems through computation, and can
but do not necessarily write the code. As a student of computer science, you
will learn to solve problems effectively, efficiently, and accurately. This
depth of understanding increases your options and therefore, your
marketability.
5 things that Computer
Science Engineering students should focus on
What should students be really focusing on? Somebody asked me
this question recently – Imagine students who are in 2nd or 3rd year of their degree course right now.
They’ll spend a few years finishing college, and a few years just learning the
ropes at their first job. So it will really be about 5 years before their
career really starts. What will the software technology world be like at that
time, and what are the skills that students can work on acquiring right now to
ensure that they are well positioned to thrive?
Of course, 5 years is a long time, and to quote Neils Bohr, prediction is very difficult, especially about the
future. Still I think some general trends are clear, and there are some other
timeless skills that are worth looking at. Based on that I’m giving my list
below.
But
wait!
Let me not bias your thoughts. Before you read my list, skip to
thecomments section
below, and put down your list. Then read my list and critique it again in the
comments. Hopefully we can have a good discussion that will benefit students.
So,
here’s my list of areas students need to be thinking about:
§
The next billion customers: The IT
revolution has probably reached a billion people of the world so far. In the
next 5 years, it will reach the next billion. These will be a very different
set of people. Many of them will be illiterate – so you need to focus on
non-text, non-English interfaces – video, animations, voice recognition. Search
for “English Seekho” to get an idea of what I mean. Most won’t have money or
electricity for computers, so mobile devices will rule – so you need to start
playing with mobile platforms like Android. In general, search for the “the
next billion” and you’ll find some interesting material put together by the
likes of Nokia, and MIT giving you ideas on what to focus on.
§
Usability: As IT
touches the lives of more and more people, less and less of them will be
“computer savvy”, and less and less of them will view computing devices as
something that needs to be learnt. Consequently, the products that will
succeed, will be the ones that are easy to use. And making something easy to
use is rather difficult. It is a sub-discipline of computer science, and there
is a lot of theory, and a bunch of well-defined algorithms and practices you
can use to make things easy to use. The whole area is called HCI (Human Computer Interaction), and UCD (User Centered Design) is a part of it. It’s an area that you
must be familiar with
§
Computer Science Fundamentals: This
will never go out of fashion, and yes, when I look at students coming out of
our colleges, this appears to be a rather neglected area. Far too much emphasis
on specificprogramming languages, and specific “technologies” is a
mistake. Whatever the future holds, you will be well served by knowing the
basic theory of computer sciences. Learn data-structures and algorithms. If you
don’t have a favourite data-structure,
and an algorithm that you find beautiful, then your computer science education
is incomplete. If, after seeing an algorithm, your first thought is not about
the complexity of the algorithm (O(n), O(log n), etc.), then you need to hit
your books again. If you’ve only learned Java and C#, and you don’t really
understand pointers, heaps, stacks, you will sooner or later be at a
disadvantage. Understand the basics. And while you’re at it, also learn
mathematics and statistics.
§
Presentation skills: This is
not a computer science skill, but this is one of the most important skills that
computer science students are missing. You must treat presentation as equally
important, or more important than your program, design, and algorithms. And you
must spend as much time learning presentation (from books, in classes, and in
practice) as you spent on programming languages, and computer science subjects.
I’m sure you haven’t done that, hence this item in my list. You should know how
to write well. Not just papers and documents, but much more importantly,
emails, and blog posts, and facebook wall postings, and tweets. You must think
about what the user/reader/client wants to know (instead of what you know and
want to tell). And of course, you must know how to speak well. How to tell a
story instead of listing some arcane facts about your work. How to leave out
stuff that you find extremely interesting, but the listener doesn’t.
§
Economics: Scott Adams,
the creator of Dilbert says: “When you have a working knowledge of economics,
it’s like having a mild super power.” Basically, if you understand the
fundamentals of economics, you can see and understand what drives people and
technologies and success and failure a lot better than people who do not
understand it. I hated the fact that I was made to study economics in IIT for
my computer science course. It seemed like a complete waste of my time. Now,
looking back, I think it was probably the most important course.
.jpg)
No comments:
Post a Comment