The best way to learn a new programming language is by writing programs in it.
The most important thing in a software system is the architecture.