Thursday, September 18, 2014

It is Important to Network With People to Create Lasting Relationships

Why should I network with people?

You should people network for multiple reasons.

1.  Locating jobs (before they are posted to the Internet.)
2.  Advice you can't find via an Internet search.
3.  Mentorship.
4.  Trading favors.
5.  Helping fellow IT people.

Locating jobs (before they are posted to the Internet)

If you want to find an interesting networking job before it is posted to the Internet, you need to know people in the industry who can tell you about these positions.  If you see a position on a job board, it is always good to know people in that company, or to have contacts who know people in that company.

Advice you can't find via an Internet search

Not everything is Google searchable.  For example, let us say you want advice about using Extreme or Cisco switches in your wiring closets.  Instead of listening to the usual sales pitch from your vendors, you need friends who have these devices in production and can tell you from their experience which product they think is best.

Mentorship

If you are just starting out in the networking field you probably want someone who you can talk to about your hopes, your fears, your career trajectory, the politics in the office, etc.  The more people you know in the industry the greater the chance you will have in finding someone who can help you achieve your goals and help you overcome your hurdles.

Trading favors

You never know when you are going to need a favor. It could be 12am in Chicago and your core router failed to fully reboot on a weekend.   You don't have any remote hands, but you can ask your buddy who lives in Chicago to do you a huge favor by consoling into it.  In return you can send them a gift certificate to the nicest restaurant in the city.

Helping fellow IT people

The old saying is,"You got to give before you get."  If you are friendly and assist people in their troubleshooting, people will return the favor in kind some time in the future.  It also shows other people (e.g., managers) that you are mature enough to become a leader.

Everyone was a newbie at one time.  Making connections can also be about helping a new person in the industry become a better, smarter, more mature network engineer.  You never know if some time down the road they become important in your industry.

Who do you know?

It is a really good question to ask yourself.  Make a list of everyone you know.  Make a subset of that list of people who are in IT.  From that subset make another subset of people you know in the networking industry.

How big or small is your networking industry subset?  If you have a large pool of friends in the networking industry, you probably do not have a difficult time finding jobs, getting advice, and finding mentors.  If you have a small pool of friends in the networking industry, then you need to work on making a few more contacts.

But how do you make more contacts?

Make friends with people in your company

One of the easiest ways to make contacts is to help or train people outside of your networking group.  Many times you will be working/troubleshooting with other IT teams - Unix, telecom, database, applications, and help desk to name a few.  Having a good working relationship with people you work with will help you in the future when you leave the company for greener pastures.

Create lasting connections with customers

Another way of making contacts is to do your absolute best for the customer.  Being good to your customers can mean making a lasting connection with them, long after you have left the company.  The customer may like your how you solve their issues so well that they steal you away from the company you work for!

Group meetings - local, national, or international

One of the best ways is to meet people is to go to local, national, or even international meetings.  If you are a network engineer, you could locally look up a Cisco Users Group (CUG) in your metro area.  If you want to meet network engineer from all over North American, you could go to a North American Network Operators Group (NANOG) conference.  If you wanted to go to an international conference, you could go to RIPE, APNIC, or any other numerous meetings around the world.

Who knows you?

While reaching out and making contacts is great, one of the best ways to make contacts in your industry is to market yourself.  There are numerous ways you can promote yourself as an expert in your field.   You could publishing your writing on the Internet and have Google index you.  You can present at conferences in front of hundreds of people.  You could teach about technology through short YouTube videos.  You could become an instructor and teach classes on Udemy, Skillsfeed, or other online video classrooms.  The possibilities are out there for you to grab.

Recommended reading

Jeffrey Gitomer's Little Black Book of Connections: 6.5 ASSETS for networking your way to RICH relationships by Jeffrey Gitomer

Dig Your Well Before You're Thirsty: The Only Networking Book You'll Ever Need by Harvey Mackay

Wednesday, September 17, 2014

Writing Documentation is Good For You And Your Network Team

There are a number of reasons why you should write documentation for your network.  

You will not remember how things work

