Three weeks ago, I did a potentially insane thing. I moved to an apartment I'd rented sight unseen in a town where I'd never been and where the closest person I knew was a four-hour drive away. Then I immediately started a demanding new job, and at the same time began taking an accelerated, semester's-worth-of-material-packed-into-s
It hasn't. In fact, it's been great. It's been kicking my ass, but in a good way; I can't believe how much I'm learning. Yesterday I turned in the second assignment for the course, which was to implement a user-level cooperative thread library using the POSIX context functions. I'm not going to say my implementation is particularly good, but it seems to work! And I made it myself!
Before this, the last time I took an OS course or wrote C was eight years ago as a terrified and clueless undergrad. Back then, I didn't ask questions much, because I was afraid of being found out as an impostor who didn't know anything. For some reason, it didn't occur to me that it was fine to not know anything because, after all, I was there to learn, not to prove my knowledge. So I didn't ask questions and, as one might expect, didn't really learn a goddamn thing. I barely knew what my own code did.
Alex and I often talk about how if only we could go back and do our undergrad degrees again, we would totally destroy them. That was a large part of my motivation in wanting to take an undergrad OS course this summer and paying no small amount for it out of pocket. I wanted to see if that was really true. Well, I wouldn't say I'm wreaking total destruction! on CS 4410, but I'm more than keeping up. If I don't understand something, I actively address my lack of understanding by asking a buttload of questions, and I never, ever, ever, ever, ever write a line of code I don't understand. I can't believe I ever thought that was acceptable.