The Programming Language Masterclass

With Marc-André Cournoyer, author of Create Your Own Programming Language

Understand the inner working of Ruby, Python, PHP, Java & become the best programmer you've ever met.


Here's how I became a better programmer

Do you know how that if statement you're using all day is parsed, compiled and interpreted by your machine? ... Yeah neither did I. Browsing online programming forums felt like some people always knew more than I did. It seemed whatever I did, I could never level up as a programmer the way I wanted to.

To master your craft, you need to understand how your tools work.

So I decided to study how programming languages work. How the code is analyzed and how it's executed. A year later, I was diving pretty deeply and creating my own Ruby implementation with a bunch of optimizations. And I didn't even know C a year before!

Me, my face & I

The architecture of programming languages hasn't changed much in the last 40 years. You know of anything else in software that hasn't changed in 40 years? This is knowledge that will serve you for the rest of your career. Learning how a programming language works is by far the most important thing I did during my career, and almost the most fun!

In this class, I will teach you, in 8 hours, everything you need to know about how a programming language works, from your code to the machine. Learning this stuff is a mind altering experience. It will change the way you view programming forever and will make you a better programmer in the process.

What previous participants said about the class

« Not 24h after part 2 and I have already completed a programming language!

I highly recommend this to anyone interested in the subject. It shows every part required for a programming language implementation, and has as much information as can be put into eight hours while remaining easy to follow. »

- Felix Rabe

« Phenomenal. If you are interested in the 'how' of programming languages then this class is an amazing crash course. The material is well thought out and the exercises are engaging and fun. I'll be recommending this class to every developer I know. »

- Bryan Weber

« It has really given me a lot of insight and perspective to understand better all the layers present in a programming language. »

- Josep M. Bach

« The class is well prepared, well given and contains valuable material. I certainly recommend it to anyone wishing to learn about how his/her preferred language works! »

- Cassiano D'Andrea

« Quickly demystifies language implementation; I felt like I could easily write something useful after taking the class! »

- Jen-Mei Wu

« Creating your own language seems like an impossible, superhuman task. [this class] makes it seem, if not easy, possible. You will learn a ton. Take it.

I loved learning more about what really happens when a higher-level interpreter like Ruby executes code. »

- Peter Aronoff

« Great class - Lot's of practical examples, a broad range of covered topics accompanied by great material. I really enjoyed it. Thanks a lot! »

- M. Deilmann

« It was an amazing experience. [...] Enjoyed every moment of it. »

- Rajesh Pillai

« The class was fantastic! Marc-AndrĂ© was well-prepared and the exercises helped me really understand what's involved in implementing a programming language. »

- Clinton Nixon

« I like how this class was unashamedly advanced. [...] This is so much better than dumbing things down! »

- James Gray

« The class exceeded my expectations. »

- Rafael Rosa

« Now I know JIT-Jitsu. »

- Markus Prinz

« I liked how Marc took complex ideas and simplified them, how the parser creates a tree, for example.

A college-semester's-worth of knowledge crammed into 2 days. What's not to like? »

- Adam Spooner

What you'll learn in this class

  • Get rid of all the magic! Finally understand how your code is executed.
  • Write better and faster code by knowing how it is interpreted.
  • Understand the tradeoffs of programming language design and know what you can and can not do with your code.
  • Discover every step of the process between your code and the machine.
  • Learn to parse any language with ease.
  • Uncover the lingo: lexer, parser, runtime, interpreter, compiler, potato.
  • Understand low level stuff and optimizations by creating a virtual machine.
  • Dig into machine code by implementing a simple JIT compiler.
  • Implement your own programming language.
  • Learn new programming languages faster.
  • And much more ...

What you get

  • Downloadable copy of the slides used in the class.
  • Cheatsheets summarizing important points for quick reference.
  • Downloadable video recording of the class.
  • Code from the class you can share, modify and reuse.
  • Eternal and permanent awesomeness.
  • Bonus A copy of Create Your Own Programming Language
Content of the class

How it works

Adobe_connect

The class last a total of 8 hours over two days. We all meet at a given time in a chat room where you'll get instructions to start watching the streaming video of the class.

I will present the content using slides and live coding sessions. You can ask questions at any time using the chat room. Each module will end with a period of questions and exercises.

You will never appear on video. You only need to watch the live video of the class. You ask questions in the text-based chat room.

If you miss any part of the live class you can watch the recording of it any time you want.

Everything is online, you only need a web browser (with Adobe Flash support for the video and audio). Also, Ruby, Git and a C compiler to complete the exercises.

Who should take this course

During the first part of the course, I will use Ruby to build and show core concepts. You do not need to know Ruby, although it will help. Knowing a similar dynamic language such as JavaScript, Python or PHP is fine.

You do need to be an experienced programmer, having worked with a few programming languages for a few years. But you do not need to know anything about how a programming language works, that is what this class is for :).

If you're not sure if this class is for you, drop me a line and we'll find out.


Guarantee

Awesomeness guaranteed or it's free

I truly want you to learn a lot and enjoy this class. But if for any reason you're not fully happy after taking the class, I'll give you your money back and you keep everything, no questions asked. If you're not happy I'm not happy. All risk is on me and I'm cool with that.


Places are limited

This class will be highly interactive, I want to be able to answer all of your questions. Thus, each class is limited to 25 people. Keep in mind, previous edition of this class sold out in a few hours.

How much?

This type of course can be expensive. A compiler course at a good university is around $2000. But since this is virtual and I want to make this course accessible. You get the 8 hours of interactive class, downloadable recordings, cheatsheets, exercises, reusable source code and a copy of Create Your Programming Language for only $529 CAD (~$523 USD).


Choose Your Package

Live Plus

Rebuild two languages from scratch.
(Ruby and JavaScript).

  • Day 1: Creating an interpreter (4h) Implement a parser, runtime & interpreter.
  • Day 2: Creating a compiler & VM (4h) Compile to JS, bytecode and build a real high performance Virtual Machine.
  • Video: Reimplementing JavaScript
    Learn about prototypes, scopes, etc.
  • Extra Q&A one week after class

$629 CAD if you book early, $729 afterward.

Sold out! Sorry all tickets are gone.

Sign-up to get notified about future editions

Recordings

Same as the Live package but only the recordings.

$279 CAD.

Buy now

See you in class :)

Marc

P.S. Still not sure you should take this class? Got some questions? Drop me a line and let me know.