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.

  • Kissaki@programming.dev
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 day ago

    How did you determined that your coding skills are “absolute shit”?

    If you plan to study CS having qualifications and personal projects and stuff, you’re very likely already ahead of the curve; you already have the head-start you want.

    In general,

    • invest into what interests you or has use for you; code a tool you use or need, look at a project you use or you have interest in; personal investment drives you forward with interest and motivation
    • smaller projects are easier to read and get into than larger projects
    • [many if not most] public (same as private projects) may be in a bad or awful state, but you can still learn from them
    • nothing is as good for learning as working on a project with a good mentor
    • prefer official resources, tutorials and guidance over third parties, if available; they will more likely be more up-to-date and more likely better than the other way around
    • studying computer science can teach the leap from coding to software engineering; mentoring can too
    • experience, both amount and variance, drives all you do
    • there’s a lot of resources for many things to read and learn

    You listed algorithms first, I think that’s a well scoped, reachable goal, with many resources available. Increasing that scope, meaning also effort and risk of giving up, you could combine algorithms with a visualization, e.g. drawing on a HTML canvas. Now you have a well scoped project, where you visually see progress, and meet two of your learning goals of algo and web.