I have a very structured way of learning new languages, I code a semi-advanced system. The same system over and over again. It's a World of Warcraft community site. The requirements usually look like this:
Users with authentication
Authorization using roles & permissions architecture
CMS - Functionality like pages and site-building
Comments with real-time notifications
Forums with real-time subscriptions per thread
Notification functionality
API module for talking with Blizzards servers
Chat functionality
Event and booking functionality
Monitoring functionality
Error logging
Mail system
Admin backend
The important thing is to build everything from scratch and with an architecture that makes sense for the language. It works great for me because I know the ins and outs of building such a system and it is quite fun to see where programming language x outperforms language y and so on. And it is easier to re-wire your brain if what you are building is something you are familiar with.
I have a very structured way of learning new languages, I code a semi-advanced system. The same system over and over again. It's a World of Warcraft community site. The requirements usually look like this:
The important thing is to build everything from scratch and with an architecture that makes sense for the language. It works great for me because I know the ins and outs of building such a system and it is quite fun to see where programming language x outperforms language y and so on. And it is easier to re-wire your brain if what you are building is something you are familiar with.
Wow! This sounds like a lot of work but very interesting
It is, but a lot of work is usually required to get to a comfortable level in any language :)