Career advice: Unix certification, Programming, Perl, Java, other technologies?
-
Hi, I am looking for some career advice as it pertains to Unix, Programming, and what makes the most sense for me right now. I feel I have some of these answers and think what I'm looking for is an objective perspective from someone that's not sitting in the middle of it as I am. There's lots of background here that may not seem relevant at first. I included so as to give a full picture. First some background. I work at a software company doing Technical Support for Server based products. I've been here about 6 years. The products I support work with various app servers that reside on just about any platform. Some examples might help: WebSphere on OS/390/USS, NT, Win2000, Solaris, Linux; Tomcat on any Unix or Windows Server platform; WebLogic; Fujitsu on Windows. Since these server based products download a Java client I also support the Windows desktop operating systems and browsers. I also support some other proprietary gateway server software that runs on Windows only. Our software isn't perfect, but once we get it installed there isn't that much involved in working with it. Frequently in this job I need to know things about surrounding technologies. For instance, proxy servers, fire-walls, routing, etc. Once in a while I read TCP/IP traces to aid in troubleshooting an issue. In the process of doing this job I've found it beneficial to learn LDAP and SSL although it wasn't required and I could probably scrape by without it. Since about 1994 I've wanted to become a Unix Sys Admin. When looking at job requirements these days it seems like most employers would like someone with C, Java, Perl, Shell scripting, maybe C++, or some combination of those languages and frequently ask for Database skills. I went to a head hunter a couple of years ago looking for a Unix type job and the advice I got then was learn C++ and Perl. Well, I ended up taking a basic C class, self-studied Java for 3-4 months, studied LDAP and SSL, played around with a couple of Linux distributions, learned some Solaris, and studied shell scripting. The company I work for has probably laid off at least half of the work force since early 2000. There's been a layoff about every six months. I've managed to remain employed and the company has managed to remain solvent. While not secure in my job, I think I could stand one or two more rounds of layoffs if they were to occur. But really I think we've hit bottom unless something else really drastic happens. So I'm looking to be employed there until I wish to leave or probably a couple of years whichever comes first. I'm now working up to the question. I don't know which direction to take? Solaris Certification? Redhat Certification? A generic Linux Certification? Java? Perl? C? Other surrounding technologies that I've mentioned above? I still want to be a Unix Admin, but I don't foresee leaving my job any time soon. There are not any Unix Admin jobs where I work, and right now I don't feel that I qualify for any outside jobs. The closest I can come is probably where I'm at, supporting our products that run on Unix (and Windows), but I really don't get that deep into the OS. I need to configure the SDK environment, set paths, maybe install a package or two, but nothing really deep. I've done more admin work at home with items like kernel compilation, Samba, NFS, and backups. But still, this is all pretty basic stuff. One of the reasons I stay at this company is the current job market, but the other is that I have a respectable commute and I work 6AM - 2:30PM which allows me to be home when my kids get home from school. This really is the deciding factor for me, being able to work this shift. So the somewhat obvious answer is to learn Java. In theory at least I could use it in my current job, but I have no guarantee of that. I would get slight recognition for learning another technology but the recognition isn't the major reason why I'd learn it. It wouldn't hurt on the resume either. My hesitation for learning Java is that a)I don't think I could ever get a job as a programmer. I don't have a college degree which I tend to berate myself for. I know it's not -that- important but many jobs list it as a requirement. b) I don't live to be a programmer. c) I'm reluctant to invest the time in something I don't know that I'll use on this job, but more importantly on any other job and what I don't use I lose. I do really like learning and figuring out how things work. I love reading a textbook trying to comprehend the material and then going through the exercises. Where I tend to have problems is applying what I've learned (at least in programming) to real world problems. I guess because I haven't learned to think like a programmer and partly because I don't see problems that could be solved by programming. When I do it seems like it takes me forever to figure it out. So much so that I get overwhelmed and discouraged. I've also thought about learning Perl, but I have about one personal project that I know I could use and then I'm afraid the knowledge would lay dormant and eventually forgotten. Probably less important in this whole scenario is that I have only about one to two hours per day to study and that would have to be self-study. Which I'm fine with. Just adding to give a complete picture. I was thinking that if I did get laid off I could always study and pickup a *nix certification at that time. I'll still run Linux at home and support software running on Unix platforms at work. FWIW I have an MCSE in NT 3.51 and 4.0, but want to get away from the Microsoft technologies. I suppose the ultimate would be to find a job that would take me with my limited experience, with at least this reasonable of a commute, that let's me work this shift and has the same benefits. That seems like I'm asking for the moon and is too good to be true. Plus I keep thinking the amount of energy and effort looking for a job could be used studying. I can always look for a job when I have time. So, in summation. My choices are to learn Java, or pick up some *nix certifications, or learn Perl, or study the surrounding technologies like proxy servers and such. What would you recommend? Thanks,
-
Answer:
Hi, Generally I stay away from questions which "ask my opinion" as most of the researchers do, which is probably why your question has sat as long as it has. But I've decided to make an exception in this case. First off, if you are looking at a sysadmin job for the future, in what ever OS, (Unix, Linux, and even Microsoft,).. Perl is never going to be a waste of time. I started using Perl about 5 years ago, and I couldn't tell you how I got by without it before then. Perl was created and designed to be a language for system admins. That was its original purpose and it is probably the best tool out there for anyone having to deal with server related issues, and users. Common tasks I use Perl for everyday, simply because it's much easier to use than the normal OS tools (especially if I am in a hurry or I do the task several times a week and would just rather the cron took care of it), are: user permission changes, intrusion detection, file system monitoring, file permission changes, setting up new users, removing users, log filtering, etc. All of this is much easier with a working knowledge of Perl. Yes there are system tools for all of that, but very few of them will page/cellphone you when three processes have started on a memory hogging rampage and let you know what is going on. Perl can do that, and it doesn't take a fortune or several days to get the answer for that problem. Here's a few quick things that make a sysadmin's life a lot easier. Find all the core files and delete them. This one asks if you want to delete them, but you don't have to have that option in there, you could log the deletions, or move the core files to a directory or whatever. This example asks. #!/usr/bin/perl -s # # -s is also considered 'retro', many programmers preferring to load # a separate module (from the Getopt:: family) for switch parsing. use Cwd; # module for finding the current working directory # This subroutine takes the name of a directory and recursively scans # down the filesystem from that point looking for files named "core" sub ScanDirectory{ my ($workdir) = shift; my ($startdir) = &cwd; # keep track of where we began chdir($workdir) or die "Unable to enter dir $workdir:$!\n"; opendir(DIR, ".") or die "Unable to open $workdir:$!\n"; my @names = readdir(DIR) or die "Unable to read $workdir:$!\n"; closedir(DIR); foreach my $name (@names){ next if ($name eq "."); next if ($name eq ".."); if (-d $name){ # is this a directory? &ScanDirectory($name); next; } if # if -r specified on command line, actually delete the file if (defined $r){ unlink($name) or die "Unable to delete $name:$!\n"; } else { print "found one in $workdir\n"; } } } chdir($startdir) or die "Unable to change to dir $startdir:$!\n"; } &ScanDirectory("."); Really simple stuff. More simple. let's check every once in a while to see if anyone has altered the passwd file ------- #* #* print the MD5 fingerprint for the /etc/passwd file #* use Digest::MD5 qw(md5); $md5 = new Digest::MD5; open(PASSWD,"/etc/passwd") or die "Unable to open passwd:$!\n"; # these two lines called also be rolled into one: # print Digest::MD5->new->addfile(PASSWD)->hexdigest,"\n"; $md5->addfile(PASSWD); print $md5->hexdigest."\n"; close(PASSWD); # # That's pretty simple, of course you can setup a number of other files in the same program to check as well. If someone changes a single character, even a white space area in that file, you'll know about it. There is a really nice place to hang out called PerlMonks. http://www.perlmonks.com In there you will find a section called. Cool uses for Perl. and there are tons of small fast scripts in there that will save hours of time as a sysadmin, as well as other things. Really, there is no better tool you could have as a sysadmin than a good working knowledge of Perl. There is a draw back. The draw back is, it gets fun after a while and you start spending lots of time working out things you can to do keep a system running and you go through a period of time where you are spending more time writing a script for something than what it takes to just do the action. It happens. :-) I recommend the O'Reilly books. Learning Perl, Perl (also known as the Camel book), and Perl for System Administration (where those two examples I showed you came from). Those three books will save you hundreds of hours a year in head scratching and boring mundane daily tasks. As far as the Unix certifications go, if you have the means, I would go with a Solaris cert before I chose a Linux cert of any type. My reasoning is not based on the grounds of Solaris vrs Linux. There is a growing need for Linux admins out there. But just about anything you learn on the Solaris you can use in Linux, but the reverse is not really true. Linux has tools and abilities that just aren't available on Solaris. So being certified and "knowing Solaris" opens two doors for you rather than only one. Combined with a working knowledge of Perl, there's not many systems out there you couldn't work on, and keep running for just about any level of usage. That's about it for my answer at this point. If you have need of clarification or some specific area you need more information on I would be happy to follow up. There's a ton of hyperlinks I could put in here regarding all of this but I got the feeling from your question that you've been out there reading and have got way too many of those already. So if there's something you specifically need found, then let me know, and if it's with in the scope of this question I would be happy to clarify it for you. One other thing, SysAdmins are normally called upon to do various other tasks, other than simply keeping the servers running. I've been asked to do things like "get a list of all current zipcodes" for instance or "upcase in proper format the names in our database" . Perl to the rescue there. Check out some of the recent questions I've answered on here or search for webadept-ga and Perl, and you'll get a clearer scope of the non-limitations Perl allows you to have. Requests like those become non-hassle things really fast. Oh, learn Vi, or Vim if you haven't already. Nothing beats that text editor, and it's a normal install on just about every system. (never mind all the emacs users out there that will probably comment on that little tidbit :-) Thanks, webadept-ga
fred1234-ga at Google Answers Visit the source
Related Q & A:
- What certification can I get for C Programming?Best solution by Yahoo! Answers
- How can I start my career in technologies?Best solution by wikihow.com
- I need Career Advice for International Affairs?Best solution by press.georgetown.edu
- Career advice - preschool teacher?Best solution by naeyc.org
- Medical career advice.Best solution by healthline.com
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.