You mention looking at open source projects and them being complicated. It sounds like you've found a great learning opportunity then! Often, larger projects will have some issues tagged 'good first issue' or something. Or find a slightly easier project, but do challenge yourself.
Another way to find out what to learn is to just go to codementor and look at what type of questions are popular and what you are missing to handle them. Surest way to prepare yourself to switch to that!