Wednesday, October 2, 2013

Knowledge baseline

I wanted to make sure to take the few short minutes I have today to note the general state of knowledge I'm currently at. It will cover quite a wide birth of topics since I apparently am a man of many hats. So my background is simply a love for computers. I like logical thinking more than abstract most days, I would say. I like the idea of abstract and useful thinking, I guess I'm just not that great at it. Sadly, I've yet to get too far into programming. One would assume with logical thinking as my safe-haven, I would take to programming. No real reasons behind me not heading that way other than lack of guidance toward it. No one I knew or admired did it so, why would I find it interesting enough to pursue? My simple past with computers started me down a path in college of "Computer Support and Repair" which gave me a wide brush to paint my career with but, it wasn't very specific when trying to move forward. I started off as a PC/Network Repair Technician. I got called for anything from a printer to a switch (very very simple networking at the start). Though I had a bit of help to hopefully get me started in a right direction, I still hadn't found what I liked. I liked computers but, it was mundane most days. I soon grew bored of it and wanted to move into servers. Well, I was able to get a small-to-decent amount of exposure to them and discovered that, other than learning more in the overall scheme of what it took to make them run... They were basically the same thing! Just a Windows box with the same problems, just a level up! Well, I'll be.... That was soon followed by the quick demise of my first job out of college. I phrased it that way 100% on purpose because I'm still not sure the stance they took regarding my "separation of employment". I will tell you though, it was not my choice at the time. It all worked out, though. I was able to move on to a job where I was the most knowledgeable employee at a small company! Yeah! Except since there was only two of us, it wasn't worth bragging about I suppose. That job was short lived for a variety of reasons that we don't need to get into either. I left that job for a better opportunity at a school. I wasn't directly employed by the school corp but instead I was a full time staff-aug. I was able to grow tremendously at that job! It was a great environment for learning and for honing in my skills with PCs, networks, servers (both old school Novell/Netware, new school Novell/Linux, and Windows), application deployment and imaging. There was also another key factor at this job, I was able to stick like glue to one of my coworkers remotely. He worked out of Southern Indiana, while I worked in basically Indianapolis. He taught me things about Linux, Windows, Novell, Zenworks, scripting, hard drives, programming, and much more! I owe him SO much... But I worked there for a year and a half. I was ready to move up but, sadly there weren't too many jobs that were readily available above me. It might have taken a while to move up, and I had put in my application at my current employer a while back to become an Associate. Basically, they train you for a year to 18 months on how to be a Cisco UC VoIP Phone Engineer and provided you can follow along, do what they ask, pass the tests that they require and prove you know what they want you to.... You become an engineer! Not the civil or mechanical kind but still, I couldn't pass it up! So I went into this job with middling network knowledge. I understood most of the basics, enough to pass my CCENT with no studying. I then was able to recently pass my CCNA. So, that is all the networking background I have. Almost no VoIP experience to speak of, other than I get the ideas behind QoS and call routing. But as I learn more in that, I plan on sharing it with you all! Hopefully it will help you some day when you need it. So then at my last job (school) and my current job (associate/learner) I have been running Ubuntu 12.04 LTS as my work OS. I like it, it's fast, light, easy, makes sense, all of my tools are built in, and anything that I may not be able to do on Linux (I'm not that naive, I realize there is a lot you can't do on Linux and just REALLY need Windows for..), I simply have a VM of Windows 7 running. Yeah I use it a lot but I promise I use my Linux box and it's easy built in powerful tools a lot more. And I plan to only use it more as the days go by. And with Linux, this brings me to my last point. My last point regarding my own knowledge.....

Sidenote: Ha a few short minutes. It's been about 30 and I'm so long winded that I've written an entire paragraph.

Ah yes, my last point for the evening. Programming. I have little to absolutely no programming language skills. I understand enough to be able to read and maybe write a ROUGH script. I know that #!/bin/bash is a shell script start and that #!/bin/bash/perl is a perl script on Linux. I know ZERO VBS or PowerShell for Windows. I started to learn either C or C++ a while back, but got preoccupied and was unable to continue the book on it. (I believe it was C.) I know a little about reading those, but other than that. Nothing. Consider this ol noggin an empty canvas for programming, scripting and learning. While continuing to learning networking and VoIP daily, I want to try on my own. With that said, today after working late, I was able to watch a few quick videos on the 'sed' command. Which, I learned yesterday, was the stream editor and that means that it doesn't actually modify the file you are looking at the output of. It's simply modifying the output as it appears on screen. I quickly realized how handy this could be when using that previous output as input on some other command, variable, or sub-routine. With that, I figured a few things to make sure that I kept note of for sed were that (-s) is for Substitute(separate). While using the -s option, if you choose, you can use some following options to help parse the information better. -f is the field that it is using to pull or separate the data out of. -d is the deliminator, or separator that is used to note the fields beginning / end. The other key to keep in mind with sed is that, while mostly taught with /// as the key characters to separate the statements of the sed, you don't have to use it. (Please be aware, 99% of the time when I'm referring to code input, I use [ and ] so that you know to remove those and the code within is what you are looking for.) So, an example to try is [sed 's/word/otherword/g' file] while trying [sed 's;word;otherword;g' file] and the output should be the same. 'sed' does not care about the separator that you chose to use, as long as you are consistent with those three. This can help make it a VERY powerful tool and one that will be quite handy in your upcoming arsenal that I plan on creating. It will be the arsenal used to defeat anything from a simple script you decide to make to a debug we will hopefully learn together later. For now, I leave you with this quick output picture of the sed command above working for myself. Best of luck, and I hope to be back tomorrow!



-Mitch


PS - Photo:
ha see, no change. handy!

No comments:

Post a Comment