• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Which programming languages can earn you extra/more income?

Status
Not open for further replies.

Stumpokapow

listen to the mad man
Yeah I guess in the field of data science, knowing the math is far more important.

A lot of people think learning program language is hard and are scared by the codes. However, it's not that bad once you get started, especially when it comes to R and Python.

But, learning the math IS harder if not genuinely hard. You are right. Some simple tasks can be done by on-site staff who know a thing or two about R or Python. But, you will become a god to them as soon as you start throwing out equations and math terms.

I am a molecular biologist/biochemist who uses R/Python and machine learning frequently for high throughput data (not sure if it's big data, but definitely a large amount) bioinformatics. There is so much you can do if you know the math in my field. But I don't get paid that well as I am still trying get a faculty job in academia.... I do get so many side projects requests tho once I showed collaborators what I can accomplish.

I'm actually not sure you need much of the math -- you probably want concepts that are mathematical in nature (having a basic understanding of bias/variance tradeoff and thus overfitting; getting the basic gist of generative vs. discriminative classifiers; understanding at a STAT 102 type level what regression and classification are).

But, like, most of the techniques you use are canned implementations that are easy to implement without knowing the math. Need to do PCA in R? prcomp is one line. Even if you don't understand singular value decomposition. Need to run elastic net? cv.glmnet into glmnet. Does it matter if you can't solve the Lagrangian dual or even understand what convex optimization is? I don't think so.

I mean, basic literacy isn't going to hurt anyone, of course. If you run a method and it fails due to having a rank deficient data matrix, then understanding that the technique requires inverting the data matrix and doesn't work on p>n problems is useful. But then again, if you google the error message, you'll find a stackoverflow comment that explains that even if you don't know any linear algebra.

This response doesn't apply to hiring standards or job expectations -- I'm in a very very very very different part of the ML landscape from bioinformatics -- but rather that I expect a programmer with even baseline competence could become proficient enough in ML techniques to use them professionally without a math background.
 
https://w3techs.com/technologies/history_overview/programming_language

Java is currently used by about 2.6% of the internet and falling.

vnlF1Pp.png


And Java has another problem; it's use has dropped dramatically while still having a HUGE amount of people with Java knowledge since many schools continued to teach Java as one of the main languages well into it's decline of use.

It's not "dead" of course; but I don't know why you think it runs "half the internet."
I somehow doubt that those statistics account for the back-end services invoked by said sites.
 

riotous

Banned
I somehow doubt that those statistics account for the backend services invoked by numerous clients.

Sure you'll have Java back-ends that won't show up on those usage stats; but in particular J2EE is in heavy decline. As a language it's never going away, but the platforms using the language are far different than they were a decade ago.
 
I can't believe people are recommending Data Science in this thread. Maybe I'm confused, but what exactly does a Data Science Developer do? Because if it is machine learning, lol, absolutely no one is going to hire someone without a MS in STEM for that lol.

Further more, unless you had a heavy math background in a prior life I'm not sure how far you could possibly get trying to learn this on your own. I took the Andrew Ng course on coursera and it was fine for me, but I had multidimensional calculus and was very familiar with doing vector math in Matlab. Someone taking this as a complete STEM beginner with zero math background good lord lol.
We had a data scientist from Supercell visit our University a while back.

To be brief, it wasn't machine learning at all for him at least, but more like handling various statistics. Seeing how people acted differently when a change was made etc etc. Programming wise mostly queries and scripts, but programming was only a small part of his job.

But yeah, that kinda needs a lot of math too (he was a mathematician too).
 

Munti

Member
I'm an archivist and I want to change my career (and I know SQL, Python and some web languages). With my degree, I have different possibilities to go. Two possibilities would be to have a further education in HCI/Interaction Design or Data Science.

My heart says to Do HCI/interaction Design as I think it is really interesting and something that I would enjoy to do. But everyone is talking about data science and how stupidly much money you earn of it. But what do data scientists? Is it also interesting or fun? Do they do just statistics the whole day? I don't know if I could do this my whole life.
 
Cobalt

Anyway. Just so you know, most data scientist are either:

-actual scientist
-mathematicians(I refer to these specific group of professionals as analyst but, you know, reasons)

Anything else is just analyst.
 

Somnid

Member
If you know your stuff, you are probably already working a job that pays well enough that you don't need to moonlight.
 

Magni

Member
Which language can earn me side-money, specifically. The type of work I look for doesn't absolutely require programming but some positions do ask for SQL and Python, so that much I know I'll study later on, but in the meantime, while I already have a full-time job, I'd like to know what I can make or do utilizing languages to earn extra income.

What are Rails apps?

Rails is a Ruby framework. A lot of really cool stuff is built in Rails: https://skillcrush.com/2015/02/02/37-rails-sites/ It was all the rage 5-10 years ago, now it's no longer the shiny new thing, but there's still a lot of work in the field.

Yes, no doubt, but the OP wants to earn extra income right now. For his own education and career advancement, he should definitely pursue R, Python, etc.

But where are the Python side gigs?

There's Flask and Django apps (Python's equivalents of Sinatra/Rails basically). Not sure how much opportunity there is for side-gig stuff, but there is definitely web Python work around.

