LinuxQuestions.org
Review your favorite Linux distribution.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie
User Name
Password
Linux - Newbie This 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


Reply
  Search this Thread
Old 05-04-2011, 05:07 PM   #1
infinite_scale
Member
 
Registered: Feb 2011
Location: NCR, Uttar Pradesh, India
Posts: 74

Rep: Reputation: 1
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..
 
Old 05-04-2011, 05:14 PM   #2
corp769
LQ Guru
 
Registered: Apr 2005
Posts: 5,817

Rep: Reputation: 1002Reputation: 1002Reputation: 1002Reputation: 1002Reputation: 1002Reputation: 1002Reputation: 1002Reputation: 1002
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.

Cheers,

Josh
 
Old 05-04-2011, 05:15 PM   #3
SL00b
Member
 
Registered: Feb 2011
Location: LA, US
Distribution: SLES
Posts: 375

Rep: Reputation: 112Reputation: 112
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.
 
Old 05-04-2011, 06:45 PM   #4
markush
Senior Member
 
Registered: Apr 2007
Location: Germany
Distribution: Slackware
Posts: 3,979

Rep: Reputation: 850Reputation: 850Reputation: 850Reputation: 850Reputation: 850Reputation: 850Reputation: 850
Hi,

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.

Markus
 
Old 05-04-2011, 06:56 PM   #5
chrism01
LQ Guru
 
Registered: Aug 2004
Location: Sydney
Distribution: Centos 6.8, Centos 5.10
Posts: 17,240

Rep: Reputation: 2324Reputation: 2324Reputation: 2324Reputation: 2324Reputation: 2324Reputation: 2324Reputation: 2324Reputation: 2324Reputation: 2324Reputation: 2324Reputation: 2324
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.

Bookmark & read
http://rute.2038bug.com/index.html.gz

For ref:
http://tldp.org/LDP/Bash-Beginners-G...tml/index.html
http://www.tldp.org/LDP/abs/html/

http://perldoc.perl.org/
http://www.perlmonks.org/?node=Tutorials

http://www.grymoire.com/Unix/ sed & awk

Massive src of online manuals (inc RHEL)
www.linuxtopia.org

Online searchable man pages
http://linux.die.net/man/

Good Luck

Last edited by chrism01; 05-04-2011 at 07:26 PM.
 
1 members found this post helpful.
Old 05-04-2011, 07:00 PM   #6
Hemanth Kumar CH SN
LQ Newbie
 
Registered: Nov 2010
Posts: 1

Rep: Reputation: 0
Thank you very much guys for your support.
 
Old 05-04-2011, 07:23 PM   #7
corp769
LQ Guru
 
Registered: Apr 2005
Posts: 5,817

Rep: Reputation: 1002Reputation: 1002Reputation: 1002Reputation: 1002Reputation: 1002Reputation: 1002Reputation: 1002Reputation: 1002
Quote:
Originally Posted by Hemanth Kumar CH SN View Post
Thank you very much guys for your support.
No problem, except you aren't the OP to this thread?
 
Old 05-04-2011, 07:41 PM   #8
infinite_scale
Member
 
Registered: Feb 2011
Location: NCR, Uttar Pradesh, India
Posts: 74

Original Poster
Rep: Reputation: 1
Quote:
Originally Posted by markush View Post
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..
 
Old 05-04-2011, 07:54 PM   #9
infinite_scale
Member
 
Registered: Feb 2011
Location: NCR, Uttar Pradesh, India
Posts: 74

Original Poster
Rep: Reputation: 1
Hey all,

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.
 
Old 05-04-2011, 07:57 PM   #10
markush
Senior Member
 
Registered: Apr 2007
Location: Germany
Distribution: Slackware
Posts: 3,979

Rep: Reputation: 850Reputation: 850Reputation: 850Reputation: 850Reputation: 850Reputation: 850Reputation: 850
Quote:
Originally Posted by infinite_scale View Post
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.

Markus
 
Old 05-04-2011, 10:00 PM   #11
Tinkster
Moderator
 
Registered: Apr 2002
Location: in a fallen world
Distribution: slackware by choice, others too :} ... android.
Posts: 23,066
Blog Entries: 11

Rep: Reputation: 910Reputation: 910Reputation: 910Reputation: 910Reputation: 910Reputation: 910Reputation: 910Reputation: 910
Quote:
Originally Posted by SL00b View Post
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 ...


Cheers,
Tink
 
1 members found this post helpful.
Old 05-04-2011, 10:02 PM   #12
corp769
LQ Guru
 
Registered: Apr 2005
Posts: 5,817

Rep: Reputation: 1002Reputation: 1002Reputation: 1002Reputation: 1002Reputation: 1002Reputation: 1002Reputation: 1002Reputation: 1002
Quote:
Originally Posted by Tinkster View Post
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
+1 to that!
 
Old 05-05-2011, 12:37 AM   #13
TheIndependentAquarius
Senior Member
 
Registered: Dec 2008
Posts: 4,672
Blog Entries: 29

Rep: Reputation: 917Reputation: 917Reputation: 917Reputation: 917Reputation: 917Reputation: 917Reputation: 917Reputation: 917
Quote:
Originally Posted by infinite_scale View Post
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 TheIndependentAquarius; 05-05-2011 at 12:40 AM.
 
Old 05-05-2011, 12:48 AM   #14
chrism01
LQ Guru
 
Registered: Aug 2004
Location: Sydney
Distribution: Centos 6.8, Centos 5.10
Posts: 17,240

Rep: Reputation: 2324Reputation: 2324Reputation: 2324Reputation: 2324Reputation: 2324Reputation: 2324Reputation: 2324Reputation: 2324Reputation: 2324Reputation: 2324Reputation: 2324
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/

If your system runs a website, then probably basic PHP http://www.php.net/
 
Old 05-05-2011, 09:32 AM   #15
SL00b
Member
 
Registered: Feb 2011
Location: LA, US
Distribution: SLES
Posts: 375

Rep: Reputation: 112Reputation: 112
Quote:
Originally Posted by Tinkster View Post
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.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] linux/programming newbie: languages to learn for dynamic (data fetching) website design? Ubunoob001 Programming 16 11-25-2010 01:11 AM
Your opinions of the best combination of programming languages to learn. pr_deltoid Programming 89 09-15-2010 04:00 AM
What programming language, languages to learn for linux. gimmee Programming 11 11-28-2006 08:30 PM
good programming languages to learn qennster Programming 13 05-22-2001 11:12 AM


All times are GMT -5. The time now is 03:06 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration