Running a coding academy in the Balkans

Radoslav Georgiev

RuseConf 2018

Radoslav "Rado" Georgiev

Goal of this talk

  • Share our experience.
  • Give some perspective.
  • Give some practical advice on running a code academy.

HackBulgaria -
a "Hacker school"

  • Started ~5 years ago.
  • We knew we can do things better.
  • We had no idea what we were doing at the time.
  • General "reverse classroom" approach with small groups

Statistics

  • A total of 30 courses, over 600 students.
  • Half of them found jobs right after the courses.
  • The other half eventually found jobs down the road.
  • In Bulgaria, our academy is a sign of quality.
  • 7x Python,  1x Django
  • 5x Java, 1x Android
  • 7x JavaScript (Node, NG, React)
  • 3x Ruby, 1x Rails
  • 1x Systems programming with C
  • 1x Algo
  • 1x Haskell
  • 1x C#
  • 1x Automation QA

Programming 101

  • Our flagship course.
  • A concept that we builded ourselves from a lot of iterations.
  • Helps people fill the knowledge gap in order to land their first job (intern, junior positions).
  • 3-4 months, 2-3x a week, 4 hours per class.
  • Small groups, up to 25-30 people.
  • Half of the people drop out by the end.

The "Programming 101" concept

Don't only learn single language or framework, but rather a broader spectrum of skills.

The "Programming 101" concept

Python is the main language for this course. At the end, people will know a fair amount of Python.

The "Programming 101" concept

Solve a lot of problems during classes. Write a lot of code. A lot.

The "Programming 101" concept

Be intensive, but leave some room for rest. Alternating between a 3x/2x per week scheme gave the best results. Each class is 4 hours.

The "Programming 101" concept

Linux is installed on the very first lecture and any use of Windows is prohibited.

The "Programming 101" concept

We teach git & GitHub & do a lot of team tasks, so people can break things in a safe environment

The "Programming 101" concept

We teach relational databases & raw SQL queries.

The "Programming 101" concept

We teach unit testing & TDD.

The "Programming 101" concept

We teach dealing with the terminal & writing simple bash scripts.

The "Programming 101" concept

We do some network programming & some client-server programming.

The "Programming 101" concept

The approach is - “you have to suffer first and then earn your abstractions”.

The "Programming 101" concept

We end up with a week-long hackathon, which ends with a demo day, where our sponsors participate.

Improvisation, improvisation, improvisation.

Being a "Programming 101" teacher, in the end, you are the one who learns the most.

The reverse classroom approach

  • Little to no lectures.
  • "Lectures are for homework".
  • "Homework is for class".

In the beginning, we were pretty religious about that.

But we ended up with a mix of doing lectures & writing code on site (40%-60%)

Enforcing a framework in a learning environment is hard, and possibly the wrong approach.

This course requires previous programming knowledge.

Application process

  1. Solve a bunch of programming tasks.
  2. Pass an online interview.
  3. Make the cut (25-30 people per group).
  4. There can be multiple groups per course.

Business model

  • The course is free for students.
  • We have sponsors, for each course, which pay a "entry fee".
  • We charge recruitment fees, if one of out sponsors hire someone from the course.

The reality

We usually start the course campaign, in the middle of sponsor negotiations.

The reality

If we end up with 0 sponsors, we cannot cancel the course, because we lose credibility.

The reality

Bulgarian IT companies are not used to pay recruitment fees for interns / juniors.

The reality

Our business model sucked & we struggled a lot with it.

The reality

We also sucked at sales. We always took the counter offers.

The transition

  • We decided to roll our own LMS & grading system.
  • This helped us keep our programming skills sharp.
  • We found out that we have an equal passion for writing software, as we have for teaching.

HackSoft was born.

And that's our primary focus now.

Everyone, but one, who is working currently at HackSoft, came from our academy.

Currently, we do courses, because we want to do them, not because we need to sustain the business.

We love writing software & we love teaching.

So we do both.

In conclusion

Go do courses.

In conclusion

Work on your business model & sales skills.

In conclusion

In the long run, we should be teaching in English.

Thanks. Q&A?

RuseConf: Running a coding academy in the Balkans

By Hack Bulgaria

RuseConf: Running a coding academy in the Balkans

  • 1,105