[SOLVED] Which programming languages do I need to learn for a career in Linux?
Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Which programming languages do I need to learn for a career in Linux?
Hi all,
I am just starting to learn Linux and am interested in a career in Linux. Actually I wanna go for RHCE, which is the first step for Sys Admin..right?? Basically I do NOT want to go into programming/developing as I don't feel it's my cup of tea (and also may be it sort of boggles me). Still, from what I gather I am having confusions regarding whether I should learn any programming language for a career in Linux.
Here I am avoiding programming..and now I get to hear that Linux career uses programming..That's sort of frustrating!
My friend told me I need to "master" C. Do I need to learn some programming language?? If yes, then to how much extent??
Boo for programming!! That's just my opinion by the way..
To be completely honest with you, programming is the back-end of all operating systems; Without the ability to program anything, we wouldn't have OS's to use
But your friend is correct about one part - Learning C/C++ will help you out a LOT, even if you do not want to program. I also recommend perl, python, and get used to shell scripting within the linux environment. That is only my two cents though.
You emphatically do not need to learn C. Let the programmers be programmers, your job as a sysadm is to make sure the programs have an environment in which they'll run.
Sysadm positions require a lot of shell scripting, so that's a language you'll need to be comfortable in. Other scripting languages may be necessary for you to understand, but it depends on the position. Some examples are python, REXX, SQL, and XML.
my experience is that you'll need a basic understanding of programming-languages in general. As an admin you'll not have to be a good C-programmer, but since you will have to build programs from the sources you'll have to understand how C works. You'll have to know how a C-program includes library-files and how the make-utility works.
As SL00b mentioned you'll have to write shell-scripts for the bash-shell. Furthermore there are important (and very powerful) scripting-languages like Perl, Python or Awk.
Don't forget the tools like sed, grep or find which also may be included into shell-scripts.
Well, I'd recommend: learn to read, understand and write bash-scripts. Learn regular-expressions, they are very powerful and useful. Learn a good texteditor (I'm using vim). And jump deep into networking, try to understand as much as possible and learn to use tools like tcpdump and nmap.
For a SysAdmin, you have to know shell programming; for Linux learn bash, but also be aware of other shells, especially ksh (tends to be the default on commercial Unix & you may be asked to look at such systems).
For more powerful/complex jobs, learn Perl.
Other basic programming-type tools include sed, awk.
Other basic cmds inc grep, find, cut.
Well, I'd recommend: learn to read, understand and write bash-scripts. Learn regular-expressions, they are very powerful and useful. Learn a good texteditor (I'm using vim). And jump deep into networking, try to understand as much as possible and learn to use tools like tcpdump and nmap.
So Markus, you recommend to learn bash-scripting, basically; if not hardcore programming..right??
And yes..you wrote I should jump deep into networking. Now I understand that sysadmin would definitely require understanding networking basics too..but how deep do I need to go into networking?? I hope not at the level of CCNA.. but then, whatever it requires, it has to be done..
It's great to see so many people responding to help!! Thanks to ya all!!
Though I'm looking forward to even more replies, I'll summarize everyone's posts till now-
1. Get some basic & moderate understanding of C
2. Become master in Perl, Python as they are used in scripting.
3. Learn bash-scripting as much as possible.
4. Learn tools like sed, awk, grep (I have no idea what awk is, but will look up on net).
If I have left anything at all then please add or edit, guys..
Although I got some pretty good links from you all, I'd like to get more exclusive links to learn C/C++, Perl, Python, Bash.
Thanks again to all of you!! Looks like I'll have to buckle myself up for programming.
So Markus, you recommend to learn bash-scripting, basically; if not hardcore programming..right??
And yes..you wrote I should jump deep into networking. Now I understand that sysadmin would definitely require understanding networking basics too..but how deep do I need to go into networking?? I hope not at the level of CCNA.. but then, whatever it requires, it has to be done..
Well CCNA is more or less about IP-routing (roughly spoken), but there is much more to it than most people (also experts) will ever need. If once you find that such an exam like CCNA is required in your job, then you may go for it. As you know there are many exams, any exam can be completely useless (for you) if you never get a job where you need it. Otherwise you may find yourself at a point where a special exam can bring you forward, then go for it.
Note that even Microsoft-exams can be very useful since most networks are not only Linux or only Windows.
You emphatically do not need to learn C. Let the programmers be programmers, your job as a sysadm is to make sure the programs have an environment in which they'll run.
Sysadm positions require a lot of shell scripting, so that's a language you'll need to be comfortable in. Other scripting languages may be necessary for you to understand, but it depends on the position. Some examples are python, REXX, SQL, and XML.
Actually XML is a mark-up language, not a programming language.
And the times I've heard REXX mentioned in a Linux-context
in ~ 15 years I can count on one hand :}
Used to love REXX, back in the day when NVDM/2 was still en
vogue in my niche of the IT world ...
Actually I wanna go for RHCE, which is the first step for Sys Admin..right??
Depends on your location. The western country people here, say that these certificates are of no value (not literally though) there, experience is what matters most.
But the place where I live, experience does matter but at the same time you need to have these certificates too (to get you to the interviews).
Secondly, RHCE is just a certificate which you get by passing an exam and I think that should be on the bottom of your priority list. Those RHCE institutes do teach Linux sys admin tasks, but they are nothing more than crash courses and therefore they won't get you a firm grip on the basics because their aim will be to finish the course in one month's duration.
Hit out Google with the following keywords and checkout the first results:
TLDP system administration guide
GNU softwares
Do not forget to look out for title "All GNU packages" in the first link resulting from the second keyword "GNU softwares".
Last edited by Aquarius_Girl; 05-04-2011 at 11:40 PM.
Well, I think my links cover all the langs listed there, just have a look. linuxtopia has a whole section on programming lang manuals alone, plus loads of SysAdmin manuals.
Re C; I'm a fan of all programmers learning it as it underlies most of the others eg Perl, Python, shell etc are written in C underneath
For a pure SysAdmin, a basic understanding will probably suffice, but you must also understand the Make tool for installing (C/C++) code from src.
As for SQL, worth knowing the basics of SQL & Tables/Columns, as RDBMSes are extremely common.
Depends which DB you use, but on Linux its often MySQL http://dev.mysql.com/doc/
Actually XML is a mark-up language, not a programming language.
And the times I've heard REXX mentioned in a Linux-context
in ~ 15 years I can count on one hand :}
Used to love REXX, back in the day when NVDM/2 was still en
vogue in my niche of the IT world ...
Cheers,
Tink
There is more to life than Linux. You'll note that other than shell scripting, all the languages I mentioned are platform independent. You don't want to tie yourself down to a pet platform, because this industry changes quickly, and if the industry moves on from your pet, you'll be left behind. I imagine the OpenVMS guys loved their system, too, but you don't see too many paying jobs for it any more.
You can find yourself using REXX pretty heavily in a mainframe shop that is running a lot of zLinux, because there would already be a lot of REXX knowledge to leverage. But yeah, unless you were already in a shop using it, I wouldn't go out of my way to learn it, so that's a valid point.
And say what you want about XML, but as it is quickly becoming the de-facto standard for integrating disparate systems, understanding that language is a must.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.