tags:

views:

128

answers:

5

My current job involves working with a huge number of technologies, most of which are very niche and unheard of. In some cases I have to write something about the technology, or with the technology, such as some lessons, examples, or tutorials, on behalf of the developer of that technology or someone that is backing it.

When I get told to learn about a new technology, my first port of call is to check our internal library, and then look on amazon for a book on the subject. Failing that, or if the project is too small to warrant a purchase, I hit up google and youtube. However the results of randomly googling what I want to learn are hit and miss. Some days, I can find everything I want to know in a series of lessons or videos, and it's no problem. Other times, I can find almost nothing, and I really have to piece together things from sites.

The result is that there are various resources out there, videos, interactive lessons, tutorials, books etc. but when I need to learn something fast, I often don't know the best way to go about it. It's not about fun, because I don't always have the luxury of working my way through a 600 page textbook named "A Complete Guide To Technology X", I have to deliver results quickly.

One of the examples I'd like to use is ASP.NET MVC 2 which is something I have been told to learn. I grabbed a book on MVC 1 to refresh my knowledge, but googling it does't produce much useful information. I've seen a ton of ScottGu's tutorials on it, but they are mostly feature presentations, and some date back almost a year. The same applies to channel 9 and there are no books out yet on amazon.

My question therefore has two parts, the first asks, "Where are the best places to look to get the information needed to learn a new technology?" and the second asks "What is the most efficient way to use such resources to learn a new technology?"

+1  A: 

Find a problem that would fit the technology you are interested in and solve it (or attempt to). If you can't find one then don't bother.

Otávio Décio
I think you're thinking in reverse, I can't choose the technology I merely have to work with it. And as it's my job, not bothering is sadly not an option ;)
SLC
If your job offers a project where the technology in question is a good candidate, in my experience there is no better way to get up to speed. Throwaway projects do very little in terms of really understanding any new technology.
Otávio Décio
I definitely agree on that point, I have tried using example applications from textbooks but really haven't felt like they taught me much by the end.
SLC
+1  A: 

The answer differs for each language or technology. When google isn't as successful as I'd like, I often use SO. There's something about having thousands of people with loads of experience offer you their favorite sites, books, resources, and techniques for that specific technology in real-time. When I start on a new language or technology, I usually search SO for questions about learning them, and if I don't find them I post my own.

I've also found that a lot of the "easy exercises for newbies" questions have some good suggestions. The best way to learn a language is to use it.

froadie
+1  A: 

You can consider going through all the questions on Stackoverflow that are tagged with the name of a certain technology. I find doing this gives me a good feel for the tool and what problems people are using it to solve and what areas they find difficult. It's also a good way to see examples of code.

Oren
+4  A: 

I would say, get hacking! Start coding something, doesn't have to be perfect, you just have to learn how it all works.

It depends on the technology. It it's a web appilication framework, do something like reddit or SO. If it's a GUI toolkit, make a calculator. If it's a programming language, make a parser or compiler, or something which they tell the technology is good at. Getting practical is probably the best way to learn.

Additionally you can also post your code as examples to others. This will lead to two things:

  1. People will comment on your code. Leading to improvments
  2. Others will have something to look at, making it more probable that someone else will start using the new technology too.
henrikh
A: 

Usually Google for one of the tutorials and start doing it, as opposed to reading about it. And I usually will tweak the tutorial -- "what if I want to change the text or make it dynamic" types of questions. Poking and proding and breaking the tutorial helps me learn, as long as I can get to a clean state or back out my changes.

But, everyone learns differently.

As for where to get the tutorials, many company/technology web sites have some type of online tutorials. Start with the company website and go from there. To use your example of ASP.NET MVC, the Microsoft web site has a decent set of tutorials.

bryanjonker