Let the games begin: My DevOps journey starts today!

Photo by NASA on Unsplash

Let the games begin: My DevOps journey starts today!

How I prepared myself to go from 0 to 100 in a Skills Bootcamp class.

Today is the day!

Today, I will go from knowing almost nothing about DevOps to... well, I hope something.

I've been waiting for this day for nearly 2 months, and have slowly been getting nervous as the day has approached. I would be working a regular job at the moment, but my health has taken another turn, so I've been at home almost as long as I've been waiting for the course.

2 months is a long time to be at home doing nothing. I've kept myself busy with little house chores I can physically do, but otherwise, my days have been very empty.

Or at least they would have if I hadn't set myself a goal.

In this post, I will share with you the lessons I've learnt from self-study and how I have adapted them to allow me to enter my virtual classroom today excited and ready to learn about DevOps.

Potential pitfalls of learning from home:

This will not be the first time I try to learn an IT role and enter the field. This will actually be the fourth attempt at learning an IT skill. I have previously attempted to learn to become a Cisco Certified Network Associate (CCNA), become a web developer, and become an Android App developer from scratch. All three have failed for varying reasons, but the common reasons are Discipline, Support and set goals.

In all of my previous attempts, I have been very enthusiastic for the first couple of months of learning a new skill. My learning in the first few months has been excellent, as I've devoured the content to try and learn everything as quickly as possible. Eventually, the enthusiasm has worn off, and I've maybe sat down to learn once or twice a week. Eventually, it's been months since I looked at it, and can barely remember what I learned. There's just been no Discipline.

On those occasions, it's not unfair to say that my support has been minimal at best. Because I was learning alone, I had no one interested enough to bounce ideas off of, and no one to go and see to ask questions. Yes, I had access to resources online like StackOverflow and Reddit, but that's not the same as sitting down with someone who explains it to you till you 'get it'. There simply was no Support.

Finally, as I said above, I had no discipline in my learning, it was all or nothing. This not only leads to burnout, but also to losing interest quite quickly. There were no Set Goals that would help me see progress.

Keeping the mind ticking over:

"If you wait to be offered an opportunity to learn, you will be waiting a long time." Peter Hutton | TEDxMelbourne

When I first heard about the possibility of doing a Skills Bootcamp (read about that in my previous blog post in this series) I knew I was going to need to work hard and dedicate myself as much as I could to this program. Part of the requirements for getting on the course is that you agree to attend at least 90% of the sessions. This can be a big ask for someone trying to hold down a full-time job, or deal with a young family at the same time. Of course, exceptions can be made, all Purple Beard ask is that you keep your learning assistant advised. Still, I knew that going in without "warming up" wouldn't be best conducive to learning or retention. On many of the courses I looked at before choosing one, an ability to code was a strong recommendation (although not a requirement. Plenty of people have started these courses with very little knowledge and come out the other end fully capable). As I wasn't a stranger to coding (as mentioned above), I decided it was time to blow out the cobwebs and get my coding gears in workable shape before my course.

I settled on learning Python, as it had often been recommended as a beginner-friendly language to learn. I started with apps like Mimo, SoloLearn and others, but found their "courses" rather skimpy on the details. I decided it was time to hit the books.

"Dummies" Leads the way:

"Tell me and I forget, teach me and I may remember, involve me and I learn.” ― Benjamin Franklin.

I have used the "For Dummies" series of books for many things in the past, from Buddhism and meditation to Coding and cooking. I have always found their writing style and structure to be engaging and educational, so when it came to choosing a book to learn Python, there was no hesitancy to head straight to their books.

The first one I bought was useless, as it was 15 years out of date and was talking about the old version of Python. I managed to find a 7-in-1 book on Python from the "Dummies" series for the same price as the out of date one online, so promptly got it.

The book that arrived teaches all the basics of Python in the first three mini-books and then allows you to expand and use that knowledge to learn a little about Artificial Intelligence (AI), Data Science, hardware interaction and finally robotics.

