> Hi folks > > I have more than 12 years experience with UNIX system administration, > but I am too stupid for programming. My only programming experience is > shell scripting. I tried to learn Java, but don't understand it > because it is too complicated for my limited brainpower. > > What programming language should I learn? > First of all, what's the reason you want to learn to program? For the enjoyment of it? To be able to write more complex admin tools? To create front-end applications? If you already know shell scripting, Perl should be easy for you, as the syntax is similar (a hybrid of Shell, awk and C, if I remember correctly) and is very easy to learn. It also is installed on every Unix I've used in the last decade and has an extremely large repository of libraries, CPAN, which covers everything you may need and more (writing Perl in latin, really?). On the other hand, the OO syntax is awkward, to say the least, and reading other people's code can be difficult sometimes, as "there is more than one way to it". Python is quite simple. The syntax is quite alien, compared to most "C-based" languages, but it seems to be simple and straightforward for most people. It also is included with most modern Unix-like OS. Both, Python and Perl are widely used in CentOS, so you should be able to open a tool and see how it works. PHP can also be useful and it's easy to learn, but it is mostly oriented towards web development so, unless that is the way you want to go, I would ignore it. It also tends to be a bit of a mess, API wise. Ruby is another language that seems to be gaining a lot of traction but I just can't stand the syntax, and that comes from someone who used to be a Perl developer. It also seems to be less in use as a systems language, as opposed to a web development language with Ruby on Rails. C can be a good language if you want to start "from the bottom", learn how to use pointers, to manage memory without help and to be able to write low-level stuff. The syntax is extremely simple, but it's a difficult language to master, as it is quite low-level, compared to other languages. If you didn't get Java, I would stay well away from C# (it's mostly a Java clone, despite the fact that it now seems to have a nicer syntax a a few extra bits that Java misses) and C++ (far too complex... it does everything you may want to do but that power comes at the cost of simplicity). My personal preference would be to go for Python. While the issue with meaningful whitespace can be REALLY annoying, especially if you copy and paste from a terminal (tabs will get converted to spaces and Python doesn't like mixed tabs/spaces, indentation is meaningful), the language itself is quite clean and straightforward, there are plenty of books and tutorials online and, if you're desperate, most sysadmins seem to be picking it up as part of their arsenal these days. Even if you don't end up using Python as your main language, I see it as a very good way of learning to program. Whatever you choose, good luck and let us know what you decide. Gabriel