Linux - GeneralThis Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then 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.
I do not think this should start a flame war, but if it would, can someone please call the fire brigades?
If one wants to program his linux machine, what choice of programming languages should he select that has value to employers, especially in the server and networking environments. thanks.
That's a pretty much unanswerable question. You mention server and networking environments, but this is still very open ended. Are you talking about linux admin style server maintenance? SQL development? Every programming language has its place, and in some cases they are on complete opposite ends of the spectrum. You need to decide in what area you want to be employed (application development (and in what field), IT/admin, etc.). The Linux kernel and most internal programs are written in C, however C won't get you very far in server/networking administration. Shell scripting is one of the big areas of administration, so that might be a place to start.
My friendly and actually rather-serious suggestion is: "keep learning new languages, all the time." Over the past never-mind years, I've worked professionally in about two dozen of them. (I've even written two.) To be honest, it's a bit of a hobby for me.
The Linux environment is extremely rich in language tools, and of course, they're all free. Don't just look at the so-called "ALGOL derivative" languages ... which is virtually all of them if not all of the ones that you presently know. Look also at things like "R", "Prolog," and "Lisp."
Every programming tool (I don't limit myself to saying "languages") represents a particular refined technique that someone used to address a particular problem in what he thought was a unique and different way. (Okay, okay, Java was obviously designed by a lugubrious committee of village idiots, but it's done now. ) You can learn a lot by getting your feet wet with them, even if you never actually use them. You're building up a richer context of experience with which to approach any problem, and of course, when (not "if") someone throws you a curve-ball in the form of some new tool that you need to be able "to start using yesterday," you're much better prepared to do just that.
I'd say that it's that ability that's most important: not "what you know now," but "how fast and how thoroughly can you learn something else?"
yeah, i think i share the same view with sundialscvs. it's not what language you know, but how can you beat the learning curve based on the shared principles of language design and programming. thanks
Adding to what other members have said, Problem identification and breaking the task(s) down in simplest terms provides the means for a programmer to get to solutions. Not all programmers are capable of simple algorithmic development so as to break the problem/solution into blocks in order to get to the end solution(s).
I have worked with people who could intuitively identify solutions but their code techniques were not top notch. Also worked with coders that could write in their sleep when given good directions as to what was to be done to produce tight and productive code.
As to which language that will provide employment? Well, that would be the language that the employer desires or dictates to you to be proficient with in order to get the posted job.
(Okay, okay, Java was obviously designed by a lugubrious committee of village idiots, but it's done now. )
I'm going to object to that in the weakest possible terms: Java was designed by a committee of people who started out quite intelligent, but, by the time that you dressed them up in suits and ties and tightened the ties to the point that no blood could possibly ever reach the brain and made them come to committee decisions they might as well have been village idiots. With AK47s. And a hatred of outsiders.
Quote:
If one wants to program his linux machine, what choice of programming languages should ... especially in the server and networking environments.
You'll have to learn some shell scripting, probably BASH. Half the time you might wish that you were using Python/Perl/Ruby, but some basic level of BASH will be vital to you, so that's one for your list.
I also recommend bash, especially for Linux. However, I have no employment experience. I mean it's just that you will have to run commands and write some scripts.
Bash is obviously vital. But don't forget Python. That's used for a lot of Linux housekeeping tools, especially in the GUI. Many people think "Programming? That's C" but, of course that's for writing applications rather than running systems.
The suggestion to learn several different languages is good, because they'll give you flexibility of outlook. I'm no programmer, but I once found a better solution to a problem in a Basic program from trying to do the job in APL!
I do not think this should start a flame war, but if it would, can someone please call the fire brigades?
If one wants to program his linux machine, what choice of programming languages should he select that has value to employers, especially in the server and networking environments. thanks.
My qualification for answering this question is that I've purposely avoided focusing on the "popular" languages, which has left me rather poor. Unfortunately, the really cool, interesting, and most idealistic languages are less popular in the business world. (Haskell, Prolog, Lisp, etc.) If you want to have fun programming, and actually learn valuable programming concepts, try one of those.
Anyway, toward your original question: at the local university, PHP was really popular on the Web side, although for security reasons they are converting everything over to Python. As far as practical scripting, there is Python, Perl, and (if you really hate yourself) Bash. C++, of course, is the old standard for application development. C for driver and kernel development. Traditionally C for networking, though I think the scripting languages like Python are getting better at handling that now. If I was focusing 100% on employability, I'd probably go with Python and C++.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.