Monthly Archives: April 2015

Preparing for an Interview

To start with preparing for an interview start by

  • Building a good base for pointers, structures and other data
    structures(linked list,stack,queues). To code a good question you
    need a good understanding of pointers. A book by Yashavant
    Kanetkar “Understanding Pointers in C” can be a good one for
    pointers. But not  just read the text in book even solve every
    question ( atleast the ones which are tough) at the end of chapter.
    Its no use without solving questions. It would increase your
    interest further once you will be applying your concepts practically.
  • Next task would be to study algorithms thoroughly. Having a good
    knowledge of algorithms helps in solving a new question most of the
    time as you can relate many problems to the questions already solved
    in algorithms.
  • Learn basic computer science too. Have a good understanding of OS,
    networking, Computer Organisation. Questions from these subjects are
    fairly asked in interview.
  • Next and the final task is to solve as many questions as possible.
    Make it a daily task to solve one question. By solving question
    doesn’t mean solving questions on codechef (like platforms). Try to
    pick single line questions daily (like find if 2 trees are mirror
    kind of question). Solving questions on platforms like codechef
    takes time and concentration and some more things other than just
    programming. So they may be beneficial to some but might also not be
    beneficial for others. But solving simple concept based questions
    helps to get ideas when solving codechef type questions during an
    interview.

Preparing for GATE helps preparing for interview in a lot of ways. Being in contact with Sir, learning the concepts from him prepares you not only for GATE but also for interview. Try to devote as much as time as possible in a day to study for GATE, then to programming and preparing for interview. Listen to Sir and follow his command and success is bound to come sooner or later. Sometimes result might not be as expected but don’t loose hope and keep the focus.

All the best.

Vishesh Parshav

Aspiring Minds[14 lakhs]

B Tech (CSE)

Why Video Kunji – summarized video courses?

Most of students studying in self-financed institutions end up in using
kunjis (synonyms: key, solution bank, etc.). There are many problems in
using these, including:

  • The students do not get synthesis of the course because the kunjis use
    enormous compression ratio making the information lossy! Also, because
    they do not present things in systematic form.
  • The students learn wrong concepts given in them as these kunjis are
    filled with mistakes. You can give them as a good example of utility of
    cut and paste in your professional talk or why Wikipedia is useful!
  • The students do not practice rather they do rote learning.

This has severely impacted manpower development in India. Also, it has
diminished confidence of students in general.

Since the students would anyway want to learn fast, we, at Raman
Classes, thought that we can make that possible with abridged version of
courses but trying to preserve the essence and concepts. That is why we
have started video kunji project with videos covering each unit, along
with tutorial questions after each lecture and their solutions. The
tutorial questions are based on previous year questions from UTU, UPTU,
and other technical universities. The explanation of concepts are in
mixed English and Hindi.

For students in India, the courses would be free of any fees!

As a start, we offer video kunjis on two subjects, Automata (Theory of
Computation) and Compilers online. These are  favorite subjects for
buying kunjis as they are considered quite tough. The course duration is
typically 8-9 hours (that is our compression – slightly lossy in detail
but at least you can see the picture at gross resolution).

You can see them here:
http://online.ramanclasses.org

Support Video kunji project by:

My hope is that Indian students of CS/IT would consider learning
concepts as enjoyable experience, and possibly they would be motivated
to become good learners by themselves through standard books.

Learning new programming languages?

For us, the computer scientists and engineers, programming skill is essential. A common misconception is that knowing syntax of several programming languages (PL) such as C, C#, JAVA, etc. makes you knowledgeable. Knowing what special features are offered in a PL without thoroughly solving the problems is a superficial work. This is like reading manual on driving a car – not much useful. And learning several PLs is like reading manuals of different cars! Sit in the driver seat and learn how to drive.If you learn how to drive one car, you can drive any.

It is logical thinking, flow of program, modularity of code, etc. that you need to learn.It is quite interesting that any good company paying you a reasonable package does not restrict you to your choice of programming language. If you like, you can use C or C++ or JAVA or Phython or any other language. Even many times, the interviewers are content if you can simply write a flow of your program. That implies what matters to them is how deep you can think, your analysis of your code, your approach, etc.

As an example, try to write code for a simple (yes, it is simple) problem –

  1. Given a 2D array, print it in spiral form.

See the following example:

Input:

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

Output:

1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10

For many students, it leaves their head spiralling where to begin even though they know C, C++, JAVA, etc. When we learnt programming way back in 1990s, even small coaching centers would concentrate on making logic clear because there were not too many programming languages to learn. So, we did a lot of flow charting and thus it was easier to code difficult programs in any language after learning the syntax fast. In contrast, today the situation in most universities or diploma centers is that they focus on teaching the syntax of the new language like C#. And the time is over for the student to do coding on difficult logical problems.

I have a small insight into this way of learning. My nephew who studied in Meerut – a city in Northern India (in a very reputed school) told me that as the fifth subject in 12th class, most students have opted for German language. I was surprised because learning correct and proper English and even more importantly, Hindi would be more meaningful. How many times do you our students write “I did not knew this” or “I have came back” and so on! The problem is even deeper because the creativity is discouraged in this kind of learning. Finally, a good writer in any language is not good only because he can write proper syntax. It is the content that matters. It is their thoughts that have impacted others. Your ability to think matters, not how good you are in syntax. Of course, syntax is also required, but if you have done a lot of coding, obviously, you know the syntax. Similarly, you might know a lot of programming languages, but unless you do a lot of coding on logical problems, it is not so beneficial.

