I would like to code for a living and to contribute to open source projects and things, but my coding skills are absolute shit after taking online courses and watching video tutorials. How can I learn to code for real?

What I would like to learn is algorithms, web development (“full stack”), how layouts work (both in like kotlin compose and HTML) and how to read other peoples code. Maybe thats more than I can chew, but its probably good for me to try out many things before getting settled on one.

Now I have been coding for a while already (~ 4 years), but I kind of feel like I need more guidance to be able to actually create code that works as intended intentionally, and not through trial and error / stack overflow. As for what level i am at, CS50 is probably my only qualification, I have played around with APIs (I.E. making discord bots), and made some html “apps” (horribly made, but things like the “genius” game and a calculator) and “prototype” react websites (as in, really bare bones, barely working).

I do plan on taking CS or something similar, but i’m not yet in college, and I would like to have a good head start before getting there.

Sorry for my bad English, and any help is appreciated.

  • JubilantJaguar@lemmy.world
    link
    fedilink
    arrow-up
    11
    ·
    8 days ago

    The obvious answer is to jump in and actually code something you want to use yourself. It will be fun, right?

    I must admit that this kind of question always baffles me a bit. Why would anyone want to do boring courses and video tutorials when they can just get started on a real problem and learn as they go? There’s nothing more dull than solving a fake problem.

    Unless - unless! - it’s that really you’re interested in the status and money that comes with coding rather than the coding itself. In which case go ahead and get lots of paper qualifications and jump thru hoops to polish up that CV etc etc. But be prepared for a boring career.

    • ChilledPeppers@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      5
      ·
      8 days ago

      I agree with you, but maybe my problem is that I cannot focus on something long enough? I have started probably ~100 projects that would all be “the one that is for real”, and never ended any. What I said about having coded for many years but not having many qualifications is exactly that, I have coded in probably 10+ languages, all of them very badly and unfocused.

      Right now I am working in a project for my brother (he doesn’t really need it, but it would be a nice plus), that is basically a flask web app where he can keep track of AV equipment. It is quite basic really, but not having the prior knowledge of how to structure divs and such (compositing / layouts), I really struggle to create a UI, so I just start copy pasting from the bootstrap documentation…

      Maybe I should just double down on what I have been doing tho.

      Thanks for the answer :)

      • Graphy@lemmy.world
        link
        fedilink
        arrow-up
        6
        ·
        edit-2
        8 days ago

        Probably focus on finishing a project. I myself have a graveyard of unfinished shit but it’s not a great look if you’ve never finished something.

        Starting a project is always the fun part but if you quit something the second you hit a wall you won’t be pushing yourself to actually learn. You also probably wouldn’t be much use to someone trying to maintain and develop their project.

        I was a dev for ten+ years then pivoted to pm during Covid