• CoderKat@lemm.ee
    ·
    1 year ago

    TLDR: want to program? Take an intro and an algorithms class first. I suggest you avoid video games or AI. Web or mobile apps are much more beginner/solo friendly.

    As a professional software dev, I see this a lot in my field. Software is very approachable and frankly there is a lot you can just learn as you go along. But usually you still need a decent amount of fundamentals as well as domain knowledge to do that, especially if you want the code to be at all maintainable.

    My biggest suggestion to anyone with programming aspirations is to take a step back and start with a basic course on the fundamentals (there's multiple MOOCs for this that are a good way to get that). Ideally then find a similar class or resource on algorithms and data structures, because those are just crucial for many projects, but more importantly they get you "thinking like a programmer". Having that analytical mindset is probably the best thing you can do to make winging it actually possible.

    But even then, expectations need to be grounded. Eg, video games are by far the most common thing people want to create. But video games require a lot more math, can be performance critical, and perhaps most critically require you to have many other skills, too. It's one thing to be a good enough programmer, but you also need to make a lot of art.

    Another is AI. You can totally learn to make AI stuff. There's so many frameworks, pre trained models, and easy to use cloud offerings for making custom models. The bigger concern with AI isn't simply writing code for it, but that modern AI is simply limited. The type of AI most people talk about is basically just prediction and categorization. It's only as good as the training data. Finding and cleaning data is very time consuming and often very boring. Some parts of this aren't very automatable and thus aren't truly programming tasks. So it's easy for an AI project to fail not because of any programming skills, but because of the limitations of modern AI.

    My advice? Self contained web or mobile apps. Those are usually the most feasible for a single person and the most practical. Look at the various apps on your phone or that you see recommended online and consider if there's things you could do better or if you see niches that aren't covered. Or even just reinvent an app that already exists for fun. Not all projects have to actually be practical!

    There's also technically the option of contributing to open source, but I think beginners will find that too difficult. A project you create yourself lets you know every line of code and keeps the project easy to understand. Big open source projects can be thousands of millions of lines of code where nobody understands it all and learning to read code is a skill that takes practice and experience.