Hey, I think it’s pretty normal to wonder whether you are making “enough” progress or not. The main thing to remember is that everyone learns differently, so you have to find what works for you. 2-3 hours of good, focused practise and learning per week can certainly be enough. Sometimes overworking to “get there faster” can end up being counter productive as it leads to burn out.
The main question you should ask is, “Do you enjoy coding?” cause if you do then there is really nothing better than practising and getting better at something you love and in my opinion it becomes a no brainer.
If you are looking to make programming your job or to make some kind of career change then there can sometimes be or feel like there is external pressure on you. My best advice would be to try and turn off the doubts in your mind and keep focused on placing one step in front of the other.
That said, the above advice is probably not quite as concrete as you might have hoped for.
With C#, I assume that’s what you’re learning given the tag, there are a number of areas you will want to cover. The C# course here on Codecademy is quite good and it has a skill path that will help you in creating a full stack application using ASP.NET. For learning some of the basics of the language you can start here. By basics I mean the fundamental syntax and concepts within the language.
However, in my opinion, it really only offers a foundation in the language. You will probably also want to devote time to learning some of the following as well which I offer in a rough order of priority:
- Proper debugging and use of the debugging suite in your IDE of choice
- Learning some of the other project types. WPF, ASP.NET etc
- Entity Framework/Data stuff
Now in terms of how you go about learning this I think its important to be methodical and make sure your practise each thing you learn practically. I am often guilty of reading documentation on the Microsoft docs and thinking that I understand it without first proving that I do to myself.
As for what projects to do I understand it can be troublesome simply deciding on a project to test your skills. There are quite a few demo/training project available from Microsoft for free. It all depends on your level of knowledge so it’s hard.
Finally, have a plan and be consistent. If you only have 2-3 hours per week try and nail that timeframe down so that you can maintain a consistent routine. Make sure you rid yourself of distractions and have an idea of what you want to lean that week before you sit down. Doing these will help ensure that the knowledge you gain and progress you make will stick.
Good luck with your journey and remember that each hour of progress you make WILL bring you closer to your goals - all you have to do is keep at it.