Pathways to various career options

Studying abroad

  • Get good GPA throughout
  • Do active research and publish a research paper (2nd or 3rd year)
  • Take GRE and TOEFL in 7th semester
  • Apply abroad in November of 7th semester to each university of your choice
  • Special skills on which need training: Good verbal section for GRE, and quantitative for GRE, TOEFL, coding for doing research, how to write statement of purpose

Studying in IITs

  • Get good problem solving skills in courses throughout
  • Register for GATE classes in 6th semester February
  • Fill GATE form in October 7th Semester
  • Take GATE in February 8th semester
  • After getting GATE results, apply to IIT of your choice
  • Special skills on which need training: problem solving for GATE, quantitative and verbal and coding

Working in dream companies

  • Take AMCAT in 7th semester August
  • Take E-litmus in 8th semester March
  • Apply to dream companies with your score from AMCAT and E-litmus
  • Participate in coding round and technical interviews in dream companies
  • Special skills on which need training: Quantitative, verbal and logical reasoning, coding and technical subjects, mock interviews with industry experts

Studying in IIMs

  • Take CAT in 7th semester
  • Apply to IIM of your choice
  • Take interview
  • Special skills on which need training: Quantitative, verbal and logical reasoning, mock interviews and group discussion

IAS and other services

  • Take UPSC in 8th semester
  • Go to the next step of test if selected
  • Special skills on which need training: Quantitative, verbal and logical reasoning, selecting proper subjects

Working in PSU

  • Register for GATE classes in 6th semester February
  • Fill GATE form in October 7th Semester
  • Take GATE in February 8th semester
  • After getting GATE results, apply to PSU of your choice
  • Take the interview
  • Special skills on which need training: problem solving for GATE, quantitative and verbal and coding

Upcoming areas of Computer Science

Cloud Computing

Cloud computing has brought in paradigm shift to the way the business is conducted.With an increasing number of companies adopting cloud computing, over two million jobs are expected to be created in India by 2017. This program is intended to lay a strong foundation in understanding technical intricacies involved in developing cloud infrastructure, deployment of cloud applications and managing the cloud based solutions.

The career opportunities in the field are:

  • Cloud Consultant
  • Cloud Product Manager
  • Cloud Developer
  • Cloud Solution Architect
  • Cloud Enterprise Architect

Big Data Analytics

Big data analytics refers to the process of collecting, organizing and analyzing large sets of data to discover patterns and useful information. Analysis of data sets can find new correlations, to spot business trends, prevent diseases, combat crime and so on. Scientists, practitioners of media and advertising and governments alike regularly have to deal with large data sets in areas including Internet search, finance and business informatics. Big data has increased the demand of information management specialists in that Software AG, Oracle Corporation, IBM, Microsoft, SAP, EMC, HP and Dell have spent more than $15 billion on software firms specializing in data management and analytics. In 2010, this industry was worth more than $100 billion and was growing at almost 10 percent a year: about twice as fast as the software business as a whole.

The career opportunities in the field are:

  • Computer Systems Analysts
  • Information Technology Project Managers
  • Management Analysts
  • Marketing Managers
  • Market Research Analysts
  • Computer Software developers
  • Banking Experts
  • Financial Experts

High performance Computing

The term *high performance computing* (*HPC*) refers to any *computational* activity requiring more than a single *computer* to execute a task. Supercomputers and *computer* clusters are used to solve advanced computation problems. High Performance Computing (HPC) plays an important role in both scientific advancement and economic competitiveness of a nation – making production of scientific and industrial solutions faster, less expensive, and of higher quality. HPC is a key component in many applications: designing vehicles and airplanes; designing high-rise buildings and bridges; discovery of drugs; discovery and extraction of new energy sources like oil and natural gas; weather forecasting; and many more.

Career opportunities include:

  • Multi-core programmer
  • Grid programmer
  • System architect
  • Storage and architecture expert

Computer science: The need for higher education

Learning and innovation should form integral part of undergraduate education. I would like to address some of the misconceptions which breed during college days:

  •  Higher studies: A common misconception is that students who go for M. Tech. or M.S. abroad have to necessarily go in research and teaching jobs. This is incorrect. Most of the M. Tech. graduates from IITs and other reputed institutes choose to work in industry, generally with a higher package than B. Tech. from the same institutes. The growth of a M. Tech. graduate is also faster in corporate ladder than a B. Tech. graduate in general.
  •  Relationship between research and learning: A common misconception is that research involves tackling complex mathematical equations or proposing new theories. Today research has taken a new dimension of being integrated to solve problem that the world is facing at present. As an instance, IBM is working on Smarter planet initiative where they want to create technologies for smarter traffic management with less traffic jams, reduced terrorist activities, and so on.
  •  Importance of good projects in good future options: Yes, there is a connection between the two! Good projects in your discipline can help you to stand better chance in interviews. Sound projects can result in publications in journals and conferences, which make your resume shine, get you scholarship from university abroad and some award.