So lets start off with I am an old dog and I am learning new tricks. My entire career I have avoided the dreaded programing. In college I slid by my degree requirement for a coding class by taking Visual Basic for Industrial applications. I hated it. Debugging drove me nuts and there is still a hole in my bedroom wall at my parents where that brick of a VB found itself one night around 2am. From there I was just gun shy and honestly had plenty of other things going on that could afford to ignore learning anything outside of the basics of HTML and CSS.
Cut to today, I am in my late 30’s and going through a career transition of sorts. My timing for the transition is decent because the network industry is also going through a bit of a transition. For awhile now all the cool kids have been doing automation and Dev/Ops in the Server, OS and application space. But networks are trickier. I will leave out all the discussion of why because that horse has been beat dead a few times online. In this transition over the past six months or so I have found myself doing things I would never have guessed even a year ago.
So what types of things you ask. Ok for one I am now doing dev work. Mind you it is not great dev work and I will never be a professional developer but I have been writing code. In one case even some minor code for a library that is now in production with clients…scary huh. But mostly I am coding to learn and help move other people along the Path to Automated Networking including myself.
Other things I have been doing is working with professional and operational developers who are writing most of the code. This is interesting because you start seeing the real differences in experiences between network operators and devs. A big part of that difference is that the guys who are doing the coding for applications usually have very little operational experience. They did not get into dev work to manage servers so as we are moving to a world of Dev/Ops quite a few of them installing an OS for the first time. In working with them I have had to learn their language (not code but how they actually speak and their context for the world), learn their tools (Jira, IDE’s, Code Review) and be super honest about when I have not idea whats going on which is quite often.
All this is to say I am having to change who I am as a classic Enterprise Network Operator to become more and I am ok with that. The main reason is because I have been missing out on a whole world of amazing by avoiding code all these years. As I stated in this post when learned what I could have been doing all these years with simple expect based code against network equipment I was blown away! There are some many things I could have done better and faster if I would have known a few basic things ten years ago when I was grinding out network installs for VARS or even when I was an in hour operator managing a 400 site WAN. All that brings me to GET CODING! If your a network operator and you are not at least using PERL or Python to deal with mundane repetitive tasks you should really start.
For me I did it with real paper books. For me that is just the easiest way for me to learn something like this, with pages I can dog ear, write in the margins and carry around with me. Before you get to the point where you say oh well you did this for your job no I didn’t. I was not hired as a dev and I repeatedly tell people all the time I DO NOT CODE, because honestly I don’t to break their networks. I have put the time in on my own so late nights, early mornings, plane rides, hotel rooms and so on.
I started with Python for Kids. Subsequently I have told a few people that I would not start this way again but it really depends on who you are. If you are starting out raw then it is a great place to begin. The book writes in terms of magic potions, video games and basic math problems so it is really easy to understand and even get some ideas on where you could take your new coding magic powers. Where it fell down for me is it left me with no idea of what to do next in context to writing real network code. I have since found that that is just one of my weaknesses and taking concepts to functional ideas in code is not my strong suit.
Next I found Learn Python the Hard Way, and OMG I love this book! It starts you right at the bloody beginning as if you are just stupid and have no context for text editors or anything else. For me this was hard but I shut down all my normal tools downloaded what the author told me to download and stuck to the program. You start where everyone else starts with “Hello World” and rapidly move from basics into writing functional code. The core of the book is that repetition will drive the nail of Python deep into your brain and your fingers will start doing things on their own. I have been working on network equipment so long that I know that the concept it solid because I don’t even have to think about how to get a route table or an interface IP anymore it just kind of happens when I am at the keyboard.
Outside of the books I used to get going there are two more critical pieces to my workspace that I added when I started this process. Both seem trivial but I could not gotten this far without either of these items and the are cheap. So the first is this book stand. I am sure any book stand or hack you come up with will work fine. I found this one thanks to Ed Henry and I love it. It folds almost flat and easily travels with me in my small laptop bag so I can keep up my studies in or coffee shops. Also it has two really great stiff wire page holders that do not get in the way of you reading when your coping entire pages of code by hand (which you will be doing lots of in Learn Python the Hard Way) The second item was a decent LED desk lamp. I chose this one. Many of you probably already have this so good on you. If you don’t you need something that lights you reading area well or your eyes are going to simply hate you! I chose this one because it is easy to adjust to your workspace without moving the lamp around. I also found the extra benefit of it can work as a nice fill light for when I am doing video recording or on video calls.
Well thats it go code! If you want to see all the items I mentioned in one place you can do that here. If you want to see some of the things I have started doing and where I am going with what I have learned you can check out my What did you Expect series. If this is all new to you take the leap! I think you will be pleasantly surprised what you can accomplish in just a month or so. Keep checking back to StaticNAT.com or follow me on Twitter @joshobrien77 for new content as I continue this Journey!