cross-posted from: https://lemmy.world/post/24857168

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.

  • @solrize
    link
    182 days ago

    Write code, lots and lots of it. Make it really good, clean code. Rewrite it multiple times if that’s what it takes to get it clean. Developing those instincts puts you way ahead of just reading about another damn framework.

    • NaibofTabr
      link
      fedilink
      English
      121 day ago

      And then cry when you land your first development job, knowing that you’ll never get to build anything so clean and effective that will actually get implemented in the real world.

      • @solrize
        link
        111 hours ago

        The idea is to develop keen instincts so your code comes out nice on the first try, without needing rewrites. To do that, you have to start out by rewriting a lot. You are after a fluency of style, which is somewhat independent from deep thinking. Compare being a profound musical composer who sweats blood over every note, with being a competent (not necessarily great) improviser who, given any request, can bang out something listenable immediately without too many bum notes, without thinking too hard.

        Ideally you want both. Computer science education gives you the profound compositional knowledge. Improvisation needs lots and lots of practice at the basics. So code a lot. It makes everything else easier.

    • @Fades
      link
      31 day ago

      I would also say participate in code reviews, analyze others code from your own perspective. Depending on the quality of course, you can pick up on new concepts or approaches that didn’t occur to you when writing on your own code