There are a few useful posts on this. I’ll link you to mine as it references these. How can I make my own Discourse plugins?
(Although I would personally recommend VSCode now)
One way in is to start helping with supporting an existing plugin by submitting PRs (that’s how I began), starting simple with minor problems and then move on to solving bigger issues and maybe adding new features.
If you have an idea for a plugin or Theme Component that’s reasonably simple then start with that. Personal creative goals can be very motivating.
Don’t bite off more than you can chew at the beginning and start simple as the last thing you want to do is lose motivation: this stuff can be hard especially when you want to make fundamental changes.
Be patient. EmberJS is a particularly tricky animal to get your head around.
My advice would be to start with Theme Components and move on to Plugins a little later.
Always use the huge library of existing plugins and TCs as a help. Perhaps someone has solved something similar previously? How did they do it? Take a look at the code. Always use the standards Discourse core sets. Discourse source is also an invaluable resource.
Perhaps the best advice is: just do it! The only way of learning is to get dirty, really. Don’t be afraid of making mistakes and don’t ever let frustration stop you. Keep on going at it and things will eventually work. Try to work things out on your own as much as possible but you can always reach out to others when you absolutely need to.