How I’m Learning Docker
By Annie Hedgpeth · January 12, 2017
How I’m Learning Docker

My DevOps Training Plan is going swimmingly, thanks for asking. ;) I shared with you last week about how I learned how to use the Jenkinsfile for a

CI/CD pipeline. That was a lot of fun, and this week I’m inserting Docker into the mix! I honestly didn’t think I’d be able to grasp Docker very easily because of the advice of a few people and also because I didn’t understand virtualization and isolation very much. However, the purpose of this post is to show you why that trepidation is actually an important thought to consider as we seek ways to lower the barrier to entry into technology. How can we find ways to mitigate those fears and miscalculations?

What is Inverted Learning?

Both the Jenkins and the Docker for Windows Pluralsight courses that I took were taught by Wes Higbee, a very gifted teacher. In the Docker course he mentioned the concept of inverted learning that piqued my interest because I realized that I learned InSpec in exactly that way. I didn’t have to know the whole of IT to know how to write an audit control, but as I went along, I learned more and more about the things that I was auditing. I had no clue what a kernel parameter was at first, but that didn’t mean I couldn’t write a simple test for it. InSpec lowered the barrier to entry into technology for me, and it’s important to understand why so that we can 1) lower the barrier to entry for others, and 2) learn other things in that same way.

What about Relative Learning?

Intrigued by the concept of inverted learning, I went onto Wes’s blog to see if he had written about it, and I found a post on Relative Learning, which in many ways is kind of opposite. It’s a learning style in which we can draw conclusions about something new based on the relative knowledge of the topic that we already have. This again gave a term to a concept for which I was familiar. Except I recognized this concept because of my desire for its benefits as opposed to my experience with it. I’ve derived a lot of frustration because I feel like I am lacking in a lot of background IT knowledge that makes it easier for others who have been in the industry for longer to grasp new concepts. I simply don’t have the luxury of the extensive relative learning in that way (sure I have a little, just not a ton).

What about Docker?

Wes mentions how you may employ inverted learning to grasp Docker, as well, which is probably why I was able to understand it much more quickly than I thought. The way it happens is that Docker allows you to use software without knowing how to set it up. So then when you’re ready, everything is consistently documented for you to learn how to set it up later when you see your Dockerfile. Can you see the inversion? Docker sort of helps you to learn software backwards, like InSpec did for me. He goes on to assert that Docker and containers are about software. And I highly recommend you click the link to see his simple comparisons.

Relative and Inverted Learning with Docker

By now I hope you can see how both relative and inverted learning are key with Docker. For relative learning, you might take the things that you know about installing software (almost everyone has some knowledge of this from which they can draw) and/or your knowledge of virtualization and isolation and draw conclusions about containerization from that. Conversely, if you have no clue about virtualization, you can learn in reverse by spinning up a container using a Dockerfile and unpeeling the onion to see why that isolation is so important.

Concluding Thoughts

I don’t know about you and your journey, but these learning styles bring me a lot of hope and perspective as I dive into super complex and uncharted territory for me. It helps me to realize that there is much more within reach than I formerly believed because really you just have to find your angle; is it going to be easier for you to learn X from a relative, inverted, or other learning standpoint? Whether you’re learning yourself, which I hope everyone is, or you have the responsibility to create a learning environment within your own organization, or you’re teaching your own kids and/or loved ones, remember that there is more than one approach to internalizing concepts in technology. Happy Learning!