DevOps Academy. This is my project right now. Sounds... surprising? Believe me it is surprising for me too :) Shouldn't be, though. I did a lot to be in this place.
Before I describe the DevOps Academy and what we do there, I tell you a little bit about my journey and approach which I use.
I have been helping others to grow for many years now. And finally, when I joined EPAM, it became more and more organized. First, the training opportunities here are enormous. And what is best, you can not only learn but most importantly - train others.
We learn IT differently. Mentoring, shadowing, documentations, use cases, courses, trainings, classes, tries and fails, home labs, tests on production, meetups, conferences... This is present in our lives every single day. If you do not go forward, you stay behind.
learn side has the other side too. It is called
teach. Well, someone teaches us, when we learn :) So, how to jump between these two 'states'?
That is a good question, indeed. If you are a great player, it doesn't necessarily mean you will become a good trainer. It is a sum of your predisposition, liability and knowledge of how to teach. And with the last one comes the process, which needs to be managed by you. It is a bumpy road :)
I can't help you to learn how to teach. But I can help you to see when you should start thinking about it.
There is one method which should be used everywhere: L-D-T-L circle (and/or matrix). In this place I will focus on
L-D-T only, without last
L. Yet I place it in the graphics below anyway, to complete the circle.
What is it? In fact it is a way to become a true leader (or I should say: one of the pillars of becoming a true leader).
So, what does the circle look like? It is simple, and you can check it just below.
First, we need to
learn the new skills ourselves. After this step, it is time to test what we learned and
do it. And when we did it, we are ready (more or less :) ) to
teach others. And this circle is part of the journey to lead (I mentioned that before).
To visualise it more clearly, please take a look at the picture below.
Based on this matrix, it should be obvious that we also should know how to learn something, how to do it and how to teach it. So, it is not like we just "have it".
The third part is crucial. We have learned. We think we know. But when we start to share the knowledge... well, I am undoubtfully sure that all of us have some moments when we are not sure... How does it really work? What does it really do? Is that true, or not? In my opinion, teaching others pushes us deeper into specific technologies. We have to know more internals, principles, etc.
In my case, what I teach and how I teach, I learned myself. As most of things in my professional life :D
And please, be aware of one thing. What I do now, in DevOps Academy, is completelly different than a 1-hour-long meetup, or 4-hour-long workshop, or even a 1-week-long training. It is at least a 3-month-long every day involvement. And however it sounds, it is DIFFERENT.
So, it is time to talk a little about our Academy!
Let's start with the latest "deliverable" - Linux Academy. We can agree, I believe, that Linux knowledge is very important in DevOps related work. So, I prepared the 4-week-long bootcamp for those who want to start their journey with Linux. This bootcamp starts slowly, with relatively simple topics, like listing directories, creating, viewing and editing files, through pipes to simple administrative tasks. After this training every participant should feel comfortable enough with the system.
This is something what I've learned through painful reality. So, now I am definitely better prepared. First, I have a git repository where I keep my "scenarios". Every section is a in different file, ordered by weeks. I have to keep myself strictly to it, as I only have 4 hours of meetings with participants. (That is the idea of this bootcamp too, I am there for lectures, guidance and help). The second element is Katacoda.
Well... As a user I love Katacoda. As someone who creates content... I hate it. The platform is buggy, problematic and support doesn't care at all.
Why I said that? Although the courses creation is relativly simple, the process of doing it is very easy to follow, but the management part is terrible. None of my issues was fixed, some functionalities stopped working, etc.
Here you can find my scenarios for Linux fundamentals. As for now (4th of April, 2022), these are still not finished and I am working on them.
Around 50 people finished this bootcamp so far.
The goal of this Academy is to shape a new generation of engineers who "live and work" by Devops principles. We teach tools, of course, but we focus a lot on best practices, frameworks, approaches, good and bad behaviors, etc.
This is a long program, it last for couple of months. I get a lot of help here from other EPAM's employees, who are experts in different areas and tools. I am the main responsible person though. And proud to say, my ideas shape these new engineers :)
I go through the most important elements of DevOps approach.
- Agile and DevOps principles
- Configuration managers
To list almost all.
Starting with the theory, I navigate participants to operations and some of design elements. Through practice tasks to complete and problems to solve, participants can walk through "almost-real-life" scenarios. To give you some example (and advertise myself, why not ;) ), the group's task is to fix three broken Linux machines. And not only that, it is not enough for me. I expect to receive a report: what the group found, what was the cause of the problem, how they fixed it. Based on this outcome, we work together to be sure that everyone understands the topic and why we did it this way.
Although the Academy is not focused on Clouds only, the majority of work is done there. The program at this point is splitted into three parts:
- Preparations for cloud (where we learn Linux, Docker, etc)
- Cloud operations
- Management in the Cloud (IaC, CI/CD)
In the Cloud part I focus on AWS so far. Well, this makes perfect sense, I am an AWS Community Builder, certified in this Cloud, and I've been working using AWS for 8 years now. It is only natural to use this knowledge.
I mentioned earlier the "three main blocks", so as you can see, Cloud (AWS in this case) is present in around 2/3 of the program.
So, looking at AWS, what can people learn? Obviously, the main services, like IAM, VPC, EC2 (with scaling), ECS, Serverless Lambda, RDS and more. And I focus a lot on best practices. We do a lot of examples, discuss a lot of scenarios, why this approach is good, that one is better and the other one is wrong.
With many tasks to do, troubleshootings to resolve, approaches to test, the participants learn how to work in DevOps environment, cooperate with other teams and what they can expect in the future. Of course, I cannot teach them everything. Simply, there is no time for it. But I believe, all students receive a solid foundation for their growth.
In the end of the program, the participants are able to prepare full CI/CD pipeline to deploy infrastructure and application to AWS. And manage it "in DevOps way".
What materials do I use? Some of them are 'secret', you have to join the program to know :D, but let me give you a high-level picture.
During the lectures I work with:
- presentations (yeah, Power Point! Everyone loves Power Point!)
- diagrams (I have some ready before, but I also use them to interactivelly draw things during the lectures)
- hands-on demos (most valuable, I think)
- Q&A, where you ask, I answer (or not, it depends ;) )
- game (to check your knowledge in entertaining way)
to list a few.
After lectures it is time for self-learning. And participants are not bored, believe me. I have carefully created selections of different materials from different sources. Well, there are some issues sometimes, but this is continuously curated resource.
And then it is time for participants to show me what they learn, through:
- tasks ('relatively simple' projects)
- game (which I already mentioned)
- assesments (bigger project this time. Generally covers multiple areas and takes more days)
- Technical Interview (which is very important part. Thanks to it, I get an objective opinion about each participant, and participants learn what a proper technical interview looks like. Yes, sometimes it is the first IT interview for them)
Although we are still looking for the best approach and teaching processes, we completed some runs already.
- Online version
- First batch
- Second batch (ongoing and close to finish)
Around 70 people already finished, or are about to finish these programs.
And we are starting the third batch soon.
If you are interested, here is the link to registration for Summer run (you have to be located in Poland). But hey! EPAM has a lot of other options for trainigs too! The presented one is... mine, but other trainings and programs can be found here
Do I think that Academy is successfull? Yes, I do. What proofs do I have? Well, the number of successfull hires (internal or external). The number of certifications passed (mainly AWS, obviously). And... the feedbacks!
So, yes, I do know that :)
This is strange for me. I never expected that I would teach others. Share knowledge, somehow, yes, I've done it thousands of times. Sharing knowledge on conferences... Well, this was also unexpected. But leading and sharing knowledge in such an organized way... I didn't expect that. But you know what? I love it like hell :)