What Stack/language/technology should one learn for employment?
I was wondering what stack/language/technologies one should learn if they are optimising for employment.
By optimizing I am not referring to a high salary I mean learning at stack/technology/language that makes its easy to be employed i.e jobs are readily available.
Python hands-down. It's easy to whiteboard. Academia uses it. ML is overwhelmingly Python. Every interview you ever do will be in Python, even if you're not coding in it for your day job.
As far as stack, get great at AWS. Learn the ins and outs of as many services as you can. Learn IaC like terraform. IMHO Someone who knows AWS + can write glue code + decent at python is probably the most widely applicable to the largest variety of jobs in tech.
I’d normally say Javascript, but that world seems to be a little over saturated with people, which causes contention for available jobs. If you go the C#/.NET route (or even Java) you’ll be set up for common “enterprise” jobs that appear all over the place in non-tech companies (e.g., insurance companies, finance, manufacturing, or anyplace that uses computers to the degree where they roll some of their own code).
I’d also learn a bit about databases: SQL is a skill I’m happy I picked up a few decades ago since it has come up repeatedly over my career, even though the bulk of my tech work has been non-database stuff.
I suggest pick something that you like and can spend longer hours with. It is not only the language but infrastructure these days. If you learn AWS you will not have problems of getting the job but would you be interested to learn a lot of dev ops related things?
Do you like interfaces and pixels? Web (js/css/html) or smartphone native(iOS/ Android app dev)?
You don’t care about looks but do care about works? Backend dev with Python/node js/other…
Do you enjoy creating new things or integrating things?
At some point one way or another you are going to try it all and flow to the place you like/paid more.
Optimize for 5-10 years rather than 1.
3 key things to cover the widest range of job.
a) write a api service in language of your choice with a complex enough backend (like being able to store and pull data from database, call other apis)
b) be able to deploy that service in AWS on some infra (EC2/ECS/Lambda) and understand what each one is and benefits/drawbacks
c) have some semblance of being able to set up a deployment pipeline with integration tests, e.t.c
For language choice, future is going to move more and more towards Python. Release 3.11 made great strides towards optimization for speed, and the future holds promise as ML is going to get applied to optimize the code even further and bring it closer to native performance. Its also the language to use for hiring interviews as its much faster and easier to write code in.
For web dev, you need to be able to create a full featured front end for a web app, with things like tests to ensure functionality, with modern frameworks like Vue or React.
Dart and Flutter knowledge and experience is going to be plus going forward.
I don't have any data to back this up, but I'm a .Net/C# dev and see tons of job postings all the time. I have yet to have trouble finding a job, even when I was first starting out.
Since you can really only have one job at a time and maybe like 10 total jobs over your whole career, optimizing for the biggest pool of possible jobs doesn't necessarily make sense. Obviously don't pick something esoteric, but if you have years of experience in any of the popular languages (Java, C#, Python, Ruby, PHP, JavaScript, etc.) there will be plenty of jobs for you. Optimize for whichever language you don't mind working in for years at a time.
If you want to earn decently - you can't go wrong with wither C#/.NET or Java. Lots of enterprise level jobs out there for those platforms.
If you want to enjoy your life (as I do), but maybe not make as much - I can't recommend Javascript / NodeJS / Vue (or React) more.
Your question implies that knowing a specific stack/language is the key to employment opportunity. From experience, I don't think that's the case.
For web stuff, I'd suggest learning JavaScript if you're interested front end or something like Golang if you like back end. Those will expose you to the necessary concepts you need to perform in those roles without bogging you down too much in cruft. You can safely apply to roles for most languages if you can demonstrate your knowledge sufficiently.
That probably depends on the area where you want to live in. Check for job postings in the area you consider, see what language is used the most
My stack is as follows: Python, Flask, JavaScript, HTML, CSS, Jinja2 ans JSON. Each language in this stack are combined together to create responsive, modern, web applications that run on almost any device. Most companies want you to know how to create back end, with a database and front end, the full stack.
I don't like java - but I have to appreciate Java has the strongest job market.
everyone uses java. the problem now will be separating yourself from people that claim to know java and people that know java.
the people that know java are a few i.e can do useful things with it at acceptable quality.
just my 2c.
Logically speaking, most jobs are web-dev not desktop/mobile. For web-dev learn HTML, CSS, JS, Typescript. Know the basics of SSL, HTTP, DNS, CDNs etc. Know some basics of cloud computing - get some servers spun up in AWS and something deployed for example.
React is a safe bet to learn.
Add a back end lang of your choice to that. You can determine the one for your city/location by looking at job posts. Could be Ruby, C#, Java, Python, NodeJS, Go or something else.
All said, I wouldn't optimize only for getting a job. You only need one job, so you can afford to pick a less mainstream stack if it makes you happier, or those jobs pay more but are rarer.
The binary language of moisture vaporators.
Companies don’t just hire people off the street. You need to know someone working in the industry who can get you a job and you should learn whatever stack they work with.
java with a bit of design patterns and some classic RDBMS knowledge.
Most jobs out there are about enterprise.
You won't enjoy it and the uncle Bobs of this world are insufferable but OTOH there's so many places to work that you can iterate till you find something that suits you. You can coast with that skillset till your retirement. Not to mention consulting after while.
Enterprise has already been answered but if you want to ensure you can always earn and live wherever you want, then LAMP stack is for you. Majority (or at least a plurality) of the internet runs on it and there is always a shit ton of maintenance work needed. You could freelance from a cabin in the mountains if you want and never run out of work.
JavaScript and React - it's the most popular language, and there are a lot of entry level jobs available because people need to make a lot of different websites that aren't complicated enough to require a senior engineer.
Probably:
Javascript/Typescript, Nodejs/Express, React, Postgres
Being conversant in modern DevOps tools and having some Python experience was enough to get me to interviews last time I was on the job market. AWS skills would probably rank next, followed by "general Linux sysadmin" - this last area is where I notice the biggest gaps, particularly in colleagues who have spent their whole careers working in ML and rely too much on notebooks set up by someone else.
Terraform, Helm (or just plain Kubernetes config), Ansible, other devops technologies.
The one that you’re most comfortable and happy with.
How about COBOL / DB2 / zOS? A lot of financial institutions use this and will for the foreseeable future. They cannot get enough COBOL devs.
simple logic would tell you to use a search engine for the query of "most popular X" where X = programming languages or programming frameworks
also, check out: https://roadmap.sh/