What is a favorable single programming language to learn for freelancing

Perhaps this is a newbie type of question and open ended at best..

I come from a systems admin/engineer background and was seeking to learn a programming. I see that .NET is popular and php, node.js. I have a bit of scripting experience and I am eager to learn.

I’ve been on plenty of freelance sites and see that most projects require a plethora of programming languages. For example, I understand that if a client is looking for a web developer (full stacked) it is expected to be able to tackle any programming language tossed your way.

However, I want to specialized in one language in particular that doesn’t require for you to learn other languages to combine then to complete a project.

I want to aquire SMB’s and potentially enterprise level projects. However, I don’t want to become a senior architect just yet. I simply want to venture into freelancing aside from my sys admin gig I already have. Yet, want to master a single language as I was told specializing is the way to go.

With respect to want the market is demanding for and you guy’s experiences, what do you guys think?



One that only requires to learn the language with no requirements to venture into other unless you would like to do so.
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Jason C. LevineNo oneCommented:
Do you want to do web stuff?

Do you want to build applications that are not web based?

Do you want to build mobile apps?

It's hard to say "learn this one" as any answer because you will end up learning more than one anyway.
tobe1424Author Commented:
I would like to stick to web stuff since everything seems to be heading towards the web...and mobile of course, but web seems to be a bigger monster therefore I see more value thank Mobile apps - off course i could be way off.
Jason C. LevineNo oneCommented:
For web you need to learn several things at a minimum

Javascript generally and specifically several libraries that are commonly used in development (JQuery, etc.)
At least one server-side language: PHP, .NET, Ruby, Python

Optionally, but probably also need to learn:

One or more SQL based databases (MySQL, MS SQL)
The ins and outs of a web server (Apache, NginX, IIS)
Email servers

It's not just one thing anymore.  All of the above are necessary to produce a working web app and as the app developer you need to be competent, if not expert, in almost all of those.

As a starting point, learn how to develop for LAMP (Linux, Apache, PHP, MySQL) and add javascript, HTML and CSS to the mix.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

tobe1424Author Commented:
Thanks for your input.

So you are saying that i.e. becoming a master at PHP and PHP only wont cut it at all? I understand that most clients will demand or want more skills from you. However, I've been pitched with, "hey do you know of a PHP developer?"

I dont know if they stickly wanted a few lines of code in PHP or if they wanted a full web app eco system.

But I was hoping that perhaps not becoming a web master but learning a single language...lets say RuBy and learning that perfectly and sticking to that would cut it.
Jason C. LevineNo oneCommented:
It's fine to learn a language, but if you aren't fluent in all of the other stuff I mentioned for web, you will not be able to output things properly.  So one hire now becomes two.  So by not learning these things, you potentially cost your clients more money and also limit the types of jobs you can accept.
So you are saying that i.e. becoming a master at PHP and PHP only wont cut it at all?
That's probably true. It's not absolutely true because I'm confident that some projects exist that only require PHP. But it's hard to imagine making significant business progress that way.

For example, HTML and CSS were mentioned by Jason. Hard to picture many web projects that won't involve those. PHP is used to generate HTML, and HTML can pass info to PHP for processing. Also, SQL was mentioned; and PHP regularly needs to interact with MySQL and other databases.

PHP can do a lot, but a lot is "glue" that interconnects other components.
tobe1424Author Commented:
i see what you guys mean...

So even learning C or C++ or C# alone would not cut it? There will be a need to venture into other languages as the projects are endorsed
SQL is possibly the best example. At some point, most programming and scripting languages make use of SQL to interact with a relational database. But creating "applications" using nothing but SQL (and the related tools from whatever DBMS is involved) is very unlikely, especially if it's a web app.

So, regardless of your primary programming language focus, SQL is a very likely needed secondary language in any environment. So, there's two languages. When the scope goes from just "any environment" to "web", then HTML, CSS, etc., are pulled in. So, two becomes three, four or more.

Fortunately, it's rare to need to be highly proficient in more than one significant language at a time. If you choose PHP, for example, you can become very good with it while only needing some basics of HTML and maybe SQL. Once you have the basics of secondary languages, you can usually extend your knowledge of them on an as-needed basis. You might only add one or two statements at a time. For most specific needs, you can often find examples that you can use to get by while you learn more.

The real difficulty will be making a living before having a sufficiently wide and deep foundation. With enough searching and time, you can probably find projects that only require knowledge of a specific group of three or four languages. Multiple projects, though, generally vary in which languages are needed unless you can be assigned a steady stream from a single source client.
tobe1424Author Commented:
I see what you guys mean.

I was under the impression that focusing on strictly Java or node.js will be a one way street instead of having to accommodate for other languages.

I hear node.js is picking up the pace
It kind of depends on what is meant by "programming (or scripting) language". That's a fairly nebulous subset of "languages" that needs some discussion.

SQL isn't exactly always considered as a "programming language" even though sophisticated business logic can be created with it. A good DBA can reduce what's required for Java (or COBOL or C# or whatever) by good use of stored procs, functions, views, constraints and whatever. Code in a site's "programming language" can be reduced by half or more if the database is properly constructed.

Similarly, HTML isn't exactly a "programming language"; it's a "markup language". But it can sure be hard to do much web development without it. I'm not sure how CSS might best be categorized.

Various languages can be classified in various ways. Some can fit in a couple different categories depending on what functions or features are used and what a site uses them for.

So, focusing on a particular "programming language", e.g., Java or node.js, can be a good choice for an individual. It's just that secondaries are needed at various points.

It's not much different from, say, an office manager for a medical clinic. English might be the focus language. Yet, some "medical" language is also needed, as well as some "accounting" and possibly even "legal" and other languages. In some cases, particular words will even have different meanings depending on which of the various languages is used.
tobe1424Author Commented:
i understand what you guys meant in terms of losing out on making more $ in a project.

I was under the impression that python or php had its niches. But it seems that we need to be full stacked devops people to make the bigger bucks
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Programming Languages-Other

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.