How to Become a Better Networking Engineer

Got an interesting set of questions from one of my readers. He started with:

I really like networks but I don't know if I am doing enough for this community. Most of my work is involved with technologies which are already discovered by people and I am not really satisfied with it.

Well, first you want to decide whether you want to be (primarily) a researcher (focusing on discovering new stuff), an engineer (mostly figuring out how to build useful things by using existing stuff), or an administrator (configuring stuff).

The terminology used in IT in general and networking in particular is highly confusing. Most people calling themselves engineers are not doing anything remotely resembling engineering. See this definition and tell me what scientific principles we use in our jobs. It's mostly rule-of-thumb, best current practices, opinions, and vendor validated designs.

I can't comment on what the best way forward would be if you decide to become a researcher. Unfortunately I grew up in environment where academic research and reality didn't have too much in common, and decided to focus on things that produce real-life results. In the meantime I met numerous academic researchers that I highly respect because they're focusing on real-life problems. My favorite: the team from the University of Louvain (or wherever they are these days). Anyway, that train left the my station eons ago. On the other end of the spectrum, I also met academics that were selling snake oil to attract VC funding (SDN comes to mind), but that's a topic for another blog post.

In any case, there are tons of different mechanisms to contribute to the community:

  • Mentor younger engineers;
  • Educate non-networking professionals how networking really works;
  • Blog about your experiences (but make sure you’re technically accurate);
  • Write documentation for open-source software;
  • Create or contribute to open-source software (it can be as little as one-line bugfix);
However, I don't have any good ideas as well so I don't know what to do. I read articles and books on networking but I don't think that's the answer to become a better "network" engineer. How do you think I should go about this?

There's a simple trick I used all my life: be curious.

Try to understand how things work - not only by reading books but by doing controlled experiments.

Assuming the people creating things aren't stupid (which isn't always a given) and know what they’re doing (sometimes a questionable premise), try to figure out why they implemented them the way they did, and what trade-offs they had to make.

From your understanding of how things work, try to figure out how they'd behave in weird conditions. Validate that.

Ponder RFC 1925 Rule #8.

Assuming you have a pretty good understanding how a technology works, figure out the safest (or optimal or ...) way of using it.

Consider RFC 1925 Rule #12

There are always tradeoffs. If you haven't found them spend more time looking for them.

Time to think about RFC 1925 Rule 10.

Don't be clever. MacGyver designs inevitably result in network meltdowns. Also, you want to be able to go on holidays and not receiving a panicky call at 2 AM for a week or two.

Think some more about RFC 1925. Focus on Fundamental Truth #3.

Don't forget it's all about solving real-life problem. Although most of us work because we like technology, we still get paid because a business needs us.

Read RFC 1925 again. Contemplate Rule #1.

After a long while, you'll start seeing repeating patterns where everyone else thinks the unicorns are dancing with fairies. You reached the level of RFC 1925 Rule 11.

Finally, there's RFC 1925 Truth #4. Practice, practice, practice...

You might also want to browse through this long list of related articles.

3 comments:

  1. Read.
    A lot.
    Too short list follows.
    Everybody reading this comment could add a few to help our friend in his quest.

    Incredible free content on the web:

    Security Engineering - Ross Anderson
    www.cl.cam.ac.uk/~rja14/book.html

    The RFC series (lots to learn in the earlier ones)
    tools.ietf.org/rfc/index

    wikipedia

    Not free but your library might have them:

    Richard Stevens
    -Unix Network Programming
    -TCP/IP Illustrated

    Douglas Comer
    -Internetworking with TCP/IP: Principles, protocols, and architecture

    Rich Seifert
    -Gigabit Ethernet: Technology and Applications for High Speed LANs
    (in which you will learn that in IEEE standards "may" and "may not" are equivalent!)

    Andrew Tanenbaum (creator of Minix, which runs on most new Intel chips)
    -Computer Networks

    Fyodor
    -Nmap Network Scanning: The Official Nmap Project Guide to Network Discovery and Security Scanning

    Christopher Alexander
    -The Timeless Way of Building

  2. Brilliant. To become better network engineer, I think we should also read Literature and Philosophy. Knowledge is finite, you learn something and you are done but cognition is infinite - curious to understand.
  3. Radia Pearlmans books
    Charles Spurgeon for ethernet
    get802 docs
Add comment
Sidebar