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.
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!
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.
« 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
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.
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, but knowing a similar dynamic language such as Python, PHP or VB 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.
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.
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.
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).
Also, if you're interested in more than just programming languages, checkout my other classes.
See you in class :)
P.S. Still not sure you should take this class? Got some questions? Drop me a line and let me know.