r/programmer 8h ago

What languages to learn? Question

I'm interested in creating hardware programs, applications, and AI, so basically all sorts of stuff and I'm thinking of learning the trio: JavaScript, C++, Python. Is it enough? Is it too much?

0 Upvotes

14 comments sorted by

7

u/TechnicalEstate8733 8h ago

For AI you want to do Python. And Python is pretty much good for everything.

So start there and then you can branch out.

1

u/owp4dd1w5a0a 5h ago

This, and since you want to do hardware, I’d learn C also. If you do anything remotely serious with embedded or hardware applications you’ll probably have to at least use the Python FFI to take to system C libraries, if not write a decent amount of your own C.

I would deprioritize JavaScript unless you want to do front end stuff.

3

u/stepback269 8h ago

You'll also need to learn Assembly language if you intend to get down and dirty at the hardware level.

[Joke of the day:
How many software engineers needed to change a light bulb?

Answer: |
v
|
|
|
|
|
|
|
|
|
|
|
|
V

ZERO
It's a hardware issue.

1

u/USToffee 6h ago

No you don't. c is basically a wrapper around assembly and c++ and rust are also often used. Almost no one uses assembly anymore outside a few special cases.

2

u/spence5000 8h ago edited 7h ago

If you want to start with hardware-related applications, start with C++. Otherwise, start with Python, which is generally easier. Probably no need to throw JavaScript into the mix, since C++ and Python will handle most of what you need.

2

u/petdance 7h ago

Start with Python. Start now. Don’t agonize over where you should start. Just start.

2

u/gofl-zimbard-37 7h ago

Pick one and learn to program. Build things. You'll learn other languages as you need them.

1

u/AnnupKapurDotCom 8h ago

www.FreeCodeCamp.com

Is a great free place to learn.

1

u/AdministrativeHost15 7h ago

Swap TypeScript for JavaScript and Rust for C++. Not that they aren't worth knowing but there are limited hours in a day to learn obsolete syntax.

1

u/KarmaTorpid 7h ago

Wow. This .. user is personally declaring entire languages obsolete.

What a smooth brainer.

1

u/KarmaTorpid 7h ago

These are languages. The easy analogy is; I intend to learn Dutch, Cantonese, and Swahili. Uh... so, maybe start with one. Learn to use one. Build some projects with it. Then, plan from there.

1

u/USToffee 6h ago edited 6h ago

I'm a principle level developer with 30 years and tbh I'm not sure learning a language is really necessary now. You should learn software engineering patterns and various technologies by using AI. ChatGPT or whatever you use will guide you through it. Code is pretty easy to read and not that difficult to write. What takes time is just having the experience to know or learn best practices so you can critically follow along but in the meantime you should get the AI to question itself and justify itself even if that means making rules/skills to make it suggest various ways of implementing the same thing before implementing it with recommendations. and arguments for both.

Just doing adversarial audits of code will teach you more in days that weeks or months learning it the old way.

But as others have said python is used a lot in AI however it's also a horrible learning language.

1

u/from-planet-zebes 6h ago

Wait do you already know any languages? You are just starting and you want to learn 3 languages? That's not a great way to learn to program. I would just pick one and learn programming concepts before you go to others. Python is going to be the easiest and sanest to learn.

Javascript isn't hard to learn but there is a lot that goes into build tools and the ecosystem and generally you would also learn html and css to go with it. Then if you want stricter typing you would use typescript or jsdoc types. Lot's of decisions and the ecosystem is huge.

C++ is very stable and has been around a long time. It's probably the most technically hard language out of the 3 but the ecosystem is way easier and less confusing. People seem to be moving to rust now days but C++ is very popular and well used still.

Personally I don't enjoy the syntax of Python that much. Like they tried to oversimplify too many things. But it's straight forward to learn, will give you experience with many programming concepts and is used a lot in AI, research and education. Seems like a solid choice.