Is SMTP out of question?
Is SMTP out of question?
Yup, if you have SSH service open on port 22, you’re automatically spammed by bots trying to brute force their way onto the system.
AFAIK it’s now 100, so basically unlimited for personal use.
Software engineering nowadays is really complex. There is no way you’re going to know what’s going on, nobody is.
It’s just the more experience you have, the easier it is to figure out what’s going on. If you want to learn coding, just start coding.
I will start from something no one mentioned - start with Linux. Windows has its own very “special” ways of compiling stuff, while Linux is very simple. If you start on Windows, you’ll probably use IDE which will set up everything for you (cause setting up thing in Windows is messed up), and it will still be a black magic for you how the code transforms into binary.
Many people recommend python, but I would start with C (not C++, C++ sucks). It will give you the understanding of basic concepts like memory management.
Then start using something like javascript, which will get you wide range of libraries, which you can use to build anything.
Then at the end learn how infrastructure works, how are services communicating with each other, how to put your server to the public, learn Docker, set up reverse proxy, run stuff in cloud.
Learn it first.
I almost exclusively use it with my own Dockerfiles, which gives me the same flexibility I would have by just using VM, with all the benefits of being containerized and reproducible. The exceptions are images of utility stuff, like databases, reverse proxy (I use caddy btw) etc.
Without docker, hosting everything was a mess. After a month I would forget about important things I did, and if I had to do that again, I would need to basically relearn what I found out then.
If you write a Dockerfile, every configuration you did is either reflected by the bash command or adding files from the project directory to the image. You can just look at the Dockerfile and see all the configurations made to base Debian image.
Additionally with docker-compose you can use multiple containers per project with proper networking and DNS resolution between containers by their service names. Quite useful if your project sets up a few different services that communicate with each other.
Thanks to that it’s trivial to host multiple projects using for example different PHP versions for each of them.
And I haven’t even mentioned yet the best thing about docker - if you’re a developer, you can be sure that the app will run exactly the same on your machine and on the server. You can have development versions of images that extend the production image by using Dockerfile stages. You can develop a dev version with full debug/tooling support and then use a clean prod image on the server.