Masters is not very different from Bachelors but in India most students do Masters from IITs and there is a big gap to be filled from lower level college environment. Though GATE preparation is mostly enough a few extra stuffs might come handy during IIT life.
- Get used to unix commands: I first started using linux only in second year of Masters and though I have used it ever since I still think 2 years early start would have helped me a lot. Somethings to try-
Install linux (ubuntu or mint or any other) either as dual boot (preferred) or as VM. If you have a credit card you can even get Amazon AWS free for 1 year (it is good).
Try running a process in background.
Try ssh to/from another machine and run a process in background (cronjob, nohup etc. might be needed here).
- B.Tech. level C/C++ skills is enough. But depending on how you did B.Tech. you might need to hone it. Try implementing graph traversals, AVL tree etc. in C and even try using STL in C++ for doing so.
- Java might not be required for B.Tech, but if needed no one is going to send you for a Java coaching. It is actually a subset of C++ (Java is made to make C++ easier), and anyone coding in C++ must be able to use Java. Try some String algorithms in Java. Another use of Java is for programming interviews- it is much simpler (and faster) to use Java to write a code than with C/C++ and even in Google programming interview Java is preferred.
- $\LaTeX$ is a publishing tool which all CS students should have used. In IITs, it might be used for assignments, report submissions etc. So, try making your resume in Latex, convert your B.Tech. report to latex one etc. If you have used Mathjax on website (as in gateoverflow), it would be pretty simple.
- Plotting is a needed research tool. There are many shortcoming with using Excel and trying to use gnuplot might come handy during Masters.
- Data analysis is another demanding task- and trying some basic R commands- like finding mean, SD etc. is recommended. Trying Python might also be handy.
- awk - is fun to use. Use it especially if you want to process a text file line by line.
- Whatever you do an editor is important. Knowing commands of a smart editor like vim, emacs etc. can make your work more fun and easier. Using IDEs like Geany, Eclipse etc. are also highly useful as they will reduce many jobs in future.
- Being familiar with area specific tools- like installing LLVM if you are interested in Compilers, R language if you are interested in data analytic, making shared libraries if interested on system side, mastering regular expressions if working on text processing and similarly for other areas.
- If you are interested in system side, be familiar with gdb.
- Any project would require versioning and being familiar with git is an added advantage.
- For placements, aptitude- some companies ask CAT level questions - is required. Also, for big software companies, dynamic programming is important. Do practice some questions like sudoku solving using backtracking also. These questions can also help.
- In most places, you will have time for deciding the area of work. Still, if you can find a suitable prof to work under early, it is a good thing. Otherwise also, you can do this in first year.