I have so far finished the first three mini-books, and therefore learnt the basics of Python (more than enough for my DevOps course, my learning assistant tells me), but I would highly recommend this book to any new learners of Python. It's by no means perfect, I've found plenty of mistakes and typos as I read it, but will certainly give you a great understanding of Python and how it's used in various popular fields.

Book and language chosen, how did I learn from home?

self-education-quotes-1.jpg

Now I had my medium and subject chosen, I want to tell you what I did to prepare for my course.

Being off work for so long and with no concrete date of when (or if) I would be going back, it would have been too easy to sit and watch Netflix all day or play on my Playstation till my manager let me go back to work (in fact, that's exactly what I'd done on previous occasions off sick from work). But with a goal in mind this time, I knew I couldn't 'slack off' for 6 weeks and then go in all guns blazing to 10-15 hours of study per week without feeling it.

I, therefore, decided to use my Python learning as a warm-up for the course itself. I split each chapter into their sections and set myself a rota of doing a certain amount each day. I used the Pomodoro method (where you work for 25 minutes, rest for 5, work 25, rest 5, work 25, rest 5, work 25, rest 15) and during my work session, I would read my book and write the notes.

Tools for notes:

In my previous learning journey, I had used an app called Quiver on my MacBook, but seeing as I was now on a Chromebook, that was no longer a possibility. I did some research and found a suitable alternative in Notion, and started writing my notes. Each chapter was a new page in my Notion workbook, and it slowly grew to have over a dozen pages split into separate topics.

Screenshot of my Notion Python Notebook

The benefit of using Notion (and other similar programmes) is that you can mix Markdown Text with Code snippets and images. I typically wrote my code in the code snippet feature, then paste a screenshot of the outcome from VS Code.

Screenshot of one of my Python notes showing code, markdown and images

Getting to know the IDE:

Before I bought the Python All In One For Dummies book, I was using the text editor Atom, created by the good people at Github. I had previously used and liked working with it (although I'm fairly sure I wasn't using it to its full potential).

When I started reading the book, however, they encouraged you to use VS Code (aka code) from Microsoft. I'll admit I was a little reluctant to do so, as I did like using Atom, but since both were available for Linux (the only way I could get it to run on our Chromebook), and I didn't have time to try and translate what they were doing in the book to what I needed to do on Atom, I opted to at least try VS Code.

To my delight, I found that using Code was very much like using Atom and didn't appear to have anything missing. I was able to follow along with the instructions in the book (despite a few technical difficulties they didn't provide for as they wrote the book for windows and mac users) and got the same results they did. As it turns out, when we had our Onboarding session with Purple Beard, it turns out they teach using VS Code too, so that was a nice bonus.

Good working environment:

All of the above is great, but if you're exhausted and restless after one session, you won't be able to give your full attention to the rest of the course. Set yourself up for success with a good working environment all set up and ready to go for when your course starts.

I've had nearly 2 months to prepare, and as well as the above steps, I've made sure that, when the time comes, I would be comfortable and ready to learn when my class started.

Sitting on the sofa or bed with books dotted around you and your laptop balanced on your knee is not ideal. You need a dedicated space set up to learn from.

I started out in a comfy chair with my legs up and a table to my side, and slowly added elements to help make the area more conducive to learning. I started with a book stand, to keep my book within view and readable without bending in all sorts of funny positions, I got a light to shine directly down on me to make sure I wasn't straining my eyes, and eventually went the whole 9 yards and got a desk and chair to stop me from getting a painful back and neck and to allow me to use a second screen.

Conclusion:

Learning from home can be tricky, and has the potential to leave you burnt out or disinterested altogether. With Discipline, Support, setting yourself easy to accomplish goals and setting up a suitable working environment is crucial to successful studying and enjoying your topic.

The same can be true of working on a Bootcamp, but going from nothing to BootCamp is difficult and could lead to burnout. If you're going to use a BootCamp to learn to code (or write or exercise or cook) be sure to build up those "muscles" so that you don't set yourself up to fail, but instead set yourself up for success.