What do network engineers do?
Network engineers design and implement network configurations, install network hardware, troubleshoot performance issues, carry out network monitoring and configure systems such as wireless, load balancers and firewalls.
Network engineers are responsible for ensuring connectivity for users of a network from wherever they are in the world to the resources they need access to.
Modern day network engineers have to deal with so much more nowadays.
20 years ago a typical network was constrained to a building with a firewall protecting the perimeter and if you wanted to access the internal resources from the outside you would require a VPN to connect in through the firewall.
Today the modern network can span various public clouds and with users requiring secure access to both internal and public cloud resources the job of a network engineer is becoming more challenging every day.
Do network engineers code?
Coding is fast becoming an essential skill for network engineers. With the sheer amount of systems and devices that network engineers need to configure and manage most network engineers are using network automation and making coding part of their standard toolset.
The most common programming language for network engineers are:
Python for network engineers
Python is the most common programming language used by network engineers today. It is simple to understand and as it’s a scripting language is perfect for performing network automation tasks.
Imagine you have to configure the same setting on 100 routers, do you log into all 100 routers and make the change by hand? This would take on average about 1-2 minutes per router making the task take 2-3 hours. There is also the chance that you will not configure each device exactly the same and there is certainly room for error.
Instead, you could write a Python script that would log into all 100 routers and make the change, save the config and take a backup before and after the change, all with 100% accuracy.
Whilst it takes a bit of time to create the inventory and original script, once you have created it you can use it over and over and save yourself hours of manual configuration.
Golang for network engineers
Golang or Go for short was developed to overcome some performance issues at Google. The programming language was written with the extra performance of multi processors in mind and is designed to run quickly.
It is slowly being adopted by network engineers and is a great second language to learn after Python. If speed is a priority for your network automation then you should seriously look at Go. It really depends on your use case. If you only have 100 devices to configure and are not concerned if it takes 5 minutes Python is perfectly acceptable or even a tool like Ansible but if you have to configure 1000+ devices and you need it done quickly Go is a great alternative to Python.
What skills do network engineers need?
Primarily network engineers need to have solid analytical and problem-solving skills. You need to have a certain mindset to become a network engineer. But if you like the challenge of providing connectivity for users of a network then becoming a network engineer is a great career choice with many varied opportunities and great pay.
Network Engineer skills include:
- Cabling & Patching
- Hardware installation
- Switch configuration
- Router configuration
- Routing protocols
- Wireless configuration
- Firewall configuration
- Data Centre design
- Cloud skills
- Load balancer skills
- Network Automation
The list is endless but most network engineers start by becoming a CCNA (Cisco Certified Network Associate) With Cisco being being the biggest hardware vendor it’s a great starting point to learn routing protocols, basic routing and switching configuration and some basic network automation skills.
However the breadth of skills that a network engineer needs to know in 2023 is vast with more and more network vendors requiring skills on their hardware and public and private clouds and security becoming a critical skill. Most network engineers get a basic understanding from the CCNA and will then specialise in a certain area, as you cannot learn it all!
One area of massive growth is network automation and a lot of graduates are now coming out of university with a computer science background and wanting to become a network automation engineer with very little knowledge of how networks work.
This is a good and bad thing as it’s great they have all the software skills but concerning they do not understand how a network really works.
There are many levels of network engineers with most taking an entry level certification like the CCNA, there is then a professional level certification with the CCNP (Cisco Certified Network Professional) and the highest level of certification is the CCIE (Cisco Certified Internetwork Expert)
However, this is becoming less popular as the pinnacle of a network engineers qualifications as it just focusses on Cisco and with so many other vendors and technologies to learn and coding becoming an integral part of the job. A lot of engineers are choosing to spread their knowledge over many technologies instead of focussing just on Cisco.
Is network engineering a good career?
With 1000’s of open network engineer positions networking is absolutely an occupation worth considering. With good pay, constant challenges, job security a career in network engineering could be a great option. Also with the flexibility to work from home once you reach a certain level it is fast becoming a very popular choice of career.
Whatever path you take though, a career as a network engineer can be very rewarding and also once you gain experience can pay very well.
I have been a network engineer for over 20 years, I started with CCNA and passed my CCIE in 2015. I started off doing hardware installations, connecting cables and racking switches and routers, since then I have designed and installed networks for all types of industries from healthcare to finance. I have also been involved in some very large data centre migrations. All of it has been very rewarding and also very challenging.
If you choose to become a network engineer be prepared to be always learning and be able to take on a different challenge every day.
In the last few years I have been 100% focussed on network automation and now work as a Network Devops Engineer.
If you want to learn more about network automation you can check out my network automation courses or have a look at my Ansible training to get you started.