My friend and former Udacity boss, Clarissa Shen, leads Q Bio, which built a next-generation medical imaging system that give patients autonomy and visibility into their own health.
Clarissa just alerted me to a hot job Q Bio has posted: Embedded Software Lead. This line from the job description particularly struck me:
Ability to write production level code in C and C++… Once you’re onboard, you’ll be expected you to learn Rust
I have wanted to learn Rust for the last several years, and the idea of getting a job where I would be paid to learn Rust is super-duper appealing. I would apply for the job myself, except I love Voyage so much that I definitely couldn’t leave here.
The Rust programming language emerged from Mozilla, and is supposed to be similar to C++, with many of the same high-performance characteristics, but with superior memory-handling and concurrency support. Supposedly it’s like modern C++, but even easier to pull off would otherwise be super advanced programming techniques.
“Rust has been voted the ‘most loved programming language’ in the Stack Overflow Developer Survey every year since 2016.” — Wikipedia
If you want to improve medical care and health outcomes, and get paid to learn Rust, apply here and also email your CV to me at email@example.com. I’ll put you in touch with Clarissa (who is great, by the way!)
Recently I sat down with Bjarne Stroustrup, the creator of C++, to discuss his career and the evolution of C++ over years.
We discussed Bjarne’s origins in Denmark, his PhD work at Cambridge, the origins of C++ at Bell Labs, how to teach C++, the ISO committee that governs C++, and what exactly made Bjarne’s career so successful. There’s a lot more, too 😀
Jupyter Notebooks are terrific and highly interactive tools that are extremely popular for both publishing data science results and for teaching concepts.
Udacity uses Jupyter extensively, particularly for teaching machine learning and data science.
We love Jupyter so much, in fact, that Udacity engineers have developed a set of enhancements for Jupyter called, “Graffiti”. Graffiti allows Udacity instructors to record screencasts, mouseovers, and audio walkthroughs of code. Those features get embedded directly into our Jupyter notebooks.
In Udacity’s C++ Nanodegree Program, we use Graffiti to add terminals to Jupyter notebooks, so that we can compile, run, and debug C++ programs from within Jupyter Notebooks. It’s really pretty neat.
One of my favorite parts of building this program was the opportunity to talk with C++ creator Bjarne Stroustrup. Bjarne cares a lot about teaching C++ well, and he was incredibly generous with his time and advice on the curriculum. He also graciously sat for many videos that appear in the program, in which he explains how different features of the language work, why those features came about, and the right way to use them.
The Nanodegree Program is composed of five courses, each lasting one month:
Foundations: Learn the basics of “modern” C++ (C++17!) syntax and operators. You’ll finish this course by building a real-world route planner using OpenStreetMap data!
Object-Oriented Programming: Design programs using object-oriented C++ features, including classes and templates. The final project for this course is to implement an htop-like process manager for Linux (we provide a full Linux desktop through your browser!).
Memory Management: Grasp the power of C++ by learning how to manage resources on the stack and the free store. In particular, learn how to leverage Resource Acquisition Is Initialization (RAII) principles to scope your resources and handle them automatically!
Concurrency: Parallel processing has been a key driver of the adoption of C++ into real-time and embedded systems, like self-driving cars. In this course, you’ll exploit parallel processing to accelerate your programs, starting with parallel implementations of standard library algorithms and moving all the way to thread synchronization and communication.
C++ is such an important skill, and I think this course teaches “modern” C++ in a really intuitive and hands-on way, just like all Udacity courses.
I flew over to New York last night so that I could spend this afternoon filming with C++ creator Bjarne Stroustrup. It was so much fun!
Bjarne spent the afternoon answering so many questions about the C++ programming language. He’s incredibly amenable and gracious.
Udacity has an upcoming C++ Nanodegree in the works. Bjarne’s wisdom about the language will be an important contribution to explaining why he and the C++ standards committee designed the language to be the way it is.