Play-by-play teaching method

There is a huge amount of online learning resources on the internet. Firstly, people gave a simple presentation. This is traditional, everybody knows. Later, they have introduced more practical sessions. These are video tutorials. As I think, play-by-play tries to mix these approaches and combines with interactions.

Introduction

I am a lucky person. I have access to multiple online learning resources, including PluralSight. That is an online learning platform. If you are a programmer or your job is related to programming or IT, there is a good chance you will find useful learning materials here.

When I got my PluralSight subscription, I was so happy. I felt something like when I have first entered into a library in my childhood. In the first several months, I couldn’t find any technology that I wanted to learn and there was no online course here.

After completed several courses, I felt they are too theoretical – basically, I missed to get my hand dirty. And that was the time when I found some courses with the title ‘play-by-play’.

In sports, play-by-play means giving very detailed commentary on a sporting event. In online teaching, it means an interactive and practical teaching methodology when two persons are doing the presentation: there is a mentor who is an expert in the given area and the mentee who wants to learn. And the mentor explains the topic to his or her mentee.

Play-by-play: the format

As I wrote, there are two roles: the mentor and the mentee. Basically, the mentor introduces the topics and shows practical examples for the mentee. And you can follow them and repeat their actions.

What are the benefits?

That learning method has huge benefits for me. I feel I am literally in the classroom and sit near them. There is no large presentation with short demos. You get the feeling of a tutorial with getting the basic theoretically knowledge without watching boring slides.

And you can gain practical knowledge. As it plays a discussion, you can get small practical tips and you don’t feel that the trainer just rushes through a script.

Any drawbacks?

As I have mentioned before, play-by-play is one kind of mix of presenting practical and theoretical knowledge. And of course, you will get half of both of them. And it means, you have to get your hand dirty: if you want to learn the topic, you have to do your homework and complete the learning progress by reading through the related theoretical materials and try out the practical parts.

Getting the maximum benefits from a play-by-play course

For me, there is a script to feel happy about the outcome of walking through a play-by-play course

  • Start the course (of course)
  • On every hand lab part, pause the video and follow the course.
  • If I have any question, write it down to a list
  • When I have finished the course, check my question list
  • Go through the question list
    o If it is a theoretical question, read the related documentation, and try it out
    o If it is a practical question, try it out
    o Anyway, try it out.
  • That is the step when I check the table of contents and listen to every additional question that came into my mind. If I have a question, write it down into my question list
  • Repeat the last two steps until I have no question.
  • New optional step: write a blog post about the course.
  • Drink a beer.

What is a database engineer?

Database engineer: the bridge between the backend developer and the DBA.

Introduction

About 6 years ago I have been worked at a small company as a full stack developer. At this time, I had my first English written blog called ‘Morzel about Computer Programming’. In these days we have been fighting with some problems, that I was handling as the biggest challenges during my professional life. We got some deadlocks and a huge database – or at least I believed that was a huge database :D.

 

That was the time when I blogged about my database related challenges and one day, I got an offer at a rising startup. After some hesitation, I have accepted the job and I could start to work as a database engineer.

The first few months as a database engineer

The first thing that I had to learn is that I know almost nothing. My technical knowledge had huge holes and I had to fix the missing parts.

Parallel in learning the technical details, I had no choice, I learned a really complex domain model.

And now comes the key point:

The most important role of a database engineer

Is being a bridge between the backend engineers and the DBAs. I believe, there is nothing more important than this.

Components of a Database Engineer
Components of a Database Engineer

For me, I felt there were two groups who were always yelled at me and our team:

  • The backend developers wanted to implement their requests as soon as possible. Actually, we have blocked them because they had to use the stored procedures that we created.
  • The DBAs wanted us to implement everything in a best-optimized way: we had to make sure that we create perfect data structures and use them in a most efficient way.

It was really hard to meet both of these requirements. If we could finish our job fastly, the DBAs yelled us about the quality. When we have created the best quality code and data structures, the whole backend team was blocked because of us.

How to give value fast and have good quality as a database engineer?

After several attempts at refactoring our development flow, I found a way to meet all of the expectations: I started to work in multiple phases:

  • Implement interfaces: create an unoptimized data structure and give stored procedure skeletons to the backend teams.
  • Technical planning: plan the final data structure and basic usages.
  • Review the technical plan: validate the plan with the DBAs
  • Implementation: implement the final form

Using this flow, the backend team get an answer almost immediately. They will have their stored procedures and they can implement their code. In that time our procedures are doing nothing (or almost nothing) but they know their specifications. Is something like giving interfaces instead of implementations.

In the next step, we can figure out the perfect storage strategies. We can fine-tune indexes and do any other checks.

After creating a technical plan, we can ask the DBA team to review that. It is a very important step because we really do not want to fix the table or index structure in the live environment.

At this point, we got feedback both from the backend and the DBA team and we can implement the final form of the development.

Final thoughts

Being a database engineer is a strange job. To do this job in a proper way, you must have both database and domain skills and it is good to have some backend development knowledge too.

In that role, it is hard to work in a similar way to the other engineering jobs. A database engineer cannot just sit down, implement a whole feature and go forward to the next tasks. That role is more about communicating different teams and make sure every person gets that their want.