---
title: "How I Learn New Technologies"
url: "https://osherove.com/blog/2003/5/10/how-i-learn-new-technologies.md"
canonical: "https://osherove.com/blog/2003/5/10/how-i-learn-new-technologies.html"
published: "2003-05-10T20:13:00"
updated: "2003-05-10T20:13:00"
tags: [".Net Original", "Off Topic"]
author: "Roy Osherove"
description: "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…"
usage: "Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page)."
license: "https://creativecommons.org/licenses/by/4.0/"
---

# How I Learn New Technologies

By Roy Osherove May 10, 2003 In [.Net Original](https://osherove.com/blog/category/net-original), [Off Topic](https://osherove.com/blog/category/off-topic)

**Historical article** · Originally published May 10, 2003; technical details may be outdated.

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 (?).

## More in .Net Original

[All posts in .Net Original](https://osherove.com/blog/category/net-original)

- May 11, 2003

    ### [Free Book Chapters](https://osherove.com/blog/2003/5/11/free-book-chapters.html)

- May 11, 2003

    ### [Introduction To Regular Expressions](https://osherove.com/blog/2003/5/11/introduction-to-regular-expressions-1.html)

- May 8, 2003

    ### [More About Using Undocumented API's](https://osherove.com/blog/2003/5/8/more-about-using-undocumented-apis.html)

- May 8, 2003

    ### [How Access 2003 Helped Me Out](https://osherove.com/blog/2003/5/8/how-access-2003-helped-me-out.html)


---

## About the author

**Roy Osherove**: Senior Solutions Architect at AWS working on AI for production and AI-driven development; author of The Art of Unit Testing and Elastic Leadership, with about 20 years of consulting and training on unit testing, TDD, team leadership and continuous delivery.

### Sites

- [RobotPaper](https://robotpaper.ai/): This blog: AI patterns and anti-patterns, AI and coding agents, and engineering leadership.
- [osherove.com](https://osherove.com): Roy's personal site. Author of The Art of Unit Testing and Elastic Leadership; consulting and training on unit testing, TDD, team leadership and continuous delivery, plus about 20 years of blog posts.
- [The Art of Unit Testing](https://www.artofunittesting.com): The Art of Unit Testing, 3rd Edition (Manning): readable, maintainable, trustworthy unit tests, plus TDD workshops in C#, JavaScript, Java and Kotlin.
- [5whys.com](https://www.5whys.com): Roy's writing on software team leadership: self-organizing teams, surviving chaos, learning mode and the Elastic Leadership model.
- [Pipeline Driven](https://pipelinedriven.org): Continuous delivery and DevOps practices: build patterns, pipeline-friendly testing, DevOps metrics and enterprise DevOps.
- [Elastic Leadership](https://www.elasticleadership.com): Elastic Leadership, Roy's framework for software team leaders (survival, learning and self-organizing modes).

### Social

- X: https://x.com/royosherove
- LinkedIn: https://www.linkedin.com/in/osherove/

### Contact

- Contact form: https://forms.gle/jQSx5KoXvrVA1JCK7

### License

Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page). License: https://creativecommons.org/licenses/by/4.0/
