this post was submitted on 16 Oct 2023
7 points (100.0% liked)

Programming

17669 readers
174 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 2 years ago
MODERATORS
 

Hi! Don't know if this is the place to ask this but, basically what the title says.

TL;DR: Where do I start if I want to learn programming and potentially end in cybersecurity? Would computer science be a good decision? Should I learn any specific coding language?

I am a designer but I want to expand my knowledge and learn other things, programming is something that I've always kind of struggled with but I'm starting to like it nowadays.

I am currently switching my way over to Linux from W11, I've been distro hopping and trying Ubuntu, Fedora (the one I like the most as of yet) and now I will try EndevourOS (I still am not prepared to try pure Arch imho). All this playing around on Linux made me interested in coding, using the terminal, solving problems, analyzing logs, etc.

My main question is: where do I start? I'm not asking what "the best language is" or "which gives you the most jobs", it's more like I need advice on where to start with the things I want to do. While using Linux, I've been copy-pasting repos, codes, commands, etc., but I sometimes want to know what do those even mean or what the hell I am even doing, I don't want to be a copy-pasting machine without understanding what it means.

I think my objective is to end up doing Cybersecurity because, for me, it's one of the most interesting topics. I've read that it's better to start with Computer Science and then I can go with Cybersecurity or if I change, I could go with Soft. Eng., etc

I don't want to just make websites or apps, and I think I don't want to do IT (the kind of IT where you just help other people fix their computers), I do struggle with mathematics but if it's something I need to do to learn these things then I'll do it. I also would like to learn how to use/build servers.

Just want to make it clear though, I will be doing everything myself, as I don't have any money to go to a college/university, so if anyone has free resources, I would highly appreciate it.

Thanks in advance to everyone who read this and is able to help/give advice!

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 2 points 1 year ago

The following might be a bit hard to digest, but bear with it if your are serious about what you asked.

I am a designer but I want to expand my knowledge and learn other things, programming is something that I’ve always kind of struggled with but I’m starting to like it nowadays.

Struggling with something new to you isn't a bad thing. What's more important is that you perceive that struggle as interesting, cause especially in software (in the broadest sense), the struggle never really ends.

I am currently switching my way over to Linux from W11, I’ve been distro hopping and trying Ubuntu, Fedora (the one I like the most as of yet) and now I will try EndevourOS (I still am not prepared to try pure Arch imho). All this playing around on Linux made me interested in coding, using the terminal, solving problems, analyzing logs, etc.

Approaching it in a playful manner like that and trying various distros is certainly how lots of people have started their linux journey.

My main question is: where do I start? I’m not asking what “the best language is” or “which gives you the most jobs”, it’s more like I need advice on where to start with the things I want to do.

While using Linux, I’ve been copy-pasting repos, codes, commands, etc., but I sometimes want to know what do those even mean or what the hell I am even doing, I don’t want to be a copy-pasting machine without understanding what it means.

If you don't want to become a "copy-pasting machine", then don't engage in mindless copy-pasting!

For instance, if you copy-paste a command like ls -lF, before running it, open man ls and:

  1. search for -l (pro tip: always add a space in front of your search for arguments like this in man pages, cause it will narrow down your search better)
  2. read and try to understand the description of that argument
  3. repeat for -F (or any other argument there might be)
  4. only now run your copy-pasted command.

Isn't this tedious? Yes, especially when you start out and don't know most of the arguments of all those commands you are pasting. But that's a solid approach to prevent yourself from becoming a mindless "copy-pasting machine".

BTW: If you don't yet know how to search man pages, use your preferred search engine and search for "linux man page reading".

If the man page isn't enough, extend your search online.

I think my objective is to end up doing Cybersecurity because, for me, it’s one of the most interesting topics.

Now I don't know what makes you think cyber security is the answer for you or what makes it that very interesting compared to all the other software related topics out there. In a sense, the less far you are in your journey, the less certain you should feel about where your journey should lead you in the end. Rather stay open to course corrections along the way as you discover more and more things.

I’ve read that it’s better to start with Computer Science and then I can go with Cybersecurity or if I change, I could go with Soft. Eng., etc

You write that, but...

Just want to make it clear though, I will be doing everything myself, as I don’t have any money to go to a college/university, so if anyone has free resources, I would highly appreciate it.

...this kind of makes the above obsolete, cause you seemingly aren't planning to go to a college/university.

I don’t want to just make websites or apps,

But this might actually be a pretty good bet for you coming from "I am a designer but I want to expand my knowledge and learn other things, programming ...".

And I'm not sure what you mean by "just make websites or apps". That in itself can be a vast challenge depending on what you are creating.

and I think I don’t want to do IT (the kind of IT where you just help other people fix their computers),

Fair enough.

I do struggle with mathematics but if it’s something I need to do to learn these things then I’ll do it.

You see, I'm not a cyber security expert, but I know for a fact that part of cyber security is the whole topic around cryptography, which certainly relies quite heavily on mathematics. Just look at something like RSA. You are bound to encounter lots of information of that kind when you're trying to make cyber security your career.

It's good that you have willingness to learn. But considering you haven't gone to college / university yet, you haven't really seen quite yet what "real struggle in math" actually looks like (speaking as someone that has a master's degree in an engineering related topic).

Likely there's various areas of cyber security that won't require you to go too heavily on mathematics, but then again, I really wouldn't wanna bet on this when it's about making cyber security your career.

I also would like to learn how to use/build servers.

That's just too random of a remark. It's as if you were asking about "how to become a professional power lifter", but then added "Oh BTW, I'd also would like to learn MMA.". It's just too unrelated and would require a distinct investment in learning and practicing.

"how to use/build servers" can mean oh so much:

  • using APIs in a frontend web dev context:
    • likely the most tame interpretation of "use servers"
  • doing server administration, network administration, DevOps, etc.:
    • each one of those is something people make careers out of

A comment like that just screams "I'm a total beginner" and makes it less likely that people will take the time to write you a meaningful answer(likely why you haven't received a reply in over a week). But being a "total beginner" is fine, cause after all, for anything that anyone of use can do well, we all were a total beginner at some point.

But I hope you understand that your goal of getting into cyber security is already a big challenge. Can you learn a bit about using/building servers? Sure, you always can learn new things. But all of that requires time. Not just weeks, but potentially many months or couple years to get good at (depends a lot on your starting point and existing experience around tech and software in general).

TL;DR: Where do I start if I want to learn programming and potentially end in cybersecurity? Would computer science be a good decision? Should I learn any specific coding language?

TL;DR: Start by learning python. It's a solid scripting language to know, esp. if you have some initial interest in cyber security. Furthermore it's a very common programming language to get started.

Follow some free, guided python tutorials. For instance: https://realpython.com/learning-paths/ Just spend the needed time (might take weeks or even months, depending on your current knowledge) learning about programming basics with it.

And for cyber security related learning:

https://tryhackme.com/

If only tried it a bit some years ago, but it certainly seems like a decent option for some initial, playful learning about some cyber security topics. But try doing the most basic tutorial or course they offer first and build up from there.

IMO a "start small and build up from there" approach is your best option overall in general.

And maybe the best habit to build: Keep seeking out information! Don't just "blindly copy/paste", but look up what it does. Do that for everything. It will take time, but that simply is the price you pay for learning new things.