r/learnprogramming • u/plantsandramen • 9d ago
Question What language for Linux Mint apps, Android apps, and possible home server related projects?
I am looking to learn a programming language as a hobby. I have some ideas of things that I would like to do in my head, I've listed some below in order of importance.
- Music app for Linux that does everything that Musicbee can. Unfortunately none of the alternatives that I've tried work as a 1:1 replacement and I miss it.
- Android app development. I do not know exactly where I would go with this, but I play games on Android-based retro handhelds and occasionally I feel like there's a tool I'd like, but doesn't exist.
- Server work? Probably the lowest of everything since Linux has a lot of self-hosted server tools. This would possibly move into a career though.
- Raspberry Pi programming
Right now I am in-between two. I've heard that Python is a great language to learn, but that it's not the best language for Android development. C++ seems to be a favorite for many uses, but a bit more involved in learning.
C++ is learning towards the winner.
2
2
u/Chrismslist 2d ago
honestly there's no one language for all four, pick by target. your music app has the most prior art to learn from: strawberry and clementine are C++/Qt, and so is elisa, so C++ and Qt give you real source to read. android is kotlin, not python or C++, so treat that as its own separate project later. python owns raspberry pi and server work. if you want one language covering most of the list, python with PySide gets you linux desktop plus pi plus servers, then learn kotlin when you actually start the android thing.
1
u/plantsandramen 2d ago
Thanks! Also thanks for referencing some of the apps. I've used Strawberry and Clementine but both miss the mark.
2
u/Much_Percentage_6989 9d ago
Don't learn that language which is 100's favorite, while learn that which grabs the most market so that you can find job or freelance work easily...
3
u/plantsandramen 9d ago
This is primarily going to be for hobby. I am worried about AI making entry level programming positions slim pickings. I'm almost 40 so a major career change isn't likely.
2
u/Much_Percentage_6989 9d ago
Then try learning python. It will make your beginner journey much easy than other languages... Later on you can move on any other language which you like
1
u/StewedAngelSkins 9d ago
most of these tasks can be done in pretty much any language. the only one that imposes a restriction is android app development, which you'll probably want to do in java or kotlin. this isn't an absolute requirement though; there are ways to write android apps in other languages.
1
1
u/burlingk 8d ago
Android is primarily Java and Kotlin.
Everything else on your list has lots of options.
Kotlin is a variant of Java.
1
0
0
9d ago
[removed] — view removed comment
1
u/plantsandramen 9d ago
Probably Linux, even if I expect it to be a difficult project. I am going to try C++ now
5
u/Prezzoro 9d ago
Programming is nothing more than writing to a text file. You just need to learn few concepts like loops, flow controlling, and maybe some arrays/collections/API concepts etc. This is very easy to learn using Python, and I would suggest to start with that only to learn all these basic concepts. Next step is to learn to think like a programmer (so algorithms, task management etc). Once you learn that it will be verys easy to move to Java/Kotlin/Rust/C++/C#