Programming languages - as of right now, what would be the most easily monetizable language to learn

Do you want to work for (and by) yourself, or do you want to work for others? How much do you already know about programming?

If you are an experienced programmer and want this as a side project, I’d suggest focusing on Java and writing Android apps. It’s something you could do by yourself, with minimal investment. There are lots of good introductory books, Head First Android or Big Nerd Ranch for example, but you should really know the basics of Java classes and the collection framework for most apps. Not sure how much money you’d make, especially at 99 cents an app, but if it’s really good who knows?

I’m surprised nobody has mentioned JavaScript; that’s probably my answer. A lot of companies are moving to “single page web apps” which require knowing JavaScript and one (or more) of the web frameworks (like AngularJS) and libraries (like bootstrap). Node.js has also received a lot of attention lately so JavaScript isn’t just used on browsers any more.

I think it really depends on what you want to do with it. Javascript is kind of a lingua franca of web development (and as noted, branching out into the server side with Node.js, and also used as an internal scripting language in some other platforms), and there is always a lot of work in it. But its accessibility means that the number of people who learn it, at least a little, is quite large as well, and javascript dev tasks are among the most likely to be outsourced, if for no other reason than that web tier is not the core competency of most companies. (But of course, if you want to set yourself up as an independent contractor).

I’m 43, and I saw the writing on the wall in about 2002 or so. What had happened to me was that I graduated college in 1997 with a Computer Science degree from a large, reputable school, but with ok, but not great grades. Went to work for a small company doing programming in an obscure 4GL for their ERP and doing general purpose IT work. Did that for about 2.5 years, moved to Dallas, got a job as an ERP programmer using the same 4GL, did that for 2.5 years. Saw middle aged guys who basically had no other job prospects but this obscure-ass 4GL sweating bullets over job prospects if their contracts were up, and being worried about having to uproot their families and move because the only jobs were elsewhere.

I went back to graduate school and got a business degree and IT degree; I didn’t really want to play that game of trying to avoid being pigeonholed or obsoleted by technology or younger practitioners every time I turned around.

I am a guitar teacher, but also in the final year of a degree in software development - and where these two meet, is the key… let me explain…

In my job, I teach my students the basics of all the techniques they are likely to face when progressing as players. My goal as a teacher is to ensure they are self sufficient. In effect - I Don’t teach them what to learn, but HOW to learn.

If they come across a song they wish to learn in the future, and are stumped by a technique, or unsure as to what this or that means… then I have failed.

How does this relate to programming?

My course is not the most practical. Many students have complained that it’s largely theoretical and we don’t have to create projects to add to a portfolio or work on big assignments with real world problems to solve. But what we are being taught, is the fundamentals of programming and to understand every aspect of the discipline, from coding, to problem solving, to development, and even the business side of things.

Basically, during my course I have become fairly comfortable in Java, learnt the basics of VB.net, PHP, Javascript, HTML, CSS and MySQL.

I have also done modules in OO programming, databases, web technologies, concurrency & distribution and Java development from the point of view of the requirements, processes and designers.

My point being, is that I have just started a module based upon Python, and even though I have never seen this language before - I immediately understood it, and within a day, I was coding it with ease.

I am a pretty poor programmer - but my course has taught me that all languages are virtually the same thing, and I also understand how projects are designed from the ground up. I know how to write code that will be easily understood by someone else. Projects involve teams… and being more than a simple coder is essential.

When trying to code something - I often get stuck on what syntax to use, or how to arrange this statement or method to compile correctly… but my course has taught me how to come up with the right solution.

I know what I have to do - but not necessarily how to do it (code wise). But that’s the easy part. Logic and problem solving is harder to teach than straight up syntax and whether this line ends in a semi-colon or a whatever.

I have never coded in C or C# - but I know that I could turn up at a job interview, and prove that I have a track record of learning multiple languages.

To sum it all up. It’s not what programming language is the best to learn - it’s the ability to learn the language, and what to do with it, that will keep you in the game.

What I’ve found is that software development requires a commitment to lifelong learning to a far greater extent than any other job does. People who go into software expecting to learn some concrete thing, and then do that thing and only that thing for the next few decades, are consistently going to end up like your middle-aged-4GL guys.

To have a long programming career, it is vital to keep learning new things with the expectation that they will be obsoleted eventually and you’ll have to learn something even newer.

Of course; I just didn’t like the sort of inherent job insecurity that it suggests, and really don’t like the fact that so much is now outsourced to foreign countries.

I’m absolutely glad I got out of the programming game when I did. That said, I’ve actually picked up some quite strong SQL query writing skills and some other technical stuff in the course of being a BA and product manager, but my career doesn’t rely on them.

Just as a counterpoint, I’ve found the exact opposite in my career. It wasn’t until I learned to code and got deep down into the product stack that I started to feel like my job was secure (and that feeling was validated by many rounds of layoffs I survived). At least at my company, the BAs and Product Managers get a lot of churn.

Python would probably be the best choice. It’s relatively easy to learn and used extensively in a wide variety of applications. It’s used in everything from scripting automated test runs to creating production applications.

I wouldn’t learn a niche language unless you already knew of an opportunity. The jobs may pay well, but they will be hard to find and will likely require someone with a more expert knowledge of the language and product being supported.

This applies to most jobs in IT. Admins, operators, integrators, designers, users, everybody can expect the technology to keep changing. Simply keeping up with new terms and TLAs takes a lot of effort.

I think we’re maybe talking about different sorts of job security- maybe we can call what I’m talking about “career security” as opposed to job security.

I always felt like if I wasn’t careful and lucky in my job choice, I’d end up in some kind of technical backwater eddy, and be stuck doing that, and only that, for the rest of my career, without essentially having to start over from scratch. I’d have had job security out the wazoo, as there aren’t many people doing those backwater eddy kinds of things.

I was more concerned about getting into a career that would let me weather layoffs with relative ease; being a BA/product manager/project manager means that I may get laid off more often, but it also means that I can find a job without much worry about having the exact technical chops that the recruiters are looking for.

Maybe it’s differing experiences driving my attitude- I felt like I had a hard time… as a 28 year old who was 4 years out of college, finding jobs that weren’t what I’d done for the past 4 years. That kind of scared me- I was thinking that “Oh, I’m young, I’m still up to date, it shouldn’t be hard to switch to something more technical and less business oriented.” But that wasn’t the case for me, even though I had great references and job performance. It was literally as if since I’d done something, that I was stuck doing that. I figured that it would only get worse as I got older, so I pulled the eject handle fairly early on that phase of my career.