Whats the most in-demand programming language UNIX

I am interested in learning Programming Language to complement my UNIX. What language should I concentrate on to enhance my UNIX. What companies are seeking with UNIX. What languages are used with UNIX as for as there application. Are there any one here from DC

What you should learn depends a lot on where your interests lie.
There are two kinds of languages, procedural and non procedural.
Procedural languages include Basic, Fortran, Cobol, C, C++, Pascal, PHP, Bash, Java. All of these languages are the same, only different. They all execute statements in the order encountered, and really only differ in punctuation and vocabulary. If you know one, you should at least be able to read and understand the others.
Non procedural languages include the various dialects of SQL, RPG, and maybe some industrial ladder logic languages.
If you learn to use the LAMP (Linux, Apache, MySQL, PHP) environment, along with Javascript, and one compiled language that allows you to use shared memory and create re-entrant code, you should have a good foundation.

1 Like

I think maybe a better answer is an example:

At my work I have to use the following to get my job done, though you may note view them as compiled languages they all involve a syntax:
C, Oracle PL/SQL, ksh, bash, awk, dtrace, make (makefile syntax), java, SAS. All in the context of multiple applications so network protocols are important, as is TCP/IP programming (sockets).

Why?

Companies usually rely on networks of linux/unix servers, windows servers, and application servers on linux. So solving a single problem can take you anywhere - from program code, user environment settings to Operating system issues and networking.

To navigate through this mess you need lots of different skills.

1 Like

I concur with Jim -- the answer should be based more on what you like to do and what you want to do.
1) I spent several years managing unix environments; all the op stuff from users to backup to communications to tuning.
2) I also spent a couple years doing lots of detail-based data conversions for a company that processed millions of data records. This required a good understanding of data manipulaiton, methods to be efficient (speed and temp data size) since sometimes the files were huge.
2a) Accompanying this, there were automation skills. Since the data manipulations were often done on different systems and reapeatedly, there was an effort to automate many of the steps - for speed (no wasted time between steps) and accuracy (avoiding mis-typed switches or filenames).

So, do any of these sound like what you want to do? Or is there a specific area you have heard of?

~Joe

1 Like

Similar question, or related:
For "daily" jobs, perl/python/bash would be enough as my work is in bioinformatics.

I found out C/C++ maybe the "must-have" if any complicate problems like genome assembly (string searching & joining) with big data files are (10~100GB of millions of rows) normally used.
First skill is to handle big files;
Second is manipulation of data structures (suffix arrays, transformation of data format/structure) using smart algorithms.
Both need manage memory efficiently, and C/C++ seem the best choice, if not the only one as I know.
I was wondering what background are those softwares devloper? Guess they are majoring in software engineering. And how did they develop the prgoramming skilles? Or, how can I develop skills to glue the components together like the software enginner?
"Practice-practice-practice" is too vague to me. Especially I am stuck at the beginning.

Since I have more exp. with Oracle, I guess database management. How is Oracle combine with Linux

By "database management", do you mean "database administration", as in Oracle DBA?

If that's the case, then Oracle DBA guys usually don't do a lot of programming. And Oracle programmers usually don't do a lot of DBA work.
I say "usually" because there is a select breed of niche "developer DBAs" who can do both. In a large corporation, you may not find opportunities to do both. In smaller companies or startups, such opportunities are more.

Oracle is certified a few *nixes - Oracle Enterprise Linux, Solaris etc. but can run on virtually any Linux distro. If you are doing Oracle DBA work on *nix, then you should:

  • know the file and directory structure of the *nix installation
  • use commands to navigate around, find files, search/replace in files, zip, rename etc.
  • do backup, recovery, using Oracle's utilities etc. on *nix.
  • be comfortable with basic shell scripting - usually bash or ksh

If you are an Oracle programmer (who writes SQL, PL/SQL etc.) on nix, then you should be *very comfortable with shell scripting, sed, awk and/or scripting languages.

That's because once a SQL script is written, deploying and/or scheduling it in a *nix environment requires a little bit of scripting glue work.
As an example, if you want to connect to Oracle and execute your SQL script for a bunch of dates, spool the results to different files, aggregate the results, mail them to interested parties and then tar gzip the files, version them and move them to an archive directory, then you'd need pretty decent shell scripting skills.

Pick up a good book on Unix or Linux and understand the basics, how the filesystem is structured, what the commands are, how to use them etc.
Learn shell scripting - bash and ksh should be enough for a start.
Learn awk.
Install a Linux system as a VM (or even a dual boot), install Oracle and get comfortable with startup, shutdown, sqlplus etc.
Check this site for posts on Oracle and Linux - there are members here who work on Oracle on Linux. Look at the problems and see how they are solved.

Hope that helps.