There's far more COBOL and Fortran code out there than most people think, and the people who created and managed the systems that use it aren't getting any younger. Of course, niche knowledge is niche knowledge, so you'd always want to make sure you stay proficient with at least one generally-used language.

You can make money writing COBOL as your main job, but TBH I haven't seen much of a sidegig market for it.

I think it is extremely irresponsible to accept pay for work if you cannot guarantee you can deliver it at professional quality. Security vulnerabilities, performance concerns, and issues with maintenance are three of the main ways in which doing a bad job will cause pain for your client years in the future. A little knowledge is a severely dangerous thing here. Freelance work is substantially more dangerous than working for an employer, because there are fewer precautions to stop bad work from persisting in the system. Moreover, freelance clients are bullies -- they want the product delivered immediately, for as little money as possible, and they don't give a fuck about long-term considerations. It takes maturity as a programmer and as a freelancer to learn when to push back.

Very good post. Definitely start small, pro-bono websites for friends, local orgs, etc, before you start accepting paid work for more complex stuff.

OP, have you looked at the 2016 stack overflow survey?

http://stackoverflow.com/insights/survey/2016

I've been looking at them recently and I find they're quite helpful.

On that note, the 2017 survey results just came out http://stackoverflow.com/insights/survey/2017

SQL more and more is a supplemental skill not something you'll find a lot of dedicated jobs for; not that you can't, and not that it isn't a good area to learn, but if you are interested in application development you'll likely need to learn something else. A lot of app development is moving away from SQL and towards object or document based DBs.

The worst tech mistake at both my current company and the previous one was using Mongo as a main datastore. Thankfully at my current company, they were able to migrate off it early enough, but the previous one is still stuck with it and feeling the pain. From my experience, NoSQL isn't replacing SQL - it's complementing it.

Previous company had MySQL and Mongo as the main stores, with Cassandra and Redis supporting. Current company is PostgreSQL with Redis supporting. I'm sure some people have gone SQL-free, but I'd say they're in the minority. Just because people are using NoSQL doesn't mean they've ditched SQL.
 

EloKa

Member
-looks at our 15 servers that all run Java applications (mostly APIs, but also Tomcat) -

Yup.
- looks at the top 100 sites of the internet - nope.

JSP / Java has some usage in backends.
But Frontends (which would feature OPs mentioned HTML and CSS) usually run on pure PHP (Google) or some kind of "hacked" PHP like Facebook uses. The mentioned 2.6% number for Java stands propably for frontend usage only.
 
I somehow doubt that those statistics account for the back-end services invoked by said sites.

i instead doubt that those statistcs take into account that a flowershop website is nothing short of useless for these sort of consideration...
Enterprise solutions are usually built with java (and some C//C++ if there a need for extreme performance) but that's that..
and an enterprise solution is something a company gets payed in the range of millions of eu//usd..
a flower shop? a random joe site? nowdays you're lucky if you can charge 500 usd for a website :)

What people forgets easily is that the "web" is not the source of money nowdays..
nowdays you either do
1) dev for data science solutiion
2) build enterprise solution
3) customize existing erp//ecm solutions or other similar products

Outside from these, the market is not so large... being a webagency for random joes site is not worth the time committment..
It's *very* rare that nowdays if you work for a IT company you build (join a team that builds) a large website that is a frontend website only, so that statistic is moot..

imho :)

oh and by the way.. the one that posted that table should know that yeah you use php for the frontend but that's that..
pretty much all the rest of large site like google//fb rely on stratum NOT even remotely built on php :)
 
I'm actually not sure you need much of the math -- you probably want concepts that are mathematical in nature (having a basic understanding of bias/variance tradeoff and thus overfitting; getting the basic gist of generative vs. discriminative classifiers; understanding at a STAT 102 type level what regression and classification are).

But, like, most of the techniques you use are canned implementations that are easy to implement without knowing the math. Need to do PCA in R? prcomp is one line. Even if you don't understand singular value decomposition. Need to run elastic net? cv.glmnet into glmnet. Does it matter if you can't solve the Lagrangian dual or even understand what convex optimization is? I don't think so.

I mean, basic literacy isn't going to hurt anyone, of course. If you run a method and it fails due to having a rank deficient data matrix, then understanding that the technique requires inverting the data matrix and doesn't work on p>n problems is useful. But then again, if you google the error message, you'll find a stackoverflow comment that explains that even if you don't know any linear algebra.

This response doesn't apply to hiring standards or job expectations -- I'm in a very very very very different part of the ML landscape from bioinformatics -- but rather that I expect a programmer with even baseline competence could become proficient enough in ML techniques to use them professionally without a math background.
I managed to build a two class classifier model in AzureML for a marketing campaign with decent predictions coming from a BI background.
So it's at least possible without a maths background.
 

hodgy100

Member
Learn c & c++ because every other language becomes trivial afterwards.

SQL is massively sought after as is Java and as ive already said c & c++
 

Ether_Snake

安安安安安安安安安安安安安安安
I'm learning Python, would like to do some machine learning eventually.
 

Spuck-uk

Banned
Is PERL really that widely used? My exposure to it is admittedly limited but it seemed vastly more complex and I didn't pick it up as easily as I did SQL.

IME not really, you'd /probably/ find Ruby or Python a little easier to learn, with more opportunities. Everything is going to seem complex if you've only worked with SQL before.
 

Spuck-uk

Banned
I think you mean COBOL ;)

Quite literally a dead language; meaning there are jobs out there trying to figure out what some dead guy did.

Some of these jobs, by which I mean the ones in banking, pay absolutely obscene money. Because who in the hell willingly learns COBOL, and there's soooo much of it around in ancient systems.
 

TheOfficeMut

Unconfirmed Member
Some of these jobs, by which I mean the ones in banking, pay absolutely obscene money. Because who in the hell willingly learns COBOL, and there's soooo much of it around in ancient systems.

I mean, can anyone without a programming background or experience such as my self really teach themselves COBOL and expect to land a job?
 
https://w3techs.com/technologies/history_overview/programming_language

Java is currently used by about 2.6% of the internet and falling.

vnlF1Pp.png


And Java has another problem; it's use has dropped dramatically while still having a HUGE amount of people with Java knowledge since many schools continued to teach Java as one of the main languages well into it's decline of use.

It's not "dead" of course; but I don't know why you think it runs "half the internet."

There's still a lot fo Java used internally at companies that won't show up on internet usage stats; but that is and has been in decline for ages; and it's a tiny minority of "the internet."

I personally think you'd be better off learning SalesForce development than Java right now; and certainly better off learning .Net.

You sure this is the whole picture? I'm not a Java advocate or think anybody should really go out and learn Java, but a couple reasons suggest these numbers aren't telling the whole picture...

1) Android is Java based and it makes up about 75% of the global mobile market. While native app development has definitely declined over the last 2 years, the majority of Android apps are still native apps, written in Java. With that sort of market split and so much growth in mobile development, I can't imagine that Java makes up such a small split.

2) This must be missing backend services, where Java is still really, really prominent. The major commercial CMS and CRM market is still (unfortunately for me) heavily influenced by Java. Adobe Experience Manager, Zoho, Google Enterprise Search, Rhythmyx (blurrrgh) etc.

Java still regularly tops most popular programming language lists, and just my anecdotal evidence is in job searching... a Huge number of senior software positions expect competency in Java (which I don't have).

I mean, can anyone without a programming background or experience such as my self really teach themselves COBOL and expect to land a job?

No, to the question in the OP it's irrelevant advice. Like... no company is ever going to hire a freelance COBOL or Assembly developer who just recently started learning it. And, plus, it's so much harder to learn a language like COBOL, not necessarily because the language is more difficult than others (though it is), but because the resources for learning a language like COBOL are swamped like 100,000:1 vs. the resources for learning a more contemporary programming language like Ruby, PHP, Python, JavaScript, etc. Make no mistake, if you are young and have mastery of some legacy languages like COBOL and you have some professional business acumen, you could pretty much name your salary... But the likelihood of anybody without strong programming background getting into COBOL, in 2017, is very low and really difficult.

People come into threads like this and just don't read the OP, and recommend something that's either their niche or they read about it in some "HIGH PAYING PROGRAMMING LANGUAGES" article 6 months ago.
 

kevm3

Member
Side work? HTML/ CSS/ Javascript for front-end. Ruby on Rails, PHP or Node for back-end.

Sure you can try out C# or Java on the back end, but those are more for enterprise and not typically used for generating extra income. Also, how dedicated are you? Porgramming is time consuming and requires a lot of attention, so it's not going to be coming home everyday after work and working for an hour and getting an extra hundred bucks a day. Be willing to spend at least 3 hours a day if you're after some really decent money.
 

Quazar

Member
I'm sort of surprised that there are any jobs left for front-end only web developers. It's so easy to learn and use the libraries, anyone can do that kind of work. There's still room for visual design talent but the technical floor is really low. It's no wonder that everyone is focused on fullstack.

What are other people's thoughts on this^^^ I'm seeing quite the opposite to this, and almost seems like a myth at this point.
 

Spuck-uk

Banned
What are other people's thoughts on this^^^ I'm seeing quite the opposite to this, and almost seems like a myth at this point.

My workplace is looking for frontend only guys almost all the time. Finding someone design/art competent who can also code is pretty rare.
 
What are other people's thoughts on this^^^ I'm seeing quite the opposite to this, and almost seems like a myth at this point.

It's a myth. The arrogance/assumptions in the post pushed me away from replying... "Libraries make it so easy anyone can do it." It's like saying "jQuery makes JavaScript so easy, anybody can be a backend Node developer." It's one of those things where you read it and just JenniferLawrenceOkay.gif
 

kevm3

Member
What are other people's thoughts on this^^^ I'm seeing quite the opposite to this, and almost seems like a myth at this point.

I disagree with that completely. Maybe if he's working on some simple site for a buddy, then the front-end is simple, but app-like websites that have to work on a ton of different browsers is NOT easy. Neither is creating and maintaining the build system that will do all of the transpilation, minification, and all of the other processes that are necessary to get a site up and running.
 

ElFly

Member
You sure this is the whole picture? I'm not a Java advocate or think anybody should really go out and learn Java, but a couple reasons suggest these numbers aren't telling the whole picture...

1) Android is Java based and it makes up about 75% of the global mobile market. While native app development has definitely declined over the last 2 years, the majority of Android apps are still native apps, written in Java. With that sort of market split and so much growth in mobile development, I can't imagine that Java makes up such a small split.

2) This must be missing backend services, where Java is still really, really prominent. The major commercial CMS and CRM market is still (unfortunately for me) heavily influenced by Java. Adobe Experience Manager, Zoho, Google Enterprise Search, Rhythmyx (blurrrgh) etc.

