A solid math background is valuable, like all the other computer science and engineering fields. In addition to Calculus, important tools in computer networking and communications include the following:
- Linear algebra
- Probability and statistics
- Differential equations
- Numerical analysis
Good programming skills are also very important. Although a good programming background may not be necessary for some of the topics under networking (e.g., low-level communications, hardware issues), networking protocols and software require a solid programming background.
Most of the time, students have to develop skills in a new paradigm of programming: distributed programming. In distributed programming, replicas of the same of code run on different machines but work collectively to do a common task. This may sound like parallel programming, but it’s not quite the same. Most of the time, code replicated over the network treats each other as peers and exchanges messages to proceed on a common task, e.g., transferring data from one machine to another.