I teach Python at Hackbright Academy, a software engineering bootcamp in San Francisco. In the past I've worked as a data scientist, engineer, and physicist.
Are you at a point where you want to dig deeper into the implementation details of CPython, or write C extensions to optimize performance but don't know enough about C? If so, this workshop is for you!
C is probably the most ubiquitous programming language in existence. Not only are operating systems and many high performance applications written in C, but so is Python itself. If you are a Python programmer who wants to dig into the implementation details of Python, or want to write C extensions to optimize performance, then knowing some C is invaluable and enjoyable. For these reasons, C is an excellent second language to learn after Python. This workshop is intended as an introduction to C for people with some Python experience but no C experience. We will attempt to cover all of the major topics contained in Kernighan and Ritchie's classic "C Programming Language" and make connections to Python where appropriate to illuminate Python's lineage.
Anyone who is curious about C, the language Python itself is written in. The only prerequisite is familiarity with basic Python, including functions and classes.
Students should bring a laptop with an editor or IDE you feel comfortable with and a standard C compiler such as clang or GCC. You can also run code inside an online REPL.