Java still regularly tops most popular programming language lists, and just my anecdotal evidence is in job searching... a Huge number of senior software positions expect competency in Java (which I don't have).



No, to the question in the OP it's irrelevant advice. Like... no company is ever going to hire a freelance COBOL or Assembly developer who just recently started learning it. And, plus, it's so much harder to learn a language like COBOL, not necessarily because the language is more difficult than others (though it is), but because the resources for learning a language like COBOL are swamped like 100,000:1 vs. the resources for learning a more contemporary programming language like Ruby, PHP, Python, JavaScript, etc. Make no mistake, if you are young and have mastery of some legacy languages like COBOL and you have some professional business acumen, you could pretty much name your salary... But the likelihood of anybody without strong programming background getting into COBOL, in 2017, is very low and really difficult.

People come into threads like this and just don't read the OP, and recommend something that's either their niche or they read about it in some "HIGH PAYING PROGRAMMING LANGUAGES" article 6 months ago.

the problem with learning COBOL is that simply the environment where COBOL normally runs in are obtuse and hard to come by; the language itself is weird, but any programmer will understand it after a small acclimatization

but the experience with the mainframes and other terrible things people use to run COBOL on is something else entirely
 

Yoritomo

Member
Pick an OO language, learn architecture. It's easier to switch languages than it is to fundamentally learn OO programming patterns and anti-patterns.

Learn those patterns and how to implement them in one language. When you want to learn in another language you analyze and re-implement them in the new language.

Being able to "code" in a language is easy. Creating a large easy to maintain project with relatively easy to understand test driven code with minimal duplicate code, proper error handling, and effective use of OO patterns takes years of practice.

Switching languages/stack/tooling is much faster than learning the above. The above is an absolute requirement if you want to move to lead dev/architect type of positions.
 

Barzul

Member
It's my target this year to learn Python and then the Django framework. Gonna finally figure out programming this year and python seems like a good language to start with.
 

Quazar

Member
Thanks for the replies everyone. I keep seeing those statements pop up around the web. I'm just gonna ignore from now on.
 

Somnid

Member
What are other people's thoughts on this^^^ I'm seeing quite the opposite to this, and almost seems like a myth at this point.

I'm full-stack but I like to focus most on front-end. It's not true at all. Front-end is an entirely different beast, you are very code latency sensitive, very concerned about code how things load and asynchronicity and if you treat js like a typical OO language you're in for a world of hurt. The problem is most people don't have enough of a background to dig into the real problems of popular front-end frameworks and end up making something that's bloated and slow. Fancy build tools and frameworks aren't magic bullets, but they have a hell of a lot of marketing behind them telling devs that they are.
 

JohnsonUT

Member
My current employer begs to differ. Our home brew purchasing and logistics platform is primarily stored procedure driven (normalization? What's that?) with mostly classic ASP with a sprinkle of .NET for the front end. I can tell you that even though SQL is technically a nonprocedural language, it can be bastardized into just about any type of application you want to if you have the patience for 30k line stored procs that contain all layers of your traditional n-tier design outside of presentation. Cursors with nested stored proc calls nested with more cursors calling DB2 RPG procs via linked servers. So yea, SQL can emulate a programming language, if you hate anyone who would ever have to look at or refactor your code.

LMAO. I will concede everything you just said and have nightmares as well. DB2 stored procedures are great as long as you treat them like a magical black box and never have to look inside.
 

OBias

Member
Working at a large software company, specializing in a single language is much less useful than understanding principles and being able to adapt to whatever language is needed for a given task.

On my current team, I have written in Java, C++, Python, Ruby, JavaScript, SQL, and Lisp.

What kind of stuff you are using Lisp for?
 

Anim

Member
What kind of stuff you are using Lisp for?

I don't know what's the use-case for Bornstellar, but at my job I've used Clojure (which is basically Lisp that runs on the JVM) to write REST microservices. Functional languages are great for that - they make data manipulation very concise.
 

riotous

Banned
You sure this is the whole picture? I'm not a Java advocate or think anybody should really go out and learn Java, but a couple reasons suggest these numbers aren't telling the whole picture...

The initial post I replied to mentioned "enterprise java"; my thoughts really only relate to J2EE.
 

riotous

Banned
Just because people are using NoSQL doesn't mean they've ditched SQL.

It's not just NoSQL though; ORM continues to become more and more prominent, and ridiculously complicated stored procedures are less and less common.

Either way all I'm saying is there are less and less app development teams with a dedicated SQL developer; that doesn't mean there aren't jobs out there, but you are likely going to be expected to know an actual analytics or reporting front end along with SQL. Or SQL w/ the rest of a full stack for app development.
 

Stumpokapow

listen to the mad man
It's not just NoSQL though; ORM continues to become more and more prominent, and ridiculously complicated stored procedures are less and less common.

Either way all I'm saying is there are less and less app development teams with a dedicated SQL developer; that doesn't mean there aren't jobs out there, but you are likely going to be expected to know an actual analytics or reporting front end along with SQL. Or SQL w/ the rest of a full stack for app development.

(It's been a few years since I've interviewed anywhere, and the last time I did the SQL -> NoSQL transition was just occurring)

I would expect having experience in an SQL-like db gives you flexibility for a lot of different use-cases including a lot of domain-specific applications that have SQLite, Postgres, or MySQL based backends. I know a lot of GISes allow querying attribute data through SQL-like syntax; and there are DB solutions like InfluxDB which, again, not necessarily a traditional SQL architecture but still SQL-like syntax, or CartoDB for remote hosting of geospatial data. Plus a lot of applications in embedded contexts like cell phones use SQLite or another flat-file-plus storage schema that would benefit from knowing SQL.

I would think a company with sane hiring practices is smart enough to make inferences from what someone has direct experience with to what compatible skillsets they might quickly learn on the job.

Like, most of my commercial experience is MySQL, Postgresql, and MongoDB, with a bit of Redis and Memcached (if you would count them as "databases"). And then tons of stuff on the local analysis side. And tons of commercial work doing crosswalks between data sources. But I wouldn't expect that someone looking at my skill profile would flunk me because I haven't commercially used MapReduce or Cassandra at scale, and in an interview I think I could pretty accurately assess my strengths and weaknesses in DB applications more broadly.
 

Kelsdesu

Member
Good to see you sticking to that Udemy, OP. I dont think there is that much in terms of side work but, stick with it nonetheless.
 
It's a myth. The arrogance/assumptions in the post pushed me away from replying... "Libraries make it so easy anyone can do it." It's like saying "jQuery makes JavaScript so easy, anybody can be a backend Node developer." It's one of those things where you read it and just JenniferLawrenceOkay.gif

Yeah, it does come off as arrogant. The first time I wrote that post it was written as a question with a couple paragraphs before and after it, but I edited that stuff out, which was a mistake.

I was disappointed when nobody replied to it because I was hoping people would tell me I'm wrong, and explain what kind of front-end work is in demand these days.

When I said 'anyone can do that kind of work' I meant 'anyone working in web development'. Which may not be true but it seems that way from the people I've talked to.

Glad to be told I'm wrong!
 

Magni

Member
What are other people's thoughts on this^^^ I'm seeing quite the opposite to this, and almost seems like a myth at this point.

Speaking as a mostly backend dev, front-end is not easy. Sure, anyone with two halves of a brain can google and copy-paste a SO answer, but that's not how you build a good app. It'll work. Maybe. Some times. At first. And then the whole thing will come crashing down.

Coding is easy, engineering is hard. And front-end development is not just coding.

It's not just NoSQL though; ORM continues to become more and more prominent, and ridiculously complicated stored procedures are less and less common.

Either way all I'm saying is there are less and less app development teams with a dedicated SQL developer; that doesn't mean there aren't jobs out there, but you are likely going to be expected to know an actual analytics or reporting front end along with SQL. Or SQL w/ the rest of a full stack for app development.

Oh for sure. But I expect a backend developer to understand SQL, to understand the queries the ORM is generating for them. It's been a standard expectation for backend devs everywhere I've worked.

The only people actually writing SQL query on the daily are the data analysts hitting the analytics follower, not the engineers writing the app itself.
 

amanset

Member
The only people actually writing SQL query on the daily are the data analysts hitting the analytics follower, not the engineers writing the app itself.

YOu'd be surprised. I've done backend in several lines of work and that has not been true of a single company I have worked at.
 

riotous

Banned
I would expect having experience in an SQL-like db gives you flexibility for a lot of different use-cases including a lot of domain-specific applications that have SQLite, Postgres, or MySQL based backends. I

Certainly; it's an expected skill for any back-end developer, but not a skill that will get you a job on it's own in most places these days was my point.

It's a good thing to study; but you'll need more.
 
Status
Not open for further replies.
Top Bottom