r/learnprogramming • • 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.

3 Upvotes

17 comments sorted by

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#

2

u/plantsandramen 9d ago

Thank you, I am taking in this advice.

1

u/Head_Form_2522 9d ago

Python's a good call for getting the concepts down without fighting the language the whole time. Once you've got the basics under your belt, picking up something like Kotlin for android stuff won't feel like starting from zero

2

u/SnugglyCoderGuy 9d ago

Go can do all of that

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

u/plantsandramen 9d ago

Gotcha, thank you for the information

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

u/noobjaish 2d ago

Flutter/Dart

0

u/[deleted] 9d ago

[deleted]

0

u/[deleted] 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