• If you're here for vtubers, I highly recommend you go to The Virtual Asylum instead.
    They'll love you there

Hello i want to learn programming

Abrenak801

varishangout.com
As is in the title i'am interested in programming my interest has been increasing with ever growing privacy and push to remove anonymity from webs. My interest are vpns self hosting how they work how to use them safely / self hosting emails / potentially somewhere down the line a video games creation if my time allows it. I use windows 10 i would appreciate online guides / books / youtubers or sites that talk about those topics i thank you in advance.
 

Halo

varishangout.com
Regular
As is in the title i'am interested in programming my interest has been increasing with ever growing privacy and push to remove anonymity from webs. My interest are vpns self hosting how they work how to use them safely / self hosting emails / potentially somewhere down the line a video games creation if my time allows it. I use windows 10 i would appreciate online guides / books / youtubers or sites that talk about those topics i thank you in advance.
Sounds more like you're interested in self-hosting not necessarily programming but since I've done all of these I think I can help.


Self Hosting:
Thanks to our lovely Linux friends theres plenty of ways to self-host things, and shitloads of documentation on how to do them.
Be warned: If you're gonna do this i hope you can read. A lot of mistakes can be easily avoided if you just read the guide or doc or whatever you're following carefully (Said from experience).

Step 1 - Server:
If you have the extra parts I highly recommend you make your own server (Motherboard, Ram, Storage, CPU is all you need), and install
Ubuntu Server on it (Click Manual Installation).
It's very easy to setup and has a lot of optional packages at the install screen for you to select if they sound interesting.
If that isn't an option you can rent a VPS for fairly cheap (5Euro/USD a month). The OS comes pre-setup so if you haven't installed anything yourself before that's a good route to go.
Step 2 - Software:
Email
So for an email server we use iredmail for the setup since it's a massive pain in the ass to configure it to be completely honest. They've got a detailed guide to follow and if you have problems you can easily google it, theres a lot of guides after that on what you need to setup after (DMARC, DKIM, SPF) and i'm fairly sure IRedMails guide covers it so just follow that.​
VPN
If you're gonna host a VPN you should get the VPS since otherwise your IP will still just be your home IP lol, but as for setup OpenVPN is the way to go I think. I've looked at using it but never got around to trying so can't tell you how difficult it'll be but again, if you follow the guide you'll have a good time.​
Now if you meant VPNs in general then this is really up to you to do your own research but I believe @DarkMahesvara has talked about VPNs before, basically it comes down to however you trust the most to have your data.
Programming
So you specifically mentioned you want to learn game programming so for this you'd have to do your own research.
"What kinda game do you want to make?" I guess is the most important since it'll determine what you want to use, and learn.
The Go-To Game Engines in my opinion are Unity, Unreal, and GoDot. I've only got experience with Unity and it's pretty decent to use. It's how i started programming, and many will argue about what language to learn first, but honestly the best way to start is just dig in and make a project.
Obviously don't expect to make Minecraft, or Elden Ring, or Skyrim your first try, but start small and try learning new concepts each time.
It's a lot more satisfying to learn by writing games imo since you see the progress a lot more clearly than making console line stuff.​
Anyway, Unity uses C# for it, Unreal uses C++ and GoDot i'm not really sure, I think @lapin used it(?) so he maybe able to tell you more.​

As for tools, for the server all you're gonna need is powershell, so get familiar with linux commands, and for programming it's up to you
on my desktop (Win10) i use Visual Studio Community, while on my laptop (arch) I use Code::Blocks.
I prefer Visual Studio for my bigger projects but CodeBlocks hasn't been awful so far, and served me well while i've been practicing with C

