The only things that have ever worked for me to learn new technologies and techniques are
1) Taking on a major project in the language/technology
2) Classes
and I’ve learned a lot more from projects than classes. I’ve never found textbooks, slides, web pages, and the like, to be useful absent a concrete project to anchor my learning to. That said, if I do have a concrete project, then written materials such as books are hugely useful in accomplishing that project.
In brief, I advocate a sink or swim approach. For instance, if you want to learn Android programming start building a real Android app. Read the first couple chapters of a good Android book at the get go, and some of the official tutorial on the web, and then start coding. Refer back to the book, the tutorial, and the API documentation as needed during development.
After you’ve completed 2-3 projects in the new technology you’ll have the basics down and start to see mistakes and flaws in your early understanding. At this point it’s good to attend talks and read books and articles about best practices in the technology. E.g. if you’re building PHP web apps, this is when you’ll start learning about REST instead of just hacking together whatever seems to work. If you’re programming in Java, this is when you read Effective Java. But first you need to have a basic familiarity with your tools and know how to use them, before you can start learning how to use them as a master craftsman.
Of course I have a sample size of one here. Different people learn in different ways, and you may learn differently than I do. But this is what has consistently worked to keep me at the forefront of every technological wave I’ve chosen to surf for about 20 years now.
The only things that have ever worked for me to learn new technologies and techniques are
1) Taking on a major project in the language/technology
2) Classes
and I’ve learned a lot more from projects than classes. I’ve never found textbooks, slides, web pages, and the like, to be useful absent a concrete project to anchor my learning to. That said, if I do have a concrete project, then written materials such as books are hugely useful in accomplishing that project.
In brief, I advocate a sink or swim approach. For instance, if you want to learn Android programming start building a real Android app. Read the first couple chapters of a good Android book at the get go, and some of the official tutorial on the web, and then start coding. Refer back to the book, the tutorial, and the API documentation as needed during development.
After you’ve completed 2-3 projects in the new technology you’ll have the basics down and start to see mistakes and flaws in your early understanding. At this point it’s good to attend talks and read books and articles about best practices in the technology. E.g. if you’re building PHP web apps, this is when you’ll start learning about REST instead of just hacking together whatever seems to work. If you’re programming in Java, this is when you read Effective Java. But first you need to have a basic familiarity with your tools and know how to use them, before you can start learning how to use them as a master craftsman.
Of course I have a sample size of one here. Different people learn in different ways, and you may learn differently than I do. But this is what has consistently worked to keep me at the forefront of every technological wave I’ve chosen to surf for about 20 years now.
Make that a sample size of two. This is my experience as well.