Roy Osherove

View Original

How I Learn New Technologies

As the years go by, I seem to understand better and better how my learning process works.

When it comes to new technology, I seem to be a “circle thinker”.

When I try to learn something, I do it in stages. I don’t call them “stages” or ‘circles” , though. They just “happen” all by themselves.

 

·        Circle 1 – AKA  “Add data to the [‘know where to look’] index”

I’ll usually read about it in some magazine or post, and immediately download & install it if necessary and start playing with the new found technology.

This Stage usually ends fairly quickly. My brain just tells me it’s not interesting anymore.

It’s as if my brain has found a new book, and the first thing it wants to do is read its table of contents. Once it has, it no longer wants to continue reading more then chapter one, and quickly browse through the rest of the chapters.

I’ll usually try something really rudimentary with the new technology, like doing a small sample or something that requires no more then 15 minutes.

Once I feel that in the future I will be able to know where to look for information regarding a more serious use of stuff related to this new technology I just feel bored with it. Well, not as “bored “as “There are more important things to explore/do right now”

 

-          InfoPath is a good example of a technology with which I have finished circle 1.

-          .Net Compact Framework mobile apps  is another good example of a technology with which I have finished circle 1.

 

 

 

·        Circle 2 – AKA “Let’s try to do something a little more in-depth with this thing”

This is the part where I try to do something a little more then a simple sample. I try to find a simple project that I can actually use.

I need to have something realistic to do, otherwise I’ll lose my motivation for doing it (That’s why doing stuff with new technology as part of your job is a much more educating experience then it is if your doing it just for the sake of doing it – You have to solve it, because you owe it to someone else, no slacking around). This is an important stage: If I don’t manage to do it with relative ease, I’ll usually lose my motivation to finish it, meaning this circle can be repeated as much as 2-3 times, with (sometimes weeks) time gaps between them. If I do manage to finish it with ease, I’ll go on to the next circle.

 

-         Regular Expressions are a good example of a technology that I just finished doing Circle 2 with. Successfully.

-         ASP.Net is a good example of a technology which is currently stuck on circle 2 with me (Trying to build a food ordering system for my company, and keep getting stuck...)

 

 

 

·        Circle 3 – AKA “Let’s do something really cool”

This is the part where I feel confident enough about a technology to do something more advanced with it. I’ll find a cool project idea I’d like to do, and then try to do it. I expressly try to find project requirements that would make me go into the depths of the technology, and of which I only know basic stuff or from the “Index” mentioned in Circle 1.

 

-         Remoting & Tracing are a good example of something currently in circle 3. I am developing a tracing solution that allows a user to receive traces from both “legacy” (VB,C++) applications and COM components and from .Net, all combined with Remoting solutions, allowing the user to see the traces from any remote computer in real-time.

-         Typed Datasets are another example of circle 3 technology with which I have just finished putting together a solution for my company. It involved exposing all the company’s proprietary log files as searchable datasets, using regular expressions, XML classes and ADO.NET.

 

 

·        Circle 4 - AKA “What’s next?”

This stage is usually optional, and is basically more of a rehash of circle 3, only on a more in-depth scale.

It is usually achieved quite some time after the other circles have finished. It involves much more research and playing stuff.

 

-         There currently is not example of circle 4 technologies involving .Net

-         Plenty of VB6 technologies can be used as an example here.

 

 

The Problem(is it really?)

The big problem with this learning process model is that there are (sometimes) large gaps of time between circles, could be just a day, but sometimes even weeks or a month.  When I come back to the subject, I usually feel more energized about learning it in the new level, or, if I feel the previous circle failed, I’ll redo it, but with more confidence. Another factor here is that over this period of time, I do absorb more material in about that particular subject, but in a much less structured way (the occasional internet article or web log entry). It sinks in over time, though, which gives me more confidence at later stages.

However, this leads to learning new stuff in-depth, a pretty slow process. Yes, I can get a task at work that makes me go out and learn all I can about a particular feature I need to work with, and I’ll do it with flying colors, but when studying alone, without the push of a job, I can get distracted.

Perhaps this whole process actually contributes to a higher level of expertise in the end. Who knows (?).