You may want to pick a platform/language that has a low-level intro course that walks you through a small project.
Let the challenges you encounter lead you to finding solutions and building your skills.
11–18 of 18 posts
You may want to pick a platform/language that has a low-level intro course that walks you through a small project.
Let the challenges you encounter lead you to finding solutions and building your skills.
This is another good place to start: https://xkcd.com/1205/
Find out what you're spending time on, especially little things that you do 50 times a day. You don't even have to be good at it. Take Simone Giertz for example. She makes completely pointless robots and people love them.
My personal side interests is procedural generation. I think it's a neglected field because you can just invest in AI/ML and get better results, but there's a certain level of beauty in procedural things. There's some interesting examples at https://www.reddit.com/r/proceduralgeneration/
Scratch an itch, either something that says to you: "I could make a program to do that" or "I got an idea for a program that would work better." Or maybe something thats says, I think that would be fun. If you are looking for fun, might consider Processing which is a digital arts oriented language - https://processing.org/
Build the next Temple OS, driverless car apps, or a facebook rival, whatever, you probably wont get far (then again, you never know) but you will at least have a better story to share with people other than "I'm working on some new arduino to github interface..." :-)
Wherever you feel comfortable. Start with things as simple as 'Hello, World' and build up from there.
Give yourself a project. Any sort of project. It doesn't have to be useful, it's just there for you to learn with. As you progress in that project, you will strike roadblocks. Each one of which is a learning opportunity.
As you demolish all the roadblocks in your progress to your goal project, you will be learning all the way. In fact you will see, as you progress in the project, places where you could have coded things in a better way previously.
When you reach your goal project's completion, throw all of that code away. (It was rubbish anyway, wasn't it? Now that you can see it with an expert's eye.) Now rewrite it from scratch, but using all of your new-found knowledge.
Again, you will strike new roadblocks. Fix those. Rinse and repeat, learning as you go.
I have a 'pet' project, which is an emulator for an actual 1980s computer running CP/M. I have written and re-written that project at least a dozen times, in Z80 assembly, x86 assembly on MSDOS, C on UNIX using plain text, C on Linux using a curses-based text-UI, C on Linux using a GTK+ GUI. Each time that project grows a little, converging more and more towards the 'perfect' emulation of that original hardware computer.
Another option might be Arduino. After years of writing CRUD, my love for programming reignited when I was able to make LED blink.