Apr. 20th, 2018

shannon_a: (Default)
Tuesday & Wednesday, I had a very unique experience: I was one of two TAs for Jimmy Song's Programming Blockchain course.



First up, the course was great. I was obviously quite familiar with some of the course material, thanks to my two-and-half years of working on blockchain papers, docs, and specs for Rebooting the Web of Trust and for Blockstream. But even when we were doing things like creating transactions, which I teach in the Learning Bitcoin from the Command Line course that Christopher Allen and I are putting together, it was great to get more hands-on experience, in a different format, to be viscerally reminded of how all these puzzle pieces go together.

And that "hands-on" element was what made the course really great. Jimmy teaches the course in python, but it's more than just dry recitations of code. He has an extensive set of exercises laid out in a Jupyter Notebook, which allows you to write and run python code from your web browser. So the course is constantly skipping back and forth between Jimmy spending at most 5-10 minutes explaining something, and then the students being dumped into an exercise where they write and test code for the concept that was just explained.

I was also impressed by the breadth of Jimmy's course (in just two days!). He covered the ECC basics of Bitcoin and after transactions went on to other stuff like block structure. This was stuff that I had an intellectual knowledge of, but it was sparser, and the hands-on work helped me come to a truer understanding of it.



TAing the course was challenging.

As of Saturday afternoon, I didn't know python. So I read about half-a-book on the language. I'm certainly not comfortable with it at this point, but that mainly means that I haven't yet come to a visceral understanding of its programming patterns. Its iterators in particular are something that I have to look up every time. But I learned enough to take (and TA) the class, and I could certainly start programming in it now, if I wanted, and I'd pick up those patterns and usages with practice. (Overall, python is an attractive, forgiving language. I liked it.)

The other challenge was the course material itself. I do have a solid knowledge of blockchain after so much technical writing and editing on the topic. I can talk about its structure, its advantages, and its disadvantages off the cuff. Work on the Learning Bitcoin from the Command Line course also taught me a lot of the internals. But my knowledge of the internals isn't off the cuff yet, and Jimmy also dived deeper. So that's why I spent much of my weekend (and Monday night and Tuesday night) making sure that I'd done all of the exercises in advance. And that also stood me in good stead.

Overall, I felt like the TAing went well. My proudest moment was during the very tricky transaction-creation exercise, when I helped three different people finalize their transactions and get them out to a Testnet server. But I was generally able to provide people with some help throughout. Sometimes, my answers were a bit vaguer that I'd like, because blockchains aren't quite something I deal with every day, but I felt like I earned my keep, and I'd be a lot more comfortable if asked to do it again.



I was also in San Francisco on Monday, for a meeting with another blockchain company and a demo of their software. So, three days in the Citythis week, and this all reminded me of how much I despise the horrible state that BART has descended too. Oh, it was working well enough (this time!), with only one delay on my six trips, and that only 5 minutes or so. But, the crowding just gets worse and worse.

Five of my six trips were standing room only. One of them, the one where I boarded a train at almost exactly five, was jammed together like sardines, to the point where people couldn't get on at Montgomery or Embarcadero. Last time I was in the City for a few days during rush hour, you could still get seats if you walked out to the CIvic Center, but that no longer seems to be the case either.

And of course every fifth person on BART was coughing, sneezing, and sniffing. Literally, every where I turned there was another sickly person.

So, our main form of public transit for medium-haul in the area has become a disgusting and over-crowded petri dish.



I think TAing the course was a good experience, and it was good to meet some more folks in the blockchain community. I increasingly think that's where I'll be spending my time in the coming years, based on my solid experience there. But, oh, it was exhausting. I had days of working with people constantly, and then having almost no time to despaz at home.

I did stop by Endgame on my way home on Wednesday, but I was barely coherent. (And then I delightfully got another standing-room train only when I headed back from Oakland to Berkeley at 8.30. WTF???)

And it turns out that I'm still semi-coherent tonight.

But after 11 straight days of work, I'm taking tomorrow off. In fact, it should be a pretty low-key three-day weekend with the newest musical at the threatre the only thing on our must-do-list

April 2025

S M T W T F S
  12345
6789101112
13 141516171819
20212223242526
27282930   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 30th, 2025 12:35 am
Powered by Dreamwidth Studios