OOP for an aspiring Network Admin

I am looking into the field of network oriented technology and would like some advice on how to build a solid foundation of programming skills that are useful for network practices and automation. I have a small understanding of programming with knowledge of bash scripts, as well as web based programming with javascript, html and css. I have a very basic understanding of python as well. I would like to know how to develop a discipline of programming knowledge.

Some key questions:

What is Ruby on rails? I know it's used for database administration, but is it useful for networks as well?

What is the most efficient language for managing network tasks, including the amount of time spent programming?

Should I learn C? I have been debating this in my head, but since it's not OOP I don't know how useful it would be in my situation.

How do I keep myself motivated? I have often started learning a language only to find that I just lose track later on.

I just wanted to let you know network admin is not a person who writes software. It is a person who configures and manages network. The basics are covered by CCNA (Cisco). About helping yourself with languages for monitoring implementation you can use any language that can do ssh... and from there its pretty much capping the statistical data and based on it you can change priorities on links intelligently depending on traffic levels in part of your network. But thats more advanced stuff... basics for network admin is knowledge how to set up basic protocols like ospf / troubleshoot router configurations and resolve issues.


Ruby on Rails: backend web framework written in ruby (backend web applications run on servers and handle database requests (create new user, validate users, save posts, delete profiles, read data, et cetera).

Efficient language for managing network tasks? Ruby or Python have extensive third party libraries for routing network traffic. All the good sysadmins I know do their work in a bash shell or zsh, learn how to use the breadth and depth of linux/unix cmd line utilities that are network related

(heres a little handy dandy one that you can start with):

sudo lsof -i
sudo netstat -lptu
sudo netstat -tulpn

Should I learn C? For networking? No, this is not in line with your goals. For academic curiosity? Yes!

How do I keep myself motivated? Work on projects not arbitrary goals like "I want to be a network admin" instead do something like "I want to set up and run my own minecraft server on the LAN, I want to set up and run my own Quake server that my friends can reach through an I.P. address, I want to set up and run my own VPN" projects are the way to go. Write that shit on your resume too when you're applying for jr. positions.

1 Like