Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Any bets on which programming languages that will help land a job?
4 points by sawirricardo on Aug 1, 2023 | hide | past | favorite | 10 comments



Something I wished I’d known when I first started is to look at the job listings in your local area and see which languages are being used. You might be able to get lucky and get remote work straight away, but you’ll probably find it easier to get a local job in an office. I learned JS and React early-ish and no companies in my backwater town were really using it yet. If I’d have had the money to move to one of the big cities I would have been able to get a job straight away but I didn’t so I ended up going back to working menial jobs for a while before I eventually landed a development job.

The other component to consider is what type of company or problems do you want to work on? If you want to work on games, you’re best off learning C++. If you want to work on web applications you’re best off learning Typescript & React or Ruby. If you want to work on Wordpress sites: PHP. If you want to work for corporate companies, C# and the Microsoft ecosystem or Java are probably your best bet. If you want to work on crypto or for Amazon then you probably want to learn Rust. If you want to work on embedded systems: C or Rust. If you want to work for google: Go. If you want to work for Apple or on iOS apps: Swift. If you want to work on Android apps: Kotlin. If you want to work in AI and data science: python.

If you have a particular company in mind, try and find out what their stack is and learn that.


Do hard things. The jobs are fewer, but hiring is easier, they pay better, and you will mostly have better job security. Most people prefer easy or trendy things because that is the maximum of their capabilities or because they lack the discipline to follow through.


This 100x

Perhaps better described as "do the most difficult thing you can do".

I'd add "that you find interesting", but for most people, the most difficult thing that can master is typically something they also find engaging, the two tend to go hand in hand.

Also, it doesn't have to be hard (i.e. a slog) for you, the point is to focus on things beyond the ability of as many other people as possible.


What are hard things?


If you want to do webdev, it will be very hard to avoid JavaScript/TypeScript. These aren't going anywhere as long as web browsers are a thing. It is possible to get a backend only job, but you'll be really limiting your prospects if you can't code for the frontend.

Otherwise you really need to cater to your region and your goals. You can get a job where you write R or Typescript or C, and those would be very different jobs, at very different organizations, maybe in different physical locations.

Luckily, the ABCs of learning to code are pretty much the same in most modern languages, so picking any popular choice will give you the ability to pivot when needed.


If you want to with backend only or machine learning specifically then definitely python. For anything web-related (frontend and/or backed), go with JS/TS


COBOL… no, seriously… demonstrate the ability to write (and rewrite) solid, performant COBOL and you’ve got a job for a lifetime. Same with Fortran.


Python, JavaScript


Most of them, just depends what you want to do.


If you want to maximize number of jobs requesting a language you know, then I think they would be Java, C++, JavaScript.

But...you're looking at one variable: programming languages known, and this is an optimization problem with many variables, because what you are really trying to maximize is the employer's likelihood to make an offer.

Even within the coding skill set, the languages are only one part. The frameworks you know are arguably as important as the language. The build tools you know only a bit less important. If I only know Lit and it's a React shop, then I'm going to be a tougher sell than the guy with near-equivalent other skills.

But...you are likely not applying to positions posted as 'Wanted: Coder to sit in closet and write code to well-written unambiguous specs'. More likely, they are software engineer positions.

That means you need to find the right equilibrium point for you in the tradeoff space of the following:

- your hygiene

- your joy (if you do not love what you do, work towards doing something else, because life is just too short)

- your programming languages

- the frameworks you know in those languages

- the language specific build tools you know

- the language agnostic build tools with their own domain-specific languages (DSLs), e.g. Docker, podman, K8S, Vagrant

- your design skills

- your design documentation skills (writing, UML diagramming, whiteboarding)

- your communication skills (conversations, presenting)

- your computer science knowledge (algorithms, abstract data types, OOP, design patterns)

- your ability to work with others (how log can your drama-llama-ity go?, how well are you liked)

- your ability to mentor others

- your ability to receive feedback (constructive or otherwise) calmly, digest it, and act on it. Non-constructive feedback still comes from a pain point - find the pain point, turn it into constructive feedback for yourself (even if ultimately that's 'find another job').

Should you try to maximize all of the above across the majority of the total SWE job market?

No. First, you likely can't. Next, your focus will be so spread out that you will become the avatar of the concept 'Jack-of-all-trades, master of none'. That's not a compliment by the way, that was (and is) an insult. Finally, even if you could, your competition would be huge, the majority of candidates.

Be a tree when it comes to your technical skills. Find a niche that's popular and has been for several years (J2EE, React, Camel, Kafka, etc.) and make this your current trunk. Like a young tree, your trunk is thin. As you grow you will broaden what's in your base (rings on the tree), and branch into other areas that might not be in your base yet but you know them well-enough to work them if called upon to do so.

As for other skills...

Get good - dive into your chosen niche, code every day. Code a lot. Make stuff for free and release it Open Source. The interactions here will also help you with your non-technical skills. Spend time working on dev tools - the ones specific to your language, and Docker.

Get fast - Good is not enough. If your client wants an 80% solution in 2 months to get market advantage, and you deliver a 100% solution in 4 months... well, you may be out of a job. You can use programming competitions to help with this. Remember though, you get two: Fast, Cheap, Good. When you code on the job make sure you understand what your customer wants.

Get smooth - Join toastmasters. Mingle at Meetups, ideally presenting at them. Do semi-weekly podcast. Read Dale Carnegie. Take a course or two at the Center for Creative Leadership. Learn how to get along with people, how to take and give feedback.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: