Which programming language is more relevant for networking professionals?

lagarto657lagarto657 Member Posts: 11 ■□□□□□□□□□
Today i was asked to reform a complete subject in a local college due to its obsolete content. This subject is about "general IT matters": computer systems, basic C programming, visio and (incredibly) programming with microsoft excel.

What i have in mind is (related to the content):
  • Computer systems: client-server architecture, servers, hardware in general.
  • Networking: OSI model, media types, topologies, networking hardware in general.
  • Networking OS: windows server and linux (redhat, suse, debian, etc...)
  • Programming: Algorithms, and programming in XXXX
And there i'm stuck: What is the most relevant programming language for a networking professional? i mean, related to what a networker does: scripting, managing, etc... focused on Cisco devices and servers.

Should it be c++? java? perl? python? for a matter of time it has to be 1 and just 1, and the most situable to learn for somebody who has no programming background. icon_study.gif

Any sort of help is welcome, bullying is not :)

Best regards!

Comments

  • ajd86ajd86 Member Posts: 60 ■■□□□□□□□□
    I suppose networking professionals do more scripting than actual programming. Whereas I've used Python in more scientific applications, I'd say Perl is more appropriate for networking professionals. However, I'd even consider sticking to teaching Shell scripting, since you're already introducing Linux.
  • lagarto657lagarto657 Member Posts: 11 ■□□□□□□□□□
    The thing is that after this subject comes an advanced one where the students see scripting in detail, so i'm looking for a programming language that serves as "introduction" for scripting. I was thinking in C++ (is more up to dat than C at least); i'm already discarding perl and python, since the students at this point do not have knowledge about TCP/UDP terminology.
  • netsysllcnetsysllc Member Posts: 479 ■■■■□□□□□□
    On windows servers you would want to be programming in powershell and or vb script
  • StussyNzStussyNz Member Posts: 177
    I'd highlight this also. Most networking professionals use scripting (Powershell) In a windows enviroment.
  • lagarto657lagarto657 Member Posts: 11 ■□□□□□□□□□
    Ok, powershell for windows server and BASH for linux. but that's for the following subject. the idea is the following:

    Subject 1> teaching programming language XXXX

    Subject 2> using the background knowledge of the XXXX language , teach scripting.

    Which programming language should i choose or subject 1? it has to be something similar in syntax, quite easy to learn (it will be the very first programming language to learn by the students), that serves as a background for the later learning of scripting.
  • DoubleNNsDoubleNNs Member Posts: 2,015 ■■■■■□□□□□
    My university's Into IT Course is a general IT course with the inclusion of Python. We were told that Python is a powerful language that you can do a lot with, but learning the basics is easy for someone who is new to programming because the syntax is more similar to human speech than the alternative languages. We were also told that it was a good language to learn for someone who didn't plan on going very far down the programming route but could still learn the basics and be able to create and understand algorithms.

    The Into to Comp Sci as well as the Programming for Engineer classes are taught Java.

    Having studied both Java (similar to C++, right?) and Python at school, I can attest that Python was a lot easier to learn. Additionally, even if students couldn't apply the Python syntax learned in subsequent classes, if the teacher taught the subject well enough, at least the algorithm-creation process could.

    Since I'm pretty much still a student, idk how applicable this is to your actual question. i apologize if it's useless information. But i thought to simply share my experiences.
    Goals for 2018:
    Certs: RHCSA, LFCS: Ubuntu, CNCF CKA, CNCF CKAD | AWS Certified DevOps Engineer, AWS Solutions Architect Pro, AWS Certified Security Specialist, GCP Professional Cloud Architect
    Learn: Terraform, Kubernetes, Prometheus & Golang | Improve: Docker, Python Programming
    To-do | In Progress | Completed
  • ptilsenptilsen Member Posts: 2,835 ■■■■■■■■■■
    In the context of managing (or, really, automating management of) network equipment, a simple, easy interpreted language is going to be the best. You don't need programming to do command-line automation. PowerShell, VBscript, BASH, or Python would be your best bets.

    Some aspects of the OP are simply too broad to have an answer. I stick with the above for automating network device (ie Cisco) configuration. For Windows, you're going to use a mixture of shell, VBscript, and PowerShell based on the environment (you can go all PowerShell in a "modern" environment). For Linux, you'll probably go BASH or Python or both. Actual programming (writing programs in compiled languages) is simply not an aspect of the vast majority of infrastructure jobs. Even when programming, what language you use will greatly vary based on the specific situation. There are many programming and scripting languages for a reason. While many of them are so versatile that they could technically fill all or most roles, most of them have enough strengths to make them stand out for certain situations and enough weaknesses to justify using something else for others.

    From a Window-centric systems administration standpoint, I will tell you that from 2005 to 2010, I used a 70/30 mixture of batch and VBscript scripting. In 2010 I started using Powershell, and now it's probably a 50/40/10 mixture of batch/PowerShell/VBScript. PowerShell really stands out over batch for anything remotely complicated when you can reasonably expect PowerShell to be installed or get it installed. VBScript is preferred for anything complicated, especially WMI scripting, when you can't reasonably expect PowerShell to be installed or get it installed. Batch is for quick and dirty scripts. PowerShell is easily the best overall, but for very simple needs batch scripts are easier.

    I would assume there is a somewhat similar dichotomy between Python and BASH in the NIX world based on what I do know (Python was actually the first language I taught myself, so it's not nothing), but I've never had to do any serious Linux scripting, and what little I've done has been BASH, so I don't really know.

    Based on what I have done, which does include some actual programming, I will throw out there that PowerShell is by far my favorite language. I think that if all I did all day every day is write PowerShell scripts of reasonable complexity, I would be content. VBScript and BASH are much messier, shell command less powerful, and Python less oriented to my purposes. PowerShell is the perfect language for the Windows systems engineer.
    Working B.S., Computer Science
    Complete: 55/120 credits SPAN 201, LIT 100, ETHS 200, AP Lang, MATH 120, WRIT 231, ICS 140, MATH 215, ECON 202, ECON 201, ICS 141, MATH 210, LING 111, ICS 240
    In progress: CLEP US GOV,
    Next up: MATH 211, ECON 352, ICS 340
  • netsysllcnetsysllc Member Posts: 479 ■■■■□□□□□□
    There is a great book out there 'Powershell in a month of lunches' There are also videos on youtube to follow along with it.
  • lagarto657lagarto657 Member Posts: 11 ■□□□□□□□□□
    Ok, i've been overlooking python and its syntax seems very friendly for beginners and it seems i will serve well as a background language for the later learning of powershell and bash.

    What do you think about this?

    Subject 1> teaching python

    Subject 2> scripting with powershell (windows server) and bash (linux)
  • broli720broli720 Member Posts: 394 ■■■■□□□□□□
    I agree. Python is very useful (maybe not for networking) but definitely for infosec and I think more people will come to realize it's value in that industry.
  • DoubleNNsDoubleNNs Member Posts: 2,015 ■■■■■□□□□□
    lagarto657 wrote: »
    What do you think about this?

    Subject 1> teaching python

    Subject 2> scripting with powershell (windows server) and bash (linux)

    All that in one class? During one semester?

    You might be stuffing too much info into 1 class. It might be difficult for students to keep up w/ that if they've never been exposed to programming or scripting b4.

    In my class the people who had even the most basic programming experience WERE kinda bored learning python. But the people who were learning for the first time did struggle a bit to pick up the concepts.
    Goals for 2018:
    Certs: RHCSA, LFCS: Ubuntu, CNCF CKA, CNCF CKAD | AWS Certified DevOps Engineer, AWS Solutions Architect Pro, AWS Certified Security Specialist, GCP Professional Cloud Architect
    Learn: Terraform, Kubernetes, Prometheus & Golang | Improve: Docker, Python Programming
    To-do | In Progress | Completed
  • ccnxjrccnxjr Member Posts: 304 ■■■□□□□□□□
    As everyone has said , it depends on the environment.
    Powershell/VB for Windows environments
    Bash for Linux environments.

    For what it's worth, I'll throw in some support for python if your looking for a general purpose programming language.
    (I'm somewhat familiar with Perl, but I find that Python fits my thought process easier, personal choice)
    While C++ might be a powerful language, it has a steep learning curve before it becomes useful.
    Otherwise a beginner student might get bogged down in syntax and semantics and not be focused on the end goal until they take a software development class.

    Python very relevant for networking/systems administration:
    BARNES & NOBLE | Python for Unix and Linux System Administration by Noah Gift, O'Reilly Media, Incorporated | Paperback.
    There's a pretty thorough chapter in there which takes you from basic file operations (opening, reading and writing) to log parsing.
    Which as any network/sysadmin knows is something we do daily! (There are quite a few other sys-admin type scenarios, SNMP queries, etc)
    (granted you can install other tools to do log parsing/searching for you and learning how to parse one is waste of time, one can make the same argument about learning how to add and subtract is irrelevant given we have calculators)

    If your looking for something very specific consider that Scapy uses Python as an interpreter.
    Shinken is a Nagios-like (arguably a Nagios re-write) monitoring tool that is written in Python and hence can be tweaked with some Python Knowledge.
    http://www.shinken-monitoring.org/

    Python is an easy language to learn and as such might not be interesting to someone with a programming background, a programmer might want something more powerful or one that operates at a lower level .
    It is an interpreted language which means you don't compile/make executable files from it, which might be good for a new sys/network admin who really does not want to build/compile tools and just wants something simple enough that keeps him focused on the larger task at hand instead of debugging code or making it more efficient on resources. (Likewise with Perl)
  • JayTheCrackerJayTheCracker Member Posts: 169
    lagarto657 wrote: »

    Should it be c++? java? perl? python? for a matter of time it has to be 1 and just 1, and the most situable to learn for somebody who has no programming background. icon_study.gif

    Best regards!

    only one word, Python! :)
  • lagarto657lagarto657 Member Posts: 11 ■□□□□□□□□□
    DoubleNNs wrote: »
    All that in one class? During one semester?

    You might be stuffing too much info into 1 class. It might be difficult for students to keep up w/ that if they've never been exposed to programming or scripting b4.

    In my class the people who had even the most basic programming experience WERE kinda bored learning python. But the people who were learning for the first time did struggle a bit to pick up the concepts.

    No, of course no. classes are within a bachelor degree program (6 semesters long) and subject 1 is on semestre 3 and subject 2 is on semester 4, otherwise it would be impossible, i know that very well.

    Thanks everyone, i'm almost 99% percent with python for subject 1 :D powershell and bash are already set for subject 2 icon_study.gif
  • RobertKaucherRobertKaucher Member Posts: 4,299 ■■■■■■■■■■
    only one word, Python! :)

    I agree with this statement. I'm a developer in the MS stack (.NET and web) and I have to say that from a flexibility stand point, a Cisco guy/gal would get much more use out of Python than anything else out there.

    1. Excellent ability to work with and manipulate string data to build and edit config files.
    2. Good support for lower level network protocols like TCP and IP.
    3. Portability from Linux et alia to Windows systems.

    There is no way as a Cisco guy I would lock myself into another vendor by sticking with PowerShell or even Linux shell scripting.
  • ptilsenptilsen Member Posts: 2,835 ■■■■■■■■■■
    There is no way as a Cisco guy I would lock myself into another vendor by sticking with PowerShell or even Linux shell scripting.

    I definitely agree with this. Python is just as good for this purpose as Linux and PowerShell, maybe better, and carries the advantage of being cross-platform.
    Working B.S., Computer Science
    Complete: 55/120 credits SPAN 201, LIT 100, ETHS 200, AP Lang, MATH 120, WRIT 231, ICS 140, MATH 215, ECON 202, ECON 201, ICS 141, MATH 210, LING 111, ICS 240
    In progress: CLEP US GOV,
    Next up: MATH 211, ECON 352, ICS 340
  • lagarto657lagarto657 Member Posts: 11 ■□□□□□□□□□
    I agree with this statement. I'm a developer in the MS stack (.NET and web) and I have to say that from a flexibility stand point, a Cisco guy/gal would get much more use out of Python than anything else out there.

    1. Excellent ability to work with and manipulate string data to build and edit config files.
    2. Good support for lower level network protocols like TCP and IP.
    3. Portability from Linux et alia to Windows systems.

    There is no way as a Cisco guy I would lock myself into another vendor by sticking with PowerShell or even Linux shell scripting.

    Then, do you think that i should get rid of bash from subject 2 and stick to Python scripting? i mean, these students in semestre 5 and 6 will be studying Cisco like there's no tomorrow and probably cisco is in their professional future. I will keep with powershell for windows server but for linux (mainly redhat) might python be more effective than bash?
  • ptilsenptilsen Member Posts: 2,835 ■■■■■■■■■■
    If they're studying Linux to study Linux, they do need to know BASH, plain and simple. I wouldn't not include standard batch scripts just because of PowerShell, either. Windows professionals need to know batch scripting and Linux professionals need to know BASH.
    Working B.S., Computer Science
    Complete: 55/120 credits SPAN 201, LIT 100, ETHS 200, AP Lang, MATH 120, WRIT 231, ICS 140, MATH 215, ECON 202, ECON 201, ICS 141, MATH 210, LING 111, ICS 240
    In progress: CLEP US GOV,
    Next up: MATH 211, ECON 352, ICS 340
  • filkenjitsufilkenjitsu Member Posts: 564 ■■■■□□□□□□
    The Alcatel Lucent SAM Server and Cisco Prime network management servers use Java code for scripting.
    CISSP, CCNA SP
    Bachelors of Science in Telecommunications - Mt. Sierra College
    Masters of Networking and Communications Management, Focus in Wireless - Keller
  • kurosaki00kurosaki00 Member Posts: 973
    Before going into a language per se
    They should learn about logical/programming processes and thinking
    Programmers have a very different way of thinkig than other people
    its very rational and logical
    so a good introduction to programming (including flowcharts, variables, datatypes, Binary, stuff like that) will help a lot
    After that, it doesnt matter where they go C, Java, Python etc
    They will have a good logical foundation

    About the question itself
    Bash is based in C, so probably C with some scripting?
    I would seriously not recommend focusing in VB, Im sorry for VB fans out there
    but if you become a pro in VB, it doesnt mean you will know anything else, whether if you become a Pro in C, you will have a strong sense of knowledge in Java, C++, VB, Bash and much more
    meh
Sign In or Register to comment.