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

Ask Lemmy

27231 readers
2387 users here now

A Fediverse community for open-ended, thought provoking questions


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 !asklemmyafterdark@lemmy.world or !asklemmynsfw@lemmynsfw.com. 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 info@lemmy.world. For other questions check our partnered communities list, or use the search function.


6) No US Politics.
Please don't post about current US Politics. If you need to do this, try !politicaldiscussion@lemmy.world or !askusa@discuss.online


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 5 comments
sorted by: hot top controversial new old
[–] hendrik@palaver.p3x.de 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. ( !selfhosted@lemmy.world )

[–] Mearuu@kbin.melroy.org 4 points 1 month ago
[–] moonlight@fedia.io 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.

[–] undefined@links.hackliberty.org 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.

[–] passepartout 1 points 1 month ago* (last edited 1 month ago)

As far as resources go, books are more complete resources but youtube videos and getting started pages / documentation / blog posts about projects / topics will get you up and running faster. This will be the resources you will frequent the most (+ stackoverflow) in the future over books. At some point a profound knowledge will help though. If you're really into books you can check out O'Reilly or No Starch Press (they're on sale via Humblebundle regularly). If you have the spare time do a Harvard edx CS50 Course (stay away from udemy or similar services if you want a general knowledge and are not looking for some very specific thing). Read forums like the self hosting / home lab / programming communities on lemmy, try to understand the discussions / their problems, they may arise on your journey as well.

For selfhosting I'd recommend getting comfortable with the linux command line at first (this may help: https://www.linuxcommand.org/). Set up a VM in VirtualBox / VMWare / whatever hypervisor you want, install a Linux image (I'd recommend plain Debian without desktop environment). Now you have a sandbox where you can toy around. If you're on windows you can use WSL2. If you're already on a linux desktop, toy around there. If you already got some hardware like a raspberry pi, get that up and running, plug it into your network and SSH into it, then you have got your playground there. Get the basic commands in like ls, pwd, cat, tail, touch, mkdir, rm, ... And some things you can do with them. Check out their respective man-pages. After that, install some packages, change configs (I'd recommend nano over vim for starters). From now on, there are no boundaries of what to do. Set up your first basic webserver with apache / nginx / caddy, install docker / podman and containerize / get some images, set up pihole, nextcloud, jellyfin, do whatever you like... Congratulations, you are now "self hosting". If you got all that, which may take a while, you can consider networking and firewalls (you could get a cheap router that supports openwrt to learn about these things). Don't open ports to the internet as long as you're not 100% sure what you are doing. You can set up a VPN with DynDNS on most modems / routers connected to your ISP though, opening up your self hosted services only to you / anyone with access.

For Programming, set a goal. This does not have to be reinventing the wheel, try something small and doable first, like a notetaking app, snake game, etc., as these might still take you several weeks / months to complete, depending on the technology you implement them with. That said, reconsider Android as an entry into programming. Toy around with some stuff with a lower gateway hurdle, like html, js, css, then maybe Python or Java. Get to know the syntax, data structures, keywords, paradigms, conventions with small little programms, and/or have a look on pages like leetcode, codewars, khanacademy, etc. Paste code with errors in chatgpt for help if you get stuck. Only then (or parallel timewise if you have a high tolerance to frustration) research the programming language and paradigms used for android (likely java / kotlin), get android studio up and running, start with a simple screen showing e.g. a label and a button. You can always extend (or more likely start from scratch) later on. If you want more than what the plain android framework is capable of, look for something else (I don't know a lot about modern android programming though lol.)