You may think you will always remember how your network runs, but as your network scales up, the less you will remember every single part.  If you start documenting everything you have deployed, changed or upgraded, you will not have to remember everything in exact detail.

You will not have new engineers asking as many questions

It saves you time and effort if you have documentation for new engineers to read.  They in turn will usually only ask you questions that are either not in the documentation, or they will ask questions for clarification purposes.  These types of questions are great because it creates a better repository of documentation.

It is 3am, their is an outage in the network, and you are sound asleep!

Being sound asleep is a great thing.  Being asleep means you have written the network documentation so well that the on-call engineer does not need to call you.  The on-call engineer also will not have to waste time trying to understand the part of the network that is having the outage because they have read the documentation.

Your management will think highly of you

Managers enjoy documentation because it helps them understand what you have done, especially with project-based work.  Management loves it when outages are resolved quickly because the documentation explained everything. You can then use your documentation as proof you have done a good job when you have your yearly review for a pay raise.

Recommended reading


Handbook of Technical Writing by Gerald J. Alred et al. 

Monday, September 15, 2014

Learn the C / C++ Programming Languages

You may think to yourself,"Why C/C++ as a programming language?  There are so many other languages that are hot/cool/interesting, like Ruby or Python.  These languages are better tailored for my needs."  These are good reasons, but you still should learn C.

Compiling open source applications from source

Not every open source application has a binary package.  Quite a number of them still need compiling from source to work correctly.

Porting an application from BSD or Linux to _____

Unix is not just BSD or Linux, there are multiple other flavors:  OS X, Solaris,  AIX, and HP-UX to name a few.  If you are tasked with deploying network applications on these different Unix flavors, you will be using your C programming skills to port these applications from the source code.

Open source network operating systems

Quagga, Bird, Vyatta, XORP are open source network operating systems used by multiple companies.  These programs are in C/C++.  If you need to troubleshoot these applications, you are going to need to know C.  For example, you understand that a certain type of packet crashes your router.  By reading through the source code you discover the bug has to do with a heap allocator.

Software Defined Networks (SDN)

If SDN become a major part of networking, network engineers in the near future will have to know a programming language.   This person will need to have in-depth and wide knowledge of network engineering as well as knowing a C-like language to program the SDN controllers and related components.

Shout-outs

Thanks to Reddit's /r/networking users, ArghCisco and Snowbirdie, for indirectly helping me with this blog post.

Recommended Reading

The C Programming Language, 2nd Edition by Brian W. Kernighan et al.

C: How to Program, 7th Edition  by Paul Deitel et al.

Thursday, September 11, 2014

Scripting: A Great Tool on Your Networking Belt

As I wrote in the blog post, Learn Unix and Stand Out From The Rest, the biggest reason you write scripts is to automate tedious tasks. But what scripting languages should you learn?

Unix scripting languages

Graybeards are going to grumble at me for my opinion!  For learning Unix scripting I recommend whatever shell dialect you feel best suites you.   If that means you become an expert in bash instead of sh or tcsh, more power to you.  :-)  

Two other languages you should learn are sed and awk.  These two text processing programs are very popular in the Unix world.  Sed is for editing streams of text and is commonly used for substitution programs, replacing one block of text for another.  Awk is also a text processing program, but it can do other things that sed cannot, including automatically opening and closing files, reading records, and breaking records up into fields.

Windows scripting languages

For Windows, the latest technology is PowerShell.  I will admit I have never used PowerShell, but I have read many posts by Windows systems engineers and it has been a huge benefit to them.  If you are already comfortable writing in .NET then PowerShell is very easy to learn.

Other scripting languages

The other two most popular scripting languages for network engineers are Perl and Python. Both of these languages work on Unix and Windows.  Unlike plain shell scripting (in Unix), Perl and Python allow you to do other things that plain shell scripting cannot, like writing scripts to contact devices on your network.

Regular expressions

While learning any scripting language is important, you also need to understand how regular expressions (abbreviated regex or regexp) work.  Regular expressions are a sequence of characters that create a search pattern.  These search patterns are mainly used for pattern matching with strings, e.g.,"find and replace" operations.   You will use pattern matching for BGP AS-Path access lists.

Recommended reading

Books:

Learning the bash Shell: Unix Shell Programming by Cameron Newham

Mastering Regular Expressions by Jeffrey E. F. Friedl

sed & awk by Arnold Robbins

Web sites:

Cisco: Regular Expressions by Cisco.com

Linux Shell Scripting Tutorial (LSST) v2.0 by Vivek Gite

Sh - the Bourne Shell by Bruce Barnett




Wednesday, September 10, 2014

Learn Unix and Stand Out From The Rest

Before I became a network engineer, I became experienced using multiple flavors of Unix.  At this time (the 1990s) Windows machines could barely get on the Internet (anyone remember Trumpet Winsock?)  As my career progressed, I noticed that I was one of the few people on the team that understood Unix.  At multiple companies, management tasked me to administer the Unix boxes running our network applications.  I even got hired at a company as a network engineer because they needed my Unix skills.  Therefore, here are a number of reasons why you should learn Unix.

Unix as the platform of choice

In many companies Unix systems exist to support network operations.  Here are just a few applications where Unix is the favored platform:

  1. Trusted hosts / jump boxes
  2. RADIUS / TACACS / Cisco ACS
  3. Syslog
  4. Traceroute / MTR / Ping
  5. DNS
  6. SNMP traffic monitoring applications (MRTG, Cacti, Observium)
  7. NMAP
  8. RT
  9. RANCID
Many network engineers will only learn a half-dozen commands to do the bare minimum. However, if you want to get ahead of the pack, a background in Unix will allow you to quickly navigate network environments that run Unix.  Knowing how to use and configure these Unix applications will help you do a better job of maintaining your network.

Management loves hearing "free" or "cheap"

Many Unix network applications are open-source and therefore free or cheap to use.  While your company could buy very expensive network applications (e.g., SolarWinds), you can impress your management by showing them how open-source tools will save the company money.

Quickly learn Unix-based network operating systems

Multiple network operating systems use Unix under the hood. To name a few:

1.  Juniper JunOS
2.  Arista EOS
3.  Netscaler NOS
4.  Checkpoint IPSO

While they all have a CLI that makes their devices easier to use, sometimes you have to go down to the Unix command shell to troubleshoot and get the information you need.  If you already know Unix then troubleshooting under the hood becomes a piece of cake.

Scripting and automating tedious tasks

Unix scripts are valuable tools to automate tedious tasks.  Scripting makes you more efficient and largely eliminates human error when configuring networking devices.  Two of the main uses of scripting tools is to do bulk configuration changes and configuration backups of your whole network.  Instead of doing the same grunt work repeatedly, scripts allows you to concentrate on more important projects, like deploying the network in your new data center.  

Career advancement

Having Unix experience will set you apart from your coworkers.  Using scripts and network tools to make your job more efficient is a huge plus to managers.  These managers in turn will usually give you more interesting tasks.  Becoming more valuable to your employer increases your job security and will give you a greater chance of getting a promotion or getting a bigger raise.

Recommended reading

I learned Unix the hard way because "back in the old days we didn't have all these newfangled easy-to-read books that you could two-day Prime on Amazon."  What this dinosaur had to do was go through the three main system software directories, /usr/bin, /usr/local/bin, and /sbin and read the man page for each program.  Very dry reading, but I did learn a lot.

Books: 



UNIX and Linux System Administration Handbook by Evi Nemeth

Web:

UNIX Tutorial for Beginners by Michael Stonebank

The FreeBSD Handbook by The FreeBSD Documentation Project

The Debian Administrator's Handbook by Raphael Hertzog





Tuesday, September 9, 2014

Why You Should Obtain Your College Degree

To degree or not to degree - it is a topic that is hotly debated.  Many people in the industry do not have a degree and are doing well for themselves. Therefore, why should you go (back) to college, whether it is to obtain a two year associates or a four year degree?  A degree can cost a lot of money. However, there are a number of compelling reasons as to why you need that piece of paper.

You are competing against college graduates

If you are just starting to try and crack into this industry, you will be competing for jobs against college graduates.  Unless your talents or background make you stand out, hiring managers and HR may discount your resume for a person who has a degree.

College graduates earn more

The average college graduate makes about $20,000 more each year than those with only a high school diploma.

Limited job choices and glass ceilings

A lack of a college degree can limit your choice of jobs. Many professional and business jobs require a college degree.  You may protest and say that you have done well getting hired at numerous IT jobs - but what about those positions you did not get hired for or never heard back from in the first place?

If you already have a job and want upward mobility to a more senior or management role, a lack of a college degree will hurt your chances of getting the higher level position. This unseen barrier is known as a glass ceiling.

Measurement of achievement

Obtaining a high school degree does not show you have the skills that hiring managers are looking for. Many news articles have discussed how a certain percentage of high school students are graduating with only a 4th grade reading level. Therefore how can a manager gauge your skills? A college degree is a measurement of performance when a hiring manager has few metrics to gauge you on. Obtaining a college degree proves that you can read/write well and that you have developed reasoning skills to function in the work place.

Commitment

Finishing a college degree shows hiring managers that you are committed to starting and finishing a project. A college degree shows that you can set goals and achieve them. It also shows that you have the mindset of a doing something good for long-term gain.

Fundamental skills

If you obtain an IT-related degree (e.g., Computer Science), it will give you a background in computer fundamentals, whether that means understanding algorithms or handling interactions with your teammates on a large project for a web development class.

College internships

If you do not have any work experience in your career, many colleges provide internship programs. Interning offers you a direct link to employers. Being an intern is an excellent way to get your feet wet in the workplace.

Monday, September 8, 2014

An Outline For Future Blog Posts

I created this blog because I keep hearing from NOClings and help desk types that they cannot break out of their job and become a network engineer.   Here is an outline of what I am going to be blogging about in the (near) future.  This outline can change at any time.  If you think something should be added and discussed, feel free to contact me and let me know.

  1. Get a two or four year college degree 
  2. Know your Unix!
  3. Shell scripting
  4. Learn C as a programming language
  5. Write documentation
  6. Network with people
  7. Learn how to make cables
  8. Ask for networking grunt work
  9. Get your networking certifications (CCNA / JNCIA)
  10. Start labbing with GNS3
  11. Buy some cheap networking gear
  12. Subnetting
  13. Read the documentation!
  14. You MUST know how to troubleshoot
  15. Protocols
    1. Layer 1 protocols
      1. T1 / T3
      2. SONET
      3. Fast Ethernet
      4. Gigabit Ethernet
      5. 10 Gigabit Ethernet
    2. Layer 2 protocols
      1. Ethernet
      2. VLAN
      3. Spanning-Tree
      4. 802.1q / Trunking
      5. LACP
      6. Q-in-Q
      7. CDP
      8. Frame Relay
    3. Layer 3+ protocols
      1. TCP / IP
      2. UDP
      3. Static Routes
      4. OSPF
      5. BGP
      6. MPLS
      7. HSRP / VRRP
      8. QoS
      9. ACLs
      10. NAT
      11. NTP
      12. SNMP
  16. Applications
    1. Traceroute
    2. Telnet
    3. SSH
    4. Ping
    5. DNS
    6. NMAP
    7. RANCID
    8. Graphing applications like MRTG
    9. Syslog
    10. TACACS 
    11. RADIUS
    12. Cisco ACS
    13. Ciscoworks
    14. Visio
    15. Packet analyzers (e.g., Wireshark and TCPDump)
  17. Other networking devices / protocols
    1. Netscaler
    2. F5
    3. TDM Gear (SONET / DWDM)
    4. Riverbed
    5. Bluecoat
    6. IPv6
    7. VoIP
    8. Wireless
    9. Firewalls
  18. Soft skills
    1. Have the best resume possible
    2. Improve your interviewing skills
    3. How to find the hiring manager
    4. What questions to ask the interviewer
    5. Negotiating your salary
    6. Is this potential job right for you?
    7. Emotional intelligence in the work place
    8. Time management
    9. It's OK to make mistakes.
    10. Politics