Harit Himanshu is a remote engineer who has set up his own online course in order to teach Scala. In this article he talks about what made him start this venture and his thoughts on how it is going.
"My online course on Scala with Pluralsight.
This post will discuss the process and my learnings as first time author. I will discuss;
- Why I decided to teach online course
- Pluralsight as my choice of platform
- The process
- What I learned
- The Course
Why I decided to teach online course
I have been mentoring engineers for couple of years now. I really enjoy the communication and discussions that spark good ideas and challenge me as an engineer to identify examples from our daily lives to explain complex topics. This totally excites me!
The feedback I received in return was also not-that-bad either ;-).
Now, that I work as remote engineer for almost 1.5 years, the challenge got bigger. I had to do 1:1 with people of different skills in the company to explain the problem, discuss the solution and communicate the ideas with management. The repeated exercise made me better in finding such examples and reaching the audience that connects with them.
During all these times, I continued to invest in my skill by saving on commute-time, evenings and weekends. My primary resources to fuel my brain has been videos, books and online documentation.
This gave me the idea that I should challenge myself, get out of my comfort zone and try to teach a course on the topic that I like the most. I also wanted to validate if this is something I would enjoy doing.
Pluralsight as my choice of platform
This part was easy for me. I spend a lot of time learning from Pluralsight. From my perspective, they have an excellent collection of courses, their courses follow a consistent pattern of learning so as a learner you know what to expect.
The thing that was not clear to me was if I could be accepted an author with them, so I applied on https://www.pluralsight.com/teach
The process was simple and logical to follow
Step 01: Audition
I had to submit an audition video. I got the feedback and I had to make changes to the audition video based on the feedback I received. After two rounds, I got the confirmation that I was accepted as an author with Pluralsight!
Step 02: Course Proposal
In this phase, I had to submit the course proposal. This is where I had to work on the course title and the content. The content included, what all modules I will teach, what videos will be there in each module and so on.
This step took more time than I thought. But, this was also necessary. This reminds me of the chapter from the book 7 Habits of Highly Effective People.
Begin with end in mind
This helped me to get clarity on what I would teach, how I would make progress in explaining the concepts and make sure that the learning is progressive than teaching ideas at random.
Once the proposal was accepted by Pluralsight, I was free for next step.
Step 03: Course Creation.
Now, this is where I had to spend most of the time thinking, writing scripts for every video for the course, preparing slides, code samples and assessment questions.
Before every recording, I had to send the slides for review to Pluralsight. They do an awesome job in maintaining consistency, fixing issues and helping authors learn during the process.
Once reviewed, I started recording the modules. I used Screenflow for my course. Just to share, I have no experience ever in any video recording software and I spent my time learning Screenflow for the features I cared about. I am not perfect, but I am sure with time I will get better with it.
After every module recording, I had to send it out for the review where it is extensively tested to match Pluralsight acceptance criteria. I learned a lot about video recording and editing during this phase. After couple of feedback loops, my first module was accepted. After that? It is just an iterative process.
Create Script -> Slides -> Review -> Record -> Review
What I learned
Teaching is hard.
I underestimated this I guess. But, I thoroughly enjoyed it.
To all the teachers, THANK YOU for your lifelong commitment. YOU made this world a better place!
Creating online course is harder
But, for the first time only. Once you learn this process, you get better with repetition. There were so many things I had to learn outside of creating the course content such as
- Learning Screenflow
- Writing scripts for the videos
- Learning to create good presentations
- Recording and editing videos.
- Patience (Big one!). I am often fast in doing things. I carefully observe my process in everything and optimize for the time. This time, I thought I would be done in 2 months or so (given that I work as full-time remote engineer), but I was wrong. Given, that I was learning so many things to teach, I completely underestimated the amount of time I would have to invest.
- Building a context switching engine. When working on building a course in personal-time, there are so many things I had to juggle with such as family priorities, home chores, sleep hours, prioritizing and finding 15-20 minute schedules to fill in and be productive regardless of context-switch. This course helped me build some of those skills as well.
- Building an accountability framework. I would like to thank my wife who supported me in this effort by keeping me in check on whether I am making progress and giving me ideas on where to research for great content.
You absolutely need accountability framework if you want to achieve anything
My course got published on Pluralsight library and I feel a sense of accomplishment. The course is called Scala: The Big Picture.
The course is available at https://www.pluralsight.com/courses/scala-big-picture
Pluralsight offers a 10-day free trial, so please sign up and watch this course if you are learning Scala (or even planning to).
The main modules for this course areModule 01: Introduction
Module 02: Functional Programming Concepts
Module 03: First Interaction with Scala
Module 04: Functions
Module 05: Classes
Module 06: Null checks and Error Handling
Module 07: Pattern Matching
Module 08: Collections
Module 09: Concurrency
Module 10: What’s next?
If you know any one programming language, this course is for you. I have worked hard to lower the bar to learn functional programming concepts and even Scala.
Please share your feedback on this course if you watch it. I would love to hear and improve based on those feedbacks.
If you are struggling with learning something in Computer Science domain — Core Computer Science topics, Programming Languages, Libraries or Frameworks, please share with me and I would plan to build courses on them.
I have enjoyed the process and believe I could continue this journey. There is lot more to learn in order to teach and that’s what is inspiring for me.
One must become a student in order to be a teacher. — Harit Himanshu
I will plan and make more courses."