5 STEPS THAT YOU CAN TAKE TODAY TO TRANSITION YOUR CAREER TO FULL STACK NETWORKERAfaq Khan
In this article, I will discuss 5 steps that you can take today to start working your way to a Full Stack Networker or NetDevOps or a Network Automation Engineer.
In one of the Cisco’s survey, published as L@C Customer Insights as part of a Cisco live presentation, it was mentioned that expert level network engineers consider network programmability, cloud and IOT to be the top three areas in terms of learning and career progression. If you’re not convinced, you can look around for network automation engineer jobs.
As I have discussed before, unlike popular opinion, full stack or NetDevOps is NOT just network programmability, but refers to the following domains of knowledge.
- Linux and open source (Linux Fundamentals and Shell Scripting)
- DevOps tools and culture
- Coding and Scripting
- Networking Fundamentals
Now, depending on your background, here are the five steps that you can take today to transform your skill set and transition your career from where you are to one being a full stack networker or NetDevOps.
- Create a learning plan
- Create a virtual lab environment or a learning sandbox
- Practice coding
- Find a mentor
- Learn necessary concepts
Let me break these down for you.
In every self-directed learning plan, the most important thing is WHY you want to do something that you want to do. What am I talking about? You need to define your purpose for learning and how achieving your career goal will make you feel emotionally (as they say, 80% of anything is psychology and 20% is the mechanics). This will also allow you to stay motivated through inevitable setbacks throughout your journey.
Beyond that, you need to set SMART goals. For the uninitiated, this means setting Specific, Measurable, Achievable, Relevant and Timely. You learning plan needs to help you structure and schedule your learning sessions. What would be totally awesome, if you can find someone who can help provide some learning accountability or you can join a community like we have in the form of full stack networker community.
Beyond learning concepts, you need to set aside time for getting your hands dirty with your own virtual lab environment. You can add the four areas that I mentioned above as your key learning topics (Linux and open source etc.).
Create a virtual lab environment or a learning sandbox
This is a big one to implement right after you have learning plan in place. This is your portable stack with everything inside that you need to apply your learning in sort of a real world.
You can use the latest versions of the following to build your environment.
- Ubuntu or CentOS Linux
- Docker Composer
- Build Server (e.g. Drone or Jenkins)
- Version Control System (e.g. Gitea or Gogs)
- Python library and IDE (e.g. PyCharm)
- GNS3 (free) or Cisco VIRL (paid)
- Vendor provided networking device images (Juniper, Arista and Cumulus – free, Cisco – everything is paid).
Depending on your background, it may be a little more challenging to learn coding. However, more than ever, there are tons of resources available for you to learn coding. Let me also clarify one thing here. Your goal here is to NOT become a seasoned backend coder who will write real application code, but more of someone who knows how to write scripts in shell scripting, Python, Ansible and YAML as well as understand JSON/XML encoding formats.
For example, to learn python, you can refer to wonderful resources summarized here.
Again, your job is not to do “network programming” but rather make network programmability work by way of above tools.
Find a mentor
Mentoring is not as much about knowledge and skills as such, but more about professional socialization and may be personal support that you can utilize to ensure your success. As they say, “better than a thousand days of diligent study is one day with a great mentor”.
If your weakest area is coding, then find someone who is a great coder in Python and can make time available for you.
Learn necessary concepts
Now, in order to round it all out, you need to obviously get busy with reading some of the domains that are unfamiliar to you. Depending on your background, it could be that you need to learn networking protocols and devices, or python data structures or loops or conditionals or perhaps you need learn how continuous integration and continuous delivery and DevOps tools are integrated to work together along with a variant of Git.
Now, last but not least, I invite you to come and join us on our Youtube channel where I will be discussing various NetDevOps topics over the next weeks and months.