When it comes to inspiration to work on my projects (which may not be a problem for you if you're disciplined) I like watching DevLogs. It's nice to see how other developers projects are coming along, and gives you some idea on how they format their code and some standards.
Also don't be afraid to ask questions or google if you're having a problem. Just make sure you actually learn from whatever you found and aren't copy pasting code.
Stackoverflow is particularly helpful here for me personally.​

christ what else... I've rambled a lot, but hope it helped a bit. If you got any questions server wise feel free to ask. I'm the site admin so hopefully i can help a little bit with issues :cirno-laugh:

Good luck and don't give up!
also explore programming and try learning other fields too. I went from wanting to make games, to making software, to web development (fullstack) and it's all helped me a little bit, but I'm still far far far far far from a professional. I just do it for fun in my free time
 

Abrenak801

varishangout.com
Sounds more like you're interested in self-hosting not necessarily programming but since I've done all of these I think I can help.


Self Hosting:
Thanks to our lovely Linux friends theres plenty of ways to self-host things, and shitloads of documentation on how to do them.
Be warned: If you're gonna do this i hope you can read. A lot of mistakes can be easily avoided if you just read the guide or doc or whatever you're following carefully (Said from experience).

Step 1 - Server:
If you have the extra parts I highly recommend you make your own server (Motherboard, Ram, Storage, CPU is all you need), and install
Ubuntu Server on it (Click Manual Installation).
It's very easy to setup and has a lot of optional packages at the install screen for you to select if they sound interesting.
If that isn't an option you can rent a VPS for fairly cheap (5Euro/USD a month). The OS comes pre-setup so if you haven't installed anything yourself before that's a good route to go.
Step 2 - Software:
Email
So for an email server we use iredmail for the setup since it's a massive pain in the ass to configure it to be completely honest. They've got a detailed guide to follow and if you have problems you can easily google it, theres a lot of guides after that on what you need to setup after (DMARC, DKIM, SPF) and i'm fairly sure IRedMails guide covers it so just follow that.​
VPN
If you're gonna host a VPN you should get the VPS since otherwise your IP will still just be your home IP lol, but as for setup OpenVPN is the way to go I think. I've looked at using it but never got around to trying so can't tell you how difficult it'll be but again, if you follow the guide you'll have a good time.​
Now if you meant VPNs in general then this is really up to you to do your own research but I believe @DarkMahesvara has talked about VPNs before, basically it comes down to however you trust the most to have your data.​
Programming
So you specifically mentioned you want to learn game programming so for this you'd have to do your own research.​
"What kinda game do you want to make?" I guess is the most important since it'll determine what you want to use, and learn.​
The Go-To Game Engines in my opinion are Unity, Unreal, and GoDot. I've only got experience with Unity and it's pretty decent to use. It's how i started programming, and many will argue about what language to learn first, but honestly the best way to start is just dig in and make a project.​
Obviously don't expect to make Minecraft, or Elden Ring, or Skyrim your first try, but start small and try learning new concepts each time.​
It's a lot more satisfying to learn by writing games imo since you see the progress a lot more clearly than making console line stuff.​
Anyway, Unity uses C# for it, Unreal uses C++ and GoDot i'm not really sure, I think @lapin used it(?) so he maybe able to tell you more.​
As for tools, for the server all you're gonna need is powershell, so get familiar with linux commands, and for programming it's up to you​
on my desktop (Win10) i use Visual Studio Community, while on my laptop (arch) I use Code::Blocks.​
I prefer Visual Studio for my bigger projects but CodeBlocks hasn't been awful so far, and served me well while i've been practicing with C​
When it comes to inspiration to work on my projects (which may not be a problem for you if you're disciplined) I like watching DevLogs. It's nice to see how other developers projects are coming along, and gives you some idea on how they format their code and some standards.​
Also don't be afraid to ask questions or google if you're having a problem. Just make sure you actually learn from whatever you found and aren't copy pasting code.​
Stackoverflow is particularly helpful here for me personally.​
christ what else... I've rambled a lot, but hope it helped a bit. If you got any questions server wise feel free to ask. I'm the site admin so hopefully i can help a little bit with issues :cirno-laugh:
Good luck and don't give up!
also explore programming and try learning other fields too. I went from wanting to make games, to making software, to web development (fullstack) and it's all helped me a little bit, but I'm still far far far far far from a professional. I just do it for fun in my free time
Once again thank you for answer. information you gave me were very useful and is you don't mind me asking how long did it take to develop skills necessary for self hosting and codding?
 

Halo

varishangout.com
Regular
Once again thank you for answer. information you gave me were very useful and is you don't mind me asking how long did it take to develop skills necessary for self hosting and codding?
self hosting is just something I kinda did.
I learned everything as i needed it.
again google is your best friend.

as for coding... i've been coding for about 5-6 years, but only recently have i really... "gotten" it.
it's just something you practice over and over with projects and eventually you start seeing patterns, and getting into the right mindset to problem solve whatever you're doing.
I've got a long list of random projects I did across different languages and it's all added up to a mental library of ways to do stuff.
Your best help here is to just find something you wanna do (Make a game, code a site, make some desktop app) and use google to figure out where to start.

Like I said earlier to make a game figure out what you wanna make, play something like it, and try to think about how the game designers made it themselves.
Find an engine to get started with, do some projects to get the hang of it, and build up to making your game.
Devlogs will be a great help here for getting into the mindset and again google is your best friend.
 

YakuInTheFlesh

varishangout.com
Regular
Your best help here is to just find something you wanna do (Make a game, code a site, make some desktop app) and use google to figure out where to start.
Added to that: A great thing you can do is work on other peoples projects. Nothing taught me more about writing code than my first job where I was pretty much thrown cold turkey into a large application that was used by millions on a daily basis.
Learning from other peoples experience is a fantastic way to improve at a quick rate. Of course like with any skill it's the more you do it the better you get at it. And I mean actually do it and don't just copy other peoples work.
 

Abrenak801

varishangout.com
Added to that: A great thing you can do is work on other peoples projects. Nothing taught me more about writing code than my first job where I was pretty much thrown cold turkey into a large application that was used by millions on a daily basis.
Learning from other peoples experience is a fantastic way to improve at a quick rate. Of course like with any skill it's the more you do it the better you get at it. And I mean actually do it and don't just copy other peoples work.
thank you for answer do you have any suggestions where to find such project web sites or forums would appreciate it.
 

Halo

varishangout.com
Regular
thank you for answer do you have any suggestions where to find such project web sites or forums would appreciate it.
kinda hard to say, no point working on a project you don't enjoy.
But the general go-to is Github. Try searching some keywords you'd wanna start out on, and see how they go about organizing their projects.
If you already have a inspiration in mind see if they have their source code somewhere and watch how they've developed it.
 

YakuInTheFlesh

varishangout.com
Regular
thank you for answer do you have any suggestions where to find such project web sites or forums would appreciate it.
Honestly if you don't work for a company it as mentioned by @Halo. Check git repos. A good few project types for websites/forums to check out would be: Browser Extensions, Frameworks & forums.
As for forums: I haven't done much with them myself, but set one up (obviously pick an open-source one e.g. phpbb) locally and find something you want to improve / change. Either you do it for yourself or with the intention of contributing to the project (check out any projects issues page to find things you can work on). Contributing can have the benefit that your code in most cases will be reviewed by somebody that mostly knows what they are doing and you can learn from that.
Also getting used to version control systems is a big plus in modern development.
 

Halo

varishangout.com
Regular
As for forums: I haven't done much with them myself, but set one up (obviously pick an open-source one e.g. phpbb) locally and find something you want to improve / change
I think he meant forums to find help.
If that is what you meant, if you count stackoverflow like I mentioned earlier that is definitely a place to get help.
otherwise stackexchange is pretty good. It's got a lot of different subsections iirc.
Here's one for game development.

Also getting used to version control systems is a big plus in modern development.
It's amazing how helpful gitlab has been in developing the manga site.
Loving the CI/CD feature, really useful for quickly getting the FE out,
struggling a bit to figure out Kubernetes for the backend though, but i just got a new server Actually like a 15 year old PC that i installed ubuntu on lol and gonna try to get that setup finally so i can push out backend updates real quick too.
 

YakuInTheFlesh

varishangout.com
Regular
I think he meant forums to find help
Good point. I completely misread the question.

otherwise stackexchange is pretty good
Yeah stack is the defacto place to be. It has become somewhat worse overtime though. Especially thanks to the overwhelming popularity of frameworks where every question seems to be answered with "I don't know how to do it in vanilla, but here's how to do it in my framework/library of choice!"

As for forums and websites:
Use the documentation provided by the creators since it most of the time is the most accurate information about the subject matter.
Frameworks, libraries, engines, etc. can have a forums. (In regards to gamedev: check out homebrew forums like devkit since official/good stuff is often behind a wall). But sadly a lot of forums (and IRCs) have closed and move to that atrocious platform that you might have heard of called "Discord". If you can put up with people some of the BS then that's a huge one these days.
If you are into app dev there's also XDA which is quite large.

Also a small site I use from time to time (probably not as good for beginners) is https://devdocs.io. It pretty much scrapes documentation from various sources and has it all in one place. It's very nice when you work on projects that use 3-4 languages & 3-4 frameworks and you don't want to have a every doc open.

Loving the CI/CD feature
This was the best thing at my previous company, that I'm trying to get implemented in my current one (it's scary how we just let everyone execute commands on prod servers by themselves).

Kubernetes
Thankfully never had to deal with things like that. Containers can kiss my ass for the near future. The idea seems nice, but the execution is often just a huge clusterfuck.
 

Halo

varishangout.com
Regular
Thankfully never had to deal with things like that. Containers can kiss my ass for the near future. The idea seems nice, but the execution is often just a huge clusterfuck.
yeah I tried setting it up on my current 1 server setup but it was such a pain in the ass and i could never figure out wtf was wrong. Just gave up and wrote out the commands into a txt folder and ctrl c ctrl v that whenever it's time to update the site :cirno-laugh:.
IF i got it setup from the sounds it'd be amazingly useful (Automatically update the BE, if it detects a crash, has old version at the ready so site doesn't go down, etc, etc), but that's a big effin "if" right now.
 

YakuInTheFlesh

varishangout.com
Regular
Automatically update the BE, if it detects a crash, has old version at the ready so site doesn't go down
Not sure how your backend looks, but this sounds like something unit-tests could prevent (at least to some degree) if it's an error that causes the crash.

ctrl c ctrl v that whenever it's time to update the site
Pretty much the deployment process at my current place of work.
 

Halo

varishangout.com
Regular
Not sure how your backend looks, but this sounds like something unit-tests could prevent (at least to some degree) if it's an error that causes the crash.
oh that isn't a problem for me, just listed it as an example of a benefit.
Pretty much the deployment process at my current place of work.
if people knew how sites were made I think they'd be terrified to use the internet...
 

YakuInTheFlesh

varishangout.com
Regular
if people knew how sites were made I think they'd be terrified to use the internet...
The fact that I told people about some of the crazy shit that I'm aware off on the web and they pretty much don't care makes me able to confirm that that isn't true.

Imo. the scariest thing is people who write their password onto a sticky and put it on their monitor. Your website can be as clean and secure as possible but the weakest link will always be the end user.
 
Top