2. Application level technologies: C#, NHibernate, LINQ and ADO.NET.
3. Architecture/Design subjects: SOA, various design patterns, MVP, Domain Driven design and UML.
4. Community related subjects: blogging, forum and mailing list activities, contributing in open source projects.
5. Learning English.
6. Miscellaneous technologies: MS SQL Server, MySql, NUnit, Subversion, Git, Visual Studio and Mono.
So the question is that: Is it correct to learn or study all of this technologies and subjects along with each other? Specially while I think a typical developer in US/Europe have learning/studying program for just a few of them. For example (s)he learn to be expert in data related technologies only just like ADO.NET, NHibernate and Entity Framework.
Being forced to learn and work with all above mentioned technologies and subjects has a very bad disadvantage: you have not enough time to be skilled in a few subset of them. Because when you are learning advanced subjects of a technology A, need to do some work in technology B arises and you need to cut studying technology A and do some studies in technology B in order to solve new problem. Consequently your knowledge of technology A remains facial. And this story goes on and goes on…