I'm about to start applications for network engineering positions. I do litigation/cyber fraud forensics.
My SQL skills on a technical level are pretty decent, I have a SQL Expert cert through Oracle, although almost 0 database management experience, however I'm taking a graduate level SQL database enterprise course. I've done machine coding and routines using SQL with VBA in various positions.
As a network engineer I'm wondering if Linux or Python is better. I read that python is good for SD WANs and automation.
However I've recognized Linux can be used in the creation of virtual network functions, or virtual devices. I'm interested in learning network administration (ip addressing, SNMP, building Linux firewalls ~ I'm currently learning and refining skills using freeradius through Ubuntu). How practical is doing all of this on Linux used in the workplace? I read online they suggest learn Python from several forums, however to me it seems the tasks mentioned above make Linux a valuable skill to have as a network engineer. And maybe the Linux skills could complement SQL in database management or call on the SQL database to be used? However I don't want to learn Linux and not use it. Python from what I've read would be readily applicable in writing various scripts that can automate tasks and be reapplied, which would make my employer appreciate those skillIs.
I do not wanmt to learn both right now.. Rather focus on learning and becoming good t using 1, however its really only worth it if I can apply it in the workplace.
Does any one have advice? Their thoughts or experiences or what either one is used for on a day-to-day or month-to-month use in the workplace?
If you need to choose, no doubt Python is better and way more importante for networking.
But, spend time in Python when you are confident in networking. You mencioned sdwan which is realy great and python is important to automate task using vManage API, but how good are you in sdwan?
I think Python is really important and can make huge difference for networking but dont forget about networking. There are a lot o technology coming besides sdwam like sda and aci. If you master this technokogy, Python can or not be important.
If you have to learn just one then choose Python as it is more directly relevant at the moment to networking.
That said I started my life in IT as Unix admin (Solaris) before moving across to networking and I have found it a very useful skill to have eg. all my scripts etc. run on a CentOS VM and it certainly helps to be comfortable on the command line in Linux when you do this.
And it never hurts to understand how the networking works for multiple operating systems because after all the network does not exist in isolation, it is there to server a purpose of connecting end users with applications etc.
learn Linux or Python
If you looking to learn Python, you need to know Linux too as a basic Operating system, Until you run Python scripting in Windows Box.
For most of the use cases - i also use Linux to use Python script, its much faster, and also you can create a lot of test environments to test your scripts (compare to Windows - my view)
With the network engineer experience, having other area experience/hands is also good to solve many other issues in a real environment, to prove that it was not a network and security issue.
Linux is a tool that is Opensource and you can build a lot of network tools for your company to save a lot of money. and Most of the Cloud-based system underlay built on top of Linux based code, which adds advantages there.
This is my view and suggestion based on your post only.
I have another question
If I put in 3 hours a day, 21 hours a week, how long would it take for me to be able to apply Pythin meaningfully, even for basic use as a network engineer, to the point where I can put it in a resume.
In example LACP bundling, network logging etc.
Just want to remind you this is a Cisco technical Forum(we suggest best what we can to guide you in a good direction - we believe). If you are looking for serious learning focus on learning and improvising skills, by working on your goal. or Opt for a trainer to assess your skills.
It all depends on what situation you are in, it may take days to Months...so no one can assess individual capabilities.
Depends on how much general scripting/programming knowledge you already have and how quickly you learn which is impossible for us to guess.
Python is not a difficult language to start with especially if you are only using objects etc. rather than designing your own classes etc. and you can become relatively productive quickly.
If you are looking to automate then recommend you look into the Netmiko module which simplifies connecting to network devices etc.
I've started this video course which is a 107 videos course about 10-25 minutes a vid, on networking in Python through Linux mint
In between video sets I'm reading general Linux information on some sites, and I'm practicing randomised skills in Linux from
for example disk partioning
then will move onto a book for python or another video series as well as a good textbook for Linux for network engineers which i've already obtained and went through the contents page
Given from what I've seen from the 107 video set, and the Cisco Devnet website (where I practiced python in windows on a laptop vs on my Linux VM on desktop) Linux seems like a much better choice, especially if I decide to learn networking concepts aside from python.
Given everything I've mentioned I do have another question as I decide to dive in and spend hundreds of hours in the next few months learning this stuff. Will Linux and Python be relevant in network engineering in 10 years from now? If so it only makes sense for me to devoe pretty much all my free time to Cisco networking and Linux/Python until I become productive. If not it seems a bit depressing to know I have to spend hundreds of hours at least in next few months to learn Python/Linux after Ive been studying 10 hours a day on Cisco over last 4 months.
I just got my first script to work, which I changed from python2 to 3 and now it prints output to terminal line
Does anyone have any decent recommendations python through linux scripting books for beginners for network engineers?