+ Reply to Thread
Results 1 to 21 of 21
  1. Junior Member
    Join Date
    Nov 2012
    Posts
    11
    #1

    Question Which programming language is more relevant for networking professionals?

    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.

    Any sort of help is welcome, bullying is not

    Best regards!
    Reply With Quote Quote  

  2. SS -->
  3. Member
    Join Date
    Mar 2012
    Location
    Washington, DC
    Posts
    60

    Certifications
    CISSP, GCIH, GCFE, CEH, CCENT
    #2
    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.
    Last edited by networker050184; 11-29-2012 at 02:14 PM.
    Reply With Quote Quote  

  4. Junior Member
    Join Date
    Nov 2012
    Posts
    11
    #3
    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.
    Last edited by networker050184; 11-29-2012 at 02:14 PM.
    Reply With Quote Quote  

  5. Senior Member
    Join Date
    Apr 2012
    Location
    Sahuarita AZ
    Posts
    472

    Certifications
    MCSE
    #4
    On windows servers you would want to be programming in powershell and or vb script
    Reply With Quote Quote  

  6. Senior Member
    Join Date
    Oct 2012
    Location
    Dunedin
    Posts
    177

    Certifications
    BSc Majoring in Networks and Security, National Diploma in ICT, CCENT, CCNA, CCNA:S, ITIL:F
    #5
    I'd highlight this also. Most networking professionals use scripting (Powershell) In a windows enviroment.
    Last edited by networker050184; 11-29-2012 at 02:14 PM.
    Reply With Quote Quote  

  7. Junior Member
    Join Date
    Nov 2012
    Posts
    11
    #6
    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.
    Reply With Quote Quote  

  8. Senior Member DoubleNNs's Avatar
    Join Date
    Oct 2012
    Location
    Charlotte, NC
    Posts
    1,942

    Certifications
    A+, VCA-DCV, Linux+/LPIC-1, AWS CSA, AWS Dev, AWS SysOps, Project+ [Expired: Net+, Sec+, CCENT, CCNA]
    #7
    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.
    Reply With Quote Quote  

  9. Junior Starcraft Engineer
    Join Date
    Mar 2007
    Location
    Twin Cities, Minnesota
    Posts
    2,777

    Certifications
    A+, Net+, Security+, MCSA 2003, MCTS Win 7, AD, Net Infrastructure
    #8
    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.
    Last edited by ptilsen; 11-29-2012 at 07:04 PM.
    Reply With Quote Quote  

  10. Senior Member
    Join Date
    Apr 2012
    Location
    Sahuarita AZ
    Posts
    472

    Certifications
    MCSE
    #9
    There is a great book out there 'Powershell in a month of lunches' There are also videos on youtube to follow along with it.
    Reply With Quote Quote  

  11. Junior Member
    Join Date
    Nov 2012
    Posts
    11
    #10
    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)
    Reply With Quote Quote  

  12. Senior Member broli720's Avatar
    Join Date
    Oct 2012
    Location
    Merica
    Posts
    377

    Certifications
    CISSP, CCNA, CCNA:S
    #11
    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.
    Last edited by networker050184; 11-29-2012 at 02:30 PM.
    Reply With Quote Quote  

  13. Senior Member DoubleNNs's Avatar
    Join Date
    Oct 2012
    Location
    Charlotte, NC
    Posts
    1,942

    Certifications
    A+, VCA-DCV, Linux+/LPIC-1, AWS CSA, AWS Dev, AWS SysOps, Project+ [Expired: Net+, Sec+, CCENT, CCNA]
    #12
    Quote Originally Posted by lagarto657 View Post
    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.
    Reply With Quote Quote  

  14. Senior Member ccnxjr's Avatar
    Join Date
    Jan 2010
    Location
    Brooklyn, NY
    Posts
    299

    Certifications
    A+; Network+; CCENT; CCNA;JNCIA-JunOS
    #13
    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)
    Reply With Quote Quote  

  15. Senior Member
    Join Date
    Dec 2011
    Location
    Asia
    Posts
    163

    Certifications
    MCTS:Win7, CCNA, VCA-DCV
    #14
    Quote Originally Posted by lagarto657 View Post

    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.

    Best regards!
    only one word, Python!
    Reply With Quote Quote  

  16. Junior Member
    Join Date
    Nov 2012
    Posts
    11
    #15
    Quote Originally Posted by DoubleNNs View Post
    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 powershell and bash are already set for subject 2
    Reply With Quote Quote  

  17. BOBBY_TABLES RobertKaucher's Avatar
    Join Date
    Dec 2007
    Location
    Lebanon, Ohio - USA
    Posts
    4,274

    Certifications
    MCSD Web Apps/SharePoint Applications, MCITP: DBA 2005/2008, EA, EDA7, Linux+, Sec+, MCSE, MCDST, MCTS
    #16
    Quote Originally Posted by JayTheCracker View Post
    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.
    Reply With Quote Quote  

  18. Junior Starcraft Engineer
    Join Date
    Mar 2007
    Location
    Twin Cities, Minnesota
    Posts
    2,777

    Certifications
    A+, Net+, Security+, MCSA 2003, MCTS Win 7, AD, Net Infrastructure
    #17
    Quote Originally Posted by RobertKaucher View Post
    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.
    Reply With Quote Quote  

  19. Junior Member
    Join Date
    Nov 2012
    Posts
    11
    #18
    Quote Originally Posted by RobertKaucher View Post
    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?
    Reply With Quote Quote  

  20. Junior Starcraft Engineer
    Join Date
    Mar 2007
    Location
    Twin Cities, Minnesota
    Posts
    2,777

    Certifications
    A+, Net+, Security+, MCSA 2003, MCTS Win 7, AD, Net Infrastructure
    #19
    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.
    Reply With Quote Quote  

  21. Data Network Engineer filkenjitsu's Avatar
    Join Date
    Jun 2004
    Location
    Chicago, IL
    Posts
    531

    Certifications
    CCNA Service Provider, CCNA: R&S, CCENT, CCT: R&S, MCP: 70-270, 70-290, MCDST, BCSA T1/T2, ETA CST & CNST, Ericsson MME Operation and Configuration
    #20
    The Alcatel Lucent SAM Server and Cisco Prime network management servers use Java code for scripting.
    Reply With Quote Quote  

  22. Pancakes and Lasagna kurosaki00's Avatar
    Join Date
    Nov 2008
    Location
    Indianapolis
    Posts
    943

    Certifications
    CCENT, A+, Network+
    #21
    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
    Reply With Quote Quote  

+ Reply to Thread

Social Networking & Bookmarks