Learning Networking Fundamentals at University?
One of my readers sent me this interesting question:
It begs the question in how far graduated students with a degree in computer science or applied IT infrastructure courses (on university or college level or equivalent) are actually aware of networking fundamentals. I work for a vendor independent networking firm and a lot of my new colleagues are college graduates. Positively, they are very well versed in automation, scripting and other programming skills, but I never asked them what actually happens when a packet traverses a network. I wonder what the result would be…
I can tell you what the result would be in my days: blank stares and confusion. I “enjoyed” a half-year course in computer networking that focused exclusively on history of networking and academic view of layering, and whatever I know about networking I learned after finishing my studies.
I checked the curriculum of my alma mater and things are getting both better and worse. Instead of a single course they offer four communications-related courses… as an elective module, which means that most of the graduates could be hard-pressed to recognize an IP address if it stared at them from the source code. One of those courses focuses on pure networking, another one is a distributed systems course (covering everything from NUMA to energy efficiency of distributed computing), the third one is a modeling course focusing on queuing theory, and the fourth one covers wireless and mobile networks.
Also keep in mind that each CCNA-level course has approximately the same length as one of those courses, so you can’t expect someone finishing them to be much beyond the CCNA level of understanding.
On the other hands, Physics is a mandatory course, so after getting a Computer Science degree you’ll know how to compute acceleration, forces, and momentum (maybe that’s really important if you decide to start developing first-person shooter games), but not how to build a well-behaved distributed application. No wonder the problems keep getting pushed down the stack and software developers keep reinventing networking using NAT and PBR. Good job.
I wonder whether the situation is better elsewhere – your comments are most welcome.
So, you get an enthusiastic engineer eager to work on computer networks and slightly underprepared after finishing a 3-year university program. What can you do? If you’re in a small generalist IT team your best bet is to assign them a mentor and hope for the best, but if you need more than an occasional new hire every few years you can do much better: train them.
When I was still working for a reasonably-sized system integrator we created our own training program, used our Cisco-certified instructors to run new-hire internal courses, and concluded the bootcamp with a hands-on exercise that included designing a small network, implementing it (using actual hardware so they figured out the difference between Ethernet and power cable), and presenting the solution to the customer (yes, we also worked on their presentation skills).
It’s not that hard to create your own version of the same idea, all you have to do is to realize you’re in it for the long run and should invest into engineers you will need for the complex projects years down the road… and if you need someone to help you get started, I might know just the right person to do it.
This is not really a surprise for me. Your comments apply to almost any CS topic that students learn at university. On one hand universities courses aim at giving to the students courses on the principles that last for many years and illustrate them on actual technologies, knowing that when the students graduate the popular technology might have changed. The main thing that students learn at university is to become better learners by having a wide background. If industry accepts that and provides some training/mentoring when students start their professional career, both students and industry benefit. If industry believes that students will be immediately skilled to the current technology, the result will be far from perfect...
Ivan. Great observations! No matter that fundamentals matter, the target audience for physics (of DWDM wavelegths etc.) is too small and the content is most probably too specific even for Computer Science students. Well, some queueing theory ... maybe more applicable both in networking as well as in software. I agree - the internal mentored programs are the ones that finally put all the pieces together, put them in the context of what the network engineers will really face, and add some people skills on top of that - so that they feel comfortable when encountering problems and customers :-)
Ivan, nice observation. Fundamental concepts are essential! My data sharing experience at university was paper-tape and punch cards ..... and now.....in only half of a lifetime. :-)
Hi all,
University gives you the skills you need in order to deal with complexity. University cannot provide the granularity and the verticality a good networking course requires. That's a company's duty and it's thus mandatory for a company to train employees. I remember being surprised at seeing the best programmers being people with a background in philosophy or physics (!!) when I was in Italy.
Also, there's a massive difference between the pragmatic approach of the Anglo-Saxon universities and the theoretical/pure approach of European universities with no multiple-choice exams but old fashion written and oral parts for any of the exams. I am more than convinced that the best approach ever is for a company to hire youngsters with a pure/theoretical academic knowledge and to provide networking training rather than cutting corners (training is perceived as a cost rather than an investment..) by looking for someone half-baked networking-certified as part of a pragmatical/practical degree course itself.
This is how human brain works afterall - this is not new as it is what neurosciences say and what we see applied in neural-networks/deep-learning with the issue of overfitting vs generalisation. Doing a whatever deep/vertical networking course at university and giving up on or stealing time to theory is detrimental since that leads to overfitting. What I mean is that you end up with half-baked graduates/employees since they have overfitted on the CCNA whatever data as such !!! The damage is that companies think they need no training or little training or, even worse, they are trained but they are not as trainable as someone with a strong theory knowledge as they have overfitted on the CCNA course since they ‘memorised’ it. They lack the required generalisation skill that only a pure theoretical university degree can give you. So, no corner-cutting please to save money as it’s not a savings at all. Do employ a graduate with a strong classical/pure academic knowledge and then send him/her on an Ivan's course for instance and your company will fly !!!!!
Cheers/Ciao
Andrea
There are some schools out there who have recognized this gap and try to balance network fundamentals (full courses dedicated to CCNA/CCNP) with computer science fundamentals and problem solving. For example, in Canada there's a joint public university/college program: https://bitdegree.ca/index.php?Program=NET