Slackware might not be source-heavy now (I haven't used it in years), but it used to be, if you actually wanted to do anything with the system.
If you wanted to install something that's not in the package sets (most everything, since Pat wasn't superman), you had to download and compile the source code. I never touched a line of C before I started on Slackware, and it was a trip learning to coax code into working. This was back before GNU autoconf was popular. Also, this was back when compiling your own kernel was recommended for performance reasons if nothing else (it was a lot less modular in those days).
It got worse when Pat didn't update to glibc when all the other distros did (yes, he had his reasons, I know). A lot of code was being written with glibc in mind and would require a lot of work to get it to work with libc5. Then you had RedHat's hacked-up version of gcc that caused problems for everyone else... oh, and did I mention imake? I'm just glad I jumped in on the Linux bandwagon after the ELF switchover - some people in here could tell you some horror stories about that.
Anyway, thanks to Slackware's lack of a large package repository, I learned how to get C code to compile, even though I didn't (at the time) know the language. I learned all about how libraries and dependancies worked. I learned how to massage a makefile to see my include files. All that has served me very well over the years, and in these days when Debian's package system spoils me so well, I still get to use these skills (so a small degree) on BSD.