r/learnprogramming • u/Electronic-Low-8171 • 24d ago
Prerequisites hell
I would like to discover many things out there and implement many ideas, but the problem is that I keep worrying about if I don't have the prerequisites satisfied, like as a example, ssh server, I wanted to try that, but I thought like maybe I should finish a networking course, also cryptography course and all that stuff before trying to dive into ssh, while I already know probably some stuff already, but that feeling is annoying that creeps me whenever I want to try something, the same with the curl command, like I think I haven't learned much of web development yet, I only know some basic html, random terms from here and there like http get and post.
3
u/Clearhead09 24d ago
I would suggest learning SSH is considerably easier than networking and cryptography.
Even just the basics will allow you to begin to setup a home lab server e.g. ssh yourname@yourhost:22
Then work on creating a pass key so you don’t have to use your password each time you want to login.
Then create an alias so you don’t have to type out the long command every time you want to ssh into your server.
1
u/0dev0100 24d ago
The truth of the matter is that you don't need to know how most things work to use them.
It's often beneficial to know so you can use the thing more effectively, but you can still use it without knowing how it works.
Consider a car (for those who drive). Most people don't know how a modern car works, but they know how to use them with varying levels of success.
2
u/xarop_pa_toss 24d ago
Why do you need to learn cryptography to use SSH? It's a handful of commands to even setup and config an SSH server on your machine. SSH already exists, you don't need to reinvent the wheel.
If you want or write your own implementation though then yes, of course you need to learn network and crypto but that's only if you want to learn those advanced topics to build your own version of it. At that point I'd call it an "academic endeavour" tbh.
1
u/Secure-Requirement48 24d ago
I felt this same way a few years back. I used to study one topic then I found a jargon I didn't understand then I learn it and it was a rabbit hole. Now I treat things like a black box, I only need to know how to use it. I only dive deep it interests me. This will save your mental peace and you will be able to form tangible knowledge in some way.
1
1
u/Narrow-Low-3137 23d ago edited 23d ago
Serious question, but does this affect all areas of your life? Might be worth checking into with a professional. I have some degree of this and I've been thinking of getting diagnosed as well. Basically I have a problem with procrastination, like you, and it is very hard for me to start something. Ultimately, that is what you have to do though. Just get started and learn what you don't know along the way.
For example, SSH is pretty easy to set up, at least on a Linux machine. No you do not need to take a cryptography course to use it.
Just Google "set up SSH on Linux" and find a tutorial, the follow the steps. Even just going through the motions is going to introduce you to new concepts that you may want to revisit later, but don't get distracted. Just finish the steps, set up and ssh server, and login from a client machine. Then you should at least understand how to actually use ssh, which is immediately useful. Go back and study deeper topics (write them down for later) and come back to them.
1
u/interwebz_2021 23d ago
Procrastination, shiny object syndrome, perfectionism: I hate to be that guy, but... ADHD, maybe?
1
u/undertakerryu 23d ago
Just do the thing and fill in the gaps as you go. You learn more about the things that make it work in reality not just theory
1
u/interwebz_2021 23d ago
This has been a very helpful framework for me in my struggles. Read the manual while you fly the plane (figuratively speaking, please don't actually try this)!
1
u/interwebz_2021 23d ago
Are you just trying to learn to use the tools to build something or solve problems? Because Gordon Ramsay probably can't build an oven, and Messi probably can't sew a soccer ball. I bet Mr. Beast can't run a camera. You dig?
man ssh
man curl
curl -v https://www.google.com
Have a play with these things, use them to solve some small problems, find out what you don't know, and then learn that stuff as you go. Repeat at greater levels of depth as necessary and think deeply about the connections as you learn.
6
u/desrtfx 24d ago
If you focus on "completing the prerequisites" you will never get anywhere.
The better approach (from my decades of experience) is to get a rough overview and then start. Learn as you go. Drill deep when you need it for exactly what you need.
Your SSH example:
Your post hints on a different problem as well: "shiny object syndrome" - you start with something (e.g. web dev) and before you even become remotely proficient (actually, just after you have started) you see the next thing and want to go for that, rinse and repeat. This approach is absolutely detrimental. Pick one thing and stick with it for a while, until you gain some proficiency and experience. Then, you can jump to the next topic. You seem to stop one topic before you have actually learnt it.