When I began learning to program 2 years ago, I started with Perl. I wrote small Perl scripts for processing text and data and such until now, and now I want to go into something new.<p>I want to learn a new language, as I really hate Perl. I started learning Python for web development (being the I have made a few webpages with just HTML, CSS, and Javascript). I went through with that for about 2 weeks, and then I was like "I want to learn how to create native apps too!". Then, I started looking into that. The next week, I was like "Maybe I should focus on the algorithms and data structures...". I did that for a week.<p>As you can see, I'm all over the place. I have no real pieces of software or code that I can show or post on Github or anything. My goal is to be a "jack-of-all-trades", but I can't seem to focus on anything because I thoroughly enjoy all aspects of computer programming. I'm going into 9th grade, so I don't have a job or class that structures my learning.
So, what should I do? Is there a recommended order that I should be learning these things? How should I stay focus?
I am filling in some blanks here, so take my opinion with a pinch of salt.<p>Instead of thinking of 'Learning python' as a project, you could try thinking of 'A website (or app) that will do x' as the project.<p>That goal might help you get better focus and in the process learn the best tools for that project which could be Python or native app development or something else.