this post was submitted on 03 Nov 2024
42 points (93.8% liked)

Ask Lemmy

27102 readers
4033 users here now

A Fediverse community for open-ended, thought provoking questions

Please don't post about current US Politics. If you need to do this, try [email protected]


Rules: (interactive)


1) Be nice and; have funDoxxing, trolling, sealioning, racism, and toxicity are not welcomed in AskLemmy. Remember what your mother said: if you can't say something nice, don't say anything at all. In addition, the site-wide Lemmy.world terms of service also apply here. Please familiarize yourself with them


2) All posts must end with a '?'This is sort of like Jeopardy. Please phrase all post titles in the form of a proper question ending with ?


3) No spamPlease do not flood the community with nonsense. Actual suspected spammers will be banned on site. No astroturfing.


4) NSFW is okay, within reasonJust remember to tag posts with either a content warning or a [NSFW] tag. Overtly sexual posts are not allowed, please direct them to either [email protected] or [email protected]. NSFW comments should be restricted to posts tagged [NSFW].


5) This is not a support community.
It is not a place for 'how do I?', type questions. If you have any questions regarding the site itself or would like to report a community, please direct them to Lemmy.world Support or email [email protected]. For other questions check our partnered communities list, or use the search function.


Reminder: The terms of service apply here too.

Partnered Communities:

Tech Support

No Stupid Questions

You Should Know

Reddit

Jokes

Ask Ouija


Logo design credit goes to: tubbadu


founded 2 years ago
MODERATORS
 

im very n00b about tech shit so i will ask 2 questions.

I want to self host some services for me and my first questions is: Any guide or book, or wtv, you recommend to understand self host world? I want to understand all things about it, but dont know where to start. And the guides for beginners i found on internet are very basic, just seems things like "do that, do this, and go" . I want to fully understand the world of self host. I want to understand firewalls, DyanmicDNS, MeshVPN; How to do self host; what not to do, what precautions, etc, etc.

The other question is about programming. I would love to know programming, but dont know where to start either. My focus is build android apps. Would like to learn programming to build apps for all world, but dont know how to do it and where to start. And i dont want make money with this, i just want to do this just for fun. Any advice? which language is better for a person who dont know nothing? which programs i need to install to start? Any book or tutorial recommendation ? im lost lol. thx

top 12 comments
sorted by: hot top controversial new old
[–] Bluetreefrog 2 points 1 month ago

Rule 5. Locking.

[–] [email protected] 7 points 1 month ago* (last edited 1 month ago)

a) I don't have any good recommendations. I'd just like to say that's a lot of knowledge. Linux, networking, firewalls, the software etc. It takes some time to accumulate all of that knowledge. And probably reading more than one book

b) There are a lot of books about Android development. I'd recommend you visit a library or larger bookstore. They should have some, maybe you can skim a few pages and see if you like how it's written.

Edit: Any maybe ask in the self hosting community and not on ask lemmy. ( [email protected] )

[–] [email protected] 4 points 1 month ago
[–] Solemarc 2 points 1 month ago

My first programming language was Java and if you're looking to build android apps you only really have 3 options, Java, Kotlin & Dart. Android is built on Java so if you want to learn how android works, I'd recommend Java or Kotlin.

As for learning to program, your best bet is to think of a project and then try to build it. You will inevitably hit a wall at some point and working out how to overcome it is the best way to learn programming IMO.

The classic first apps are "Hello world" and a Todo list. Hello world is just an app which says hello to you on startup, it's hard to make a simpler app. A Todo list app is a note taking app where notes are saved between sessions, and can be deleted or updated.

[–] crimsoncobalt 2 points 1 month ago

For the basics of programming, just pick any language to learn the syntax. Once you know one language, it's pretty easy to work with anything else. I'd recommend JavaScript or Python for that, but really anything is fine.

For advanced programming, the best thing you can do is learn to learn. Really than means being able to turn your concepts into concrete ideas that you can communicate into something other people will understand. Try taking a concept and doing Google searches for instructions on how to do it. Take other people's code snippets and make them work together for what you want to do.

Specifically regarding your desire to self-host something, pick a service and Google "how to self-host x". Maybe set up a PiHole or an Immich server for photos. Docker is widely used for easy portability for servers, so it will help if you learn how to use that. When you come to something you don't understand, do more Google searches and read everything, even if it makes your head spin. Read every bit of documentation you can and keep doing Google searches. Eventually, with enough iteration, you'll get something to work. Good luck!

[–] [email protected] 2 points 1 month ago (1 children)

I think learning linux and the terminal is a good place to start. Once you get comfortable doing basic stuff in the terminal, it will be easy to start making bash scripts. From there, something like Python would be a good next step.

[–] [email protected] 1 points 1 month ago

In my case Ruby was my next step. I tried to learn Python later on but it always felt like a step back. Unfortunately Python is much more popular though for some reason so YMMV.

[–] gedaliyah 1 points 1 month ago* (last edited 4 weeks ago)

Check out [email protected] which is a great community to help get started.

[–] deathmetal27 1 points 1 month ago

What's your educational background?

All of what you said depends on a lot of concepts. Self hosting implies you need to understand basic networking, running servers, basic security, etc. Plus a lot more depending on the nature of the application you want to host. A simple website would only require a web server running on some machine, but more complex applications might require many more dependencies such as databases, caches, etc.

Perhaps first draw out a plan for what exactly you want to do and then think about what you'll need to learn to achieve that.

Programming is a good place to start in general. You could start from either Python or JavaScript and then move on from there.

[–] Lexam 1 points 1 month ago
[–] IMALlama 1 points 1 month ago

On the programming front, there are a couple general buckets you can fall into.

Do you tend to naturally follow logical reasoning (given then )? If yes, you're in a pretty good starting position for algorithms. Computer programs should be predictable/deterministic. This all hinges on the people making algorithms implementing them well - especially when it comes to corner cases.

Do you build excel files with tons of vlookups and the like? If yes, data structures (think database schemas) and potentially back end could be your jam. Programs store/access data. That information should be well structured.

Do you have workflows/UX front of mine? If yes, maybe your strong suite is UI/"front end" design (and potentially implementation). IMO this is where a lot of FOSS falls down - my current podcast app can show you podcasts episodes that have been released in chronological order. You can remove them from this list, or you can add them to a secondary list they call a quque which... offers basically the same functional as the first list but now that it's a separate list you have to manage. This is not a dig on FOSS. If anything, it's meant as encouragement to say that even without knowing how to code you can contribute to help the apps you use feel better to users.

If you want to get your toes wet in Android download Android Studio. It's free.

Give the Jetpack Compose tutorial a run-through.

Kotlin is what happened when Oracle sued Google about using Java to anchor Android development. The link above gives a decent programming 101.

Finally, if you live close to a local community college, signing up for a few programming classes might be pretty helpful.

[–] passiveaggressivesonar 1 points 1 month ago

Codecademy.com has an ide built into the webpage and was by far the easiest way to learn coding. Their JavaScript python2 c# and Java courses are free

Their paid courses are fantastic and there's mobile app development courses in swift, kotlin and react native