I’m planning to prepare for GATE. I’m doing full time job Mon to Friday 8am to 8pm. Any tip and advise you would like to give me. I’ve attended gate forum coaching earlier during my engineering but didn’t prepare and do well in my first attempt. I have all resources for studying. This time I’m planning to do just self study.

This is a common question many people ask.

Exam preparation is different from studying for knowledge. So, first of all, you should get the clarity on what is it that you want. Are you looking to enhance your knowledge and acquire new skills? Or, do you want to invest your time in getting a good GATE score? From the context of your question, I believe your objective is to do the latter.

Exam preparation requires you to acquire aptitude. Aptitude comes by investing time in thinking and practice. So, my first advice would be to value depth instead of breadth. Take few topics which are easy to score and do your best to solve as many problems as you can. You should be confident that if a question comes from this topic, you will certainly score it. Do not run behind covering syllabus.

My second advice would be to be conscious about the illusion of knowledge. Often, it seems that we understood a concept. Understanding a concept and solving a problem related to that concept are at different levels of aptitude. So, do not stop if you think you understood. Spend time in quality thinking and problem solving. One way to evaluate whether you have the aptitude is to solve past year problems on your own. So, mark few problems for testing and few problems for training.

My third and most important bit of advice is to hone your ability to recall. This sounds trivial. But, many people will agree that they knew it but had a black out during the exam. Their brain just could not recall anything. One way to do this is to practice recall. To be specific, everyday, spend 30 minutes recalling what you did before. Some call it revision. Do not look at the notes. Try to recall page by page what you wrote before. Recall the ideas. Recall some interesting problems.

CS is a vast subject. Too many topics and too many ideas to master. You may not get enough time to rock. Do not feel pressurized. Give importance to your job. If there is further time left, hopefully these tips will help you. Remember, if you are not having fun, you are not doing it the right way. This applies to learning and preparing for GATE too. Cheers and good luck!


Fibonacci Numbers

Many times, we get an illusion that we understood something. Fibonacci series is a classic example. Almost everyone who looks at the series 0,1,1,2,3,5,… would consider this way too simple enough and assume that he understood it. Real learning is in asking deeper questions. If it is that simple, why are we learning it? Now that I know, how to use this knowledge? What kind of problems can we solve? Does this connect to something else? Here’s an attempt to answer all these questions. Look at learning as a problem solving exercise. With every new knowledge you gain, you become a little more valuable.


Now we have the tool to answer a wide variety of questions. What if there were three type of bricks (say, short, long and double :-)) or, what if we had 20 slots? Enjoy Computer Science.

CS or IT – Is there a difference?

This is a question that almost every CS or IT engineer gets at some time. He shrugs off quickly saying, why bother.

India has seen a boom in IT (not CS) jobs in the past 20 years. I still remember my BE 3rd year days (1999) when I was in the CSE stream and was very confident and happy because I was sure my stream would attract the best employment. In those days, IT was a rare. CS grads were hired for applied jobs like programming, systems, networking and so on. Hardly, any of my friends moved on to work on theoretical computer science. We never used automata to model anything. We never did model checking in our life. We never used formal languages. Designing new programming languages or improving the algorithms behind a data base system were things that we considered beyond our reach or imagination. Even though we called ourselves CS engineers, we were only applying our CS knowledge to practical use by building software. We were not extending the “science” behind computer science. Over a period of time, people saw that it is inappropriate to call what we do as CS. So, they started this branch “IT”. With so much jobs, they even found a need to establish new “Indian Institutes” for “Information Technology”. That led to the present day IIITs. The idea was to provide the same quality of education as IITs in every state focused on IT jobs.

So, in essence, if you are not so much interested in the science behind CS, IT is the best stream for you. Entry level jobs in the IT and ITES industries (software development) would not distinguish between CS and IT. Taking IT will infact be more appropriate for these jobs because it will cut down few theoretical subjects from your list which they argue that you will never need to know.

If you choose to turn to research, you will now find yourself at a slight disadvantage especially if you become allergic to theoretical computer science. So, if you have MS or PhD aspirations, think again. It does not preclose your opportunities. You just need to work much harder to enter few streams. That said, research in Information Security, Information Retrieval, and such fields are open for IT engineers.

At the end of the day, I have learned that, the way to survive in this complicated world is to be very neatly organized. You need to simplify every step in your life. BE (CS), MS (CS), PhD (CS) sounds much simpler compared to BE (IT) MS (CS) PhD (Mathematics). Believe, such people, exist too! So, choose a specialization based on your ability to marry it for life. Do not keep a plan B to change it. My profile looks like BE (CSE), MS (IT) and PhD (CSE). My PhD is in Information Retrieval. But, it is just that there are not many institutions giving PhD in IT. Also, my work is becoming more and more theoretical. So, I do not mind.

Sorry for a long answer again. But, in essence, it matters only if you are a Math lover (and also allergic to programming) and you are interested in theoretical side of computer science. If that is the case, go for CS. If not, IT is fine.

The Devil Named Masters Thesis

Masters Thesis introduces you to serious research. The purpose is to expose you to the tasks associated with research. It is a training to help you appreciate the steps like finding a problem, scoping the work, conducting a literature survey, studying related work, conducting experiments, devising algorithms, implementing your ideas, conducting comparative evaluation and finally being able to convey all this well to both novice and expert audience.

The specific field or the problem you choose to solve is not very important from the perspective of this training. The focus througout should be to get trained for the above. The problem should not be of your great worry.

But that said, it is important to choose a problem that would set you up for success. Since you are likely to continue on similar ideas later for a PhD, you want to take up something that interests you. Even if not research, you would be asked to explain your thesis at hundreds of job interviews. So, you should be good in the related field. Many of us at this stage do not have a favorite subject. That is sad. Even if we do, it is a favorite subject mostly because we understood everything and see no problems! The way we study is such that we look for solutions, not for problems. You ask a GATE topper. He will tell you, give me any problem in ToC, I can solve it! This thinking is not suitable for research. Instead, you will now need to develop the skill to find a problem with every solution. Let us take an FSM (Finite State Machine). A very simple model, right? There seems to be nothing wrong with it. There seems to be nothing missing in it!? Think again. What if you want to add the notion of time to FSM? That led to timed automata or temporal models. Welcome to the first step of research. Finding problems in the most elegant solutions which you understand thoroughly.

Even if you have a favorite subject, and you throughly understand a part of it, and let us say, you can see possible extensions or fundamental issues with such solution for which there seems to be no alternative. The next thing is to understand if this is a problem you can solve within roughly 6 to 12 months. Given there is so much uncertaintly and lack of skills in the forthcoming steps, your estimate is going to be wrong. You are very likely to come up with overambitious problem which you will not end up solving. This is the top reason why most Masters thesis fail or get delayed.

Let us assume you managed to find a problem whose scope is very reasonable. You may be surprised to see that the solution takes you to a field which you are not comfortable with. My work on finding similarities between code snippets is now taking me to Category Theory! I had identified myself as a systems researcher so long and now, it is impossible to skip theory.

Being able to learn quickly and turn good results is something you young guys specialize in. You can live without sleep, food and easily without bathing for several days. Although I do not recommond these, the point is that your stamina and strength will take you to the solution.

If you defy all these odds and still think you are doing a good job, your Indian English with a Whatsapp accent will kill all your chances of a publication. Inspirational and Scientific writing needs a lot of practice. Most of you hesitate to write. Even after pleading and begging for comments, all I get is one or two lines from a very small subset of students here. Good luck to the rest! You will learn the hard way.

Another issue with publishing your work is related to how many people are solving similar problems. Crowded areas are competitive. Stay out of the crowd wherever possible. There are fields like Programming Language Design, Computer Architectures, Transport Layer Problems which have very few researchers in the country. Areas such as AI, ML and Data Science are flooded. Do not enter crowded areas unless you know what you are doing. One plausible reason could be that you want a job in AI. In that case AI is worth the struggle.

All these make Masters thesis “The perfect devil to beat”. At the end, you get that feeling of having learned useful skills. Yesterday, as I was listening to a Kasparov (Former Chess Champion), he said, “I like the masters of the past because they bring something new to the game”. I believe, our masters thesis is no different. We bring something new to our field. We should do such things for which we are respected.

So, let me now come to the short answer to your question. For the reasons of complexity involved, you need a good guide to steer you to success. So, in the broad areas of your interest, find the best people and get associated with them. Rest will fall in place automatically.

Am sorry for such a disappointing answer to a lovely question. But that is the best I could give with my limited knowledge. Good luck.

Am just not able to focus. What to do?

How many times have we experienced the “aaj mann ni lag raha h” (oh no, am not into it, today) feeling!? Well, I know I have to do it. But, somehow, the mind is not into it. We end up either wasting time forcing ourselves to do it where our productivity falls due to lack of concentration. Or, we just do something else. When I know I must do it, and I think that I am interested, why can’t I still concentrate on what I need to do?

The answer to this interesting question lies in the essence of execution. Your goal is clear. You have a plan. But, you are unable to execute. How to execute well? What do natural executors do?

I maintained an excel sheet where I used to put the topic and number of hours completed. I used to tell myself that my progress depends on the number of hours I see in that xls. If 100 hours is the goal, whenever I touch 25, I used to be very happy. I celebrated by sharing on social media and with my friends. I get to 50, I again share. This does two things: 1) It pushes me to achieve it because I like the feeling when I share it. 2) It brings a fear of shame that if I do not finish, what will my friends think of me. This worked like a charm. I consistently finished the planned hours. I never cheated. But, this may not work for everyone. It depends on your nature.

Another technique that usually works is to convert the goal of “studying DLD” to the task of “writing notes for DLD” task. This task shows progress. At least, you can see the number of filled pages increasing. When there is a sense of progress, our brain is more motivated to do the task. Just reading pages after pages, or solving problem after problem, we get bored. This is because, there is no way to visibly feel the progress, especially when you do not have the big picture.

If these principles based on pride, fear of shame, and sense of progress fail, you may try transcendental approach. This approach makes a commitment to almighty or your mother that, if you do not complete this, let that girl whom I love be married to someone else. Now, at any cost, I want to finish this because, I don’t want to leave that girl to chance. What if, just in case, God really exists and what if the loss of that girl was due to my breach of promise.

At the end, this post will be incomplete if I don’t tell you one important thing. Do not force yourself too much. Sometimes, your mind know what is right for you. If nothing works, just relax, take your time to find something that works for you. As they say it, “Successful people maintain a positive focus in life no matter what is going on around them”. Good luck.

How to write a good resume/CV?

I am back yet again with something which I believe is key to our success. Resume is different from CV. Yet, for this write-up, I am going to use the terms, resume and CV, in an interchangeable manner. If you are a fresher with not much industry experience, prefer to call it a CV.  If you are severely confused, name your document the way your recruiter wants it. I will not discuss the differences here. They are irrelevant and unimportant for CSE students.

In this busy world, the time to make decisions is shrinking. Recruitment decisions are time bound as well. In this context, your resume becomes a very important tool in making your first impression. Your resume is also circulated to your interviewer. Hence, it is important that you put some effort in designing your resume/CV.

Most of us use MS Word to write our resume. MS Word is a great tool. But, an even better tool is LaTeX. Create an account on sharelatex.com or overleaf.com. Go to templates. Look at some resume templates. Pick the one you like and modify it with your details. This is the simplest and most effective way of writing your resume. Some recruiters may accept only .doc format in which case, you must use MS Word. Nowadays, I do not maintain a .doc file at all. You can check my CV at vvtesh.co.in for a sample created through these sites. For more jazzy templates you may google.

When you use a template such as that in overleaf, you cannot go wrong with formatting. If you are using word, take care of alignment, uniformity of font, placement and length of lines. Some people have the bad habit of writing everything in small-case, and not leaving a space after period. Do not make grammatical errors. Get your resume reviewed by someone.

I do not include personal details such as Date of Birth, Religion, Marital Status, Language Spoken etc. These have become irrelevant to present day jobs. Write your resume keeping your employer in mind. Put only those details that he needs to know. This is not a testimony for your hard work. You don’t have to show off to anyone how many languages you know (for a typical IT job or a PhD admission).

A common confusion among freshers is that they run out of content. The ask, “How do I even fill two pages?”. A fresher is assessed based on his objective, education, certifications, skills, projects, performance in competitive exams, achievements, and any such relevant details. Ensure all these are there in your resume.  If it is still hard to fill, do not bother. One-page resume is just fine. Adding your small-size photo is welcome too. Resume is a live document. You should update it at least once every six months. It is a good way to check if you are doing something meaningful. Anything that goes to your resume is considered meaningful 😊.

When in doubt, just blindly follow a common template. Google for a student with similar background as you from places like MIT, Stanford or Berkeley. Usually, they have their resume reviewed by professional agencies. Just follow their template.

If these pointers helped, please leave a comment. Your long comments make my day. Thanks!

Just Got Married?

As you start your married life, keep these three things in mind.

Secret of long lasting happy married life lies in the tiny rituals you build. Small things like walking up to a small tree round the corner of your street, having a cup of tea while watching your favorite TV serial together, even a letter, or a phone call when done regularly, becomes a ritual. These rituals increase the bonding. Find and build a ritual that suits you.

How much ever you love each other, there will be arguments. There will be misunderstandings. Some may be light; some may be deep. Know that the probability of two people being mature and compromising at the same time is low. So, you be the one to compromise first.

Remember that you are entering a commitment to support and protect each other for life. This does not come with terms and conditions. At any cost, whatever may be the circumstance, do not do anything that hurts or brings shame to the other.

May God bless you with a long joyful life ahead. Wish you a very happy married life.