Programming goodies. Quality stuff!

If someone is interested, here are some of the best video lectures on programming (that I've ever seen) on the Web. They are recordings of courses given by the author of the STL - Alexander Stepanov going deep into the design principles of the library.

https://www.youtube.com/playlist?...LHxtyCq_WDLXFAEA-lYoRNQIezL_vaSX-
https://www.youtube.com/playlist?...LHxtyCq_WDLXryyw91lahwdtpZsmo4BGD

Although a bit slow going at times, it is quality stuff. Highly recomended.

The guest lecture alone (given by Sean Parent form Adobe) is also something that every programmer should watch:
https://www.youtube.com/watch?v=I...WDLXFAEA-lYoRNQIezL_vaSX-&index=9

And, for those of you more mathematically inclined there is another series of lectures ,interweaving algorithm implementation with the history of their matemathical development:

https://www.youtube.com/playlist?...LHxtyCq_WDLV5N5zUCBCDC2WqF1VBDGg1
https://www.youtube.com/playlist?...LHxtyCq_WDLW0NqZCcrrQUa24H_af6Mrn
https://www.youtube.com/playlist?...LHxtyCq_WDLXrHwcaay14-4FXdzQBIMGx

Edit:
Somehow the link to Sean Parent's lecture isn't visible.
It is the 5'th lecture in the "Programming Conversations" series

Edited by Piotr Madalinski on
I personally really like Alexander Stepanov. Despite that he looks a lot like a theoretician because of his use of maths, he definitely walked the walk and delivered working software. His original SGI STL is really nice. Although he will be remembered for it, he also wrote some great books like Elements of Programming, where it is clear that he always meant to empower people to program in a style that is based fundamentally on math theories.

Anyhow there are hours of lessons from him on youtube (a9 channel) ; he develops in what seems like a very different style (quasi-opposite) to handmade hero (but he hates OOP too) but that doesn't mean he would actually disagree. For instance he really insists on making sure an API works by looking at its usage. (A lot of what the STL became afterwards as part of the standard was not his fault, as he could not fix API issues just because this was a standard and going through the political gears was not what he liked)

He offers an alternative to functional programming in that he shows how to use tools from math to write imperative code (See his definition of regular types and regular procedures)

It's also pretty clear from his teaching and writing that he programs a machine, and that it's important to understand it.

For instance in one of his a9 lecture he demonstrates multiple solutions to a problem written in different programming styles (the fortran style, the oop style etc...) and he uses it to show that machines have changed and the "fortran" style is the best performance wise today.

Quite often I would recommend against making something generic first. It is a terrible idea often because this means making the problem you are solving more complicated, by removing context, and your solutions entangled.

In Stepanov's case, his generalizing actually simplifies the problem solving. The reason it works for Stepanov is that the things he chose to make generic are based on fundamental constructions that pre-exist in math. ("Theories" that he latter called "Concepts" because people misunderstood what the word theory meant)

They are well formed, and come with necessary constraints that allow the resulting code to suffer no loss of the fundamental context that make it work.

Edited by Nicolas Léveillé on
That's a great summary, uucidl. Thanks.