Impression from NYC and the RC

Two months ago I was on a train going from Montreal to New York City. It’s a long ride, but I used the time on the train to triage all the coding project ideas I could work on while at the Recurse Center (RC). So many projects; so many ideas.

Today I’m on the same train heading back to Montreal and have another 10 hours to triage the thoughts, experiences, and observations about the big city and the social experiment that is RC. Here is my best shot at it—stream-of-consciousness-style—before I forget it all.

New York City

The past two months have all been a blur. From the day of arrival when I tried to enter the wrong apartment, to the first contact with NYC street noise insanity outside of my window, to the snow storm, and all sorts of good foods. I’m very impressed with the city, but I’m not in love. Here are my observations.

New York is a big city. Compared to Montreal, it’s as if someone copy-pasted 10x the city. Or perhaps the better computer analogy is someone filling a map with the “bucket-fill” tool and completely forgetting to stop. Seriously, it seems like there is waaaay too much shopping areas with high-fashion and luxury brands. Do people really need to do so much shopping? I don’t mean to be judgmental, but as someone who is ideologically against consumerism, I felt like I was totally in the wrong place.

The energy of the city is amazing. It seems everyone is getting things done, shipping products, or otherwise being creatively on top of their game. Now I realize it is impossible for everyone to be successful, but people certainly carry themselves as if they’re crushing it. Most people I talked to made a good impression on me. They’re proud of what they do, confident, but not overly full of themselves. New Yorkers are actually interested in hearing you out, and seeing what you have to say. I felt very little closed-mindedness and little-mindedness from the locals, which is great.

I really like the demographics of the city. Everywhere I went, there are young people: from school kids who talk like adults, to the well-represented university crowd, through the numerous artists, to the middle-aged professionals contingent, and also older people who still keep in shape. Everyone is well dressed and good looking. At times I felt as if there is some sort of giant “face control” department at NYC ports and train stations that does not allow non-good-looking people to come to the city (How did I get in?).

I’m used to “measuring my words” when meeting new people in order not to alienate my interlocutors by mentioning math, quantum physics, or computer topics. When touching on such topics, I use an interactive approach to “feel out” the level of comfort of the person I’m talking with and judge how far I can go with this topic of conversation. The last thing you want is to jabber endlessly about a technical topic to someone not interested in tech, or to talk about math with a person who has a math phobia. Talking with people in NYC, I was pleasantly surprised to realize I don’t need to measure my words all that much. I would hit people with the full geekfest, computer jargon, and even quantum topics and they would handle it just fine. People are more knowledgeable than you think, and those that don’t know anything about the subject matter are willing to go into it and still had interesting things to say. That’s really nice. It’s great to be around people who can handle the tech talk and the science talk. All the New Yorkers I spoke with are smart, open minded, and generally well aware of the world.

The New York lifestyle is definitely something I could get used to. Two months of living there is not enough to get used to it or see enough of it to be a judge, but I met enough locals and saw enough to get a general feeling for what it’s like. First you need a NYC job. That’s a key thing if you are to enjoy the \$8 pints, \$15 cocktails, and \$30+ entrees. I mean anyone can afford to eat out once in a while, but if you’re not making 100K+ in this city, you’ll have a lot less opportunity to enjoy all the restaurants and bars. All these places of socialization are waiting for you after work. Unlike the dwellers of most North American cities, New Yorkers tend to go out after work. Whether it’s for a fancy dinner, or a quick dinner, or for straight-up alcoholism activities, people don’t want to go home. The city is very European in that way. You get to talk to people, see your friends, and generally hang out rather than go home. I like that very much.

The noise though. Oh. My. Fuckin’. God. The noise is terrible. It seems like every person who brings a car into Manhattan wants to exercise their right to use the klaxon as much as possible. Seriously, if the street is jam-packed for hundreds of meters ahead of you, will honking really make a difference? It’s not just the honking though, the constant presence of people at all hours with their need to scream, the large open spaces that carry sound, the delivery trucks, the construction work, the garbage collection trucks, and the highways. I am generally not affected by noise, but I never thought it can be this intense. In fact, I read that some people can get used to the noise level and need it for creative stimulation.

But it’s not just New Yorkers in cars that like to signal. Everyone in NYC is big on signalling. There are a lot of expensive bars and restaurants where the locals can feel special because of the hefty bills they will pay, but I guess it’s like that everywhere around the world. The specific signals New Yorkers use to show their higher status relate to the most difficult things to have in the city: cars and dogs. Owning a car in Manhattan must be an absolute nightmare with all the traffic and how difficult it must be to find parking. For this reason, if you’re seen rolling down the street in a fancy convertible, then you really must be something special. It’s a bit like high-heels—they’re attractive because they’re totally impractical. It seems it’s the same with owning a dog in NYC. We’re talking about a stone and concrete jungle with very little green areas. Why do you have a dog? Where are you going to take it out for a walk? Still, if you own a dog in these difficult conditions, then you must represent. Anyway, human nature is weird.

The Recurse Center

My six weeks at the Recurse Center were very much what I expected them to be, but also very surprising and inspirational at the same time. I kind of knew what to expect when going into RC from talking with people who’ve attended: RC is a shared office space with a focus on coding projects and exploration. This description is accurate, but completely fails to account for the amazing people that are present in that shared office space. Imagine co-workers that you actually want to talk to? How cool is that?

I’m in total awe with the people that I met. There were extremely knowledgeable people with very interesting background and achievements, but also inspiring “junior” people with insane ability to learn quickly. We had people who know how to use nearly every imaginable programming language: Agda, Clojure, Coq, C, C++, Erlang, Go, Java, JavaScript, PROLOG, Python, and even COBOL. How often would you have access to  such variety of people and be able to ask questions of them, or just “Hello Joe, can you give me an intro to PROLOG?”

I definitely felt some impostor syndrome after meeting all the people and hearing about the projects they were working on, but then I stopped comparing myself to everyone and it was OK after that.

The main idea for the Recurse Center is to provide the learning environment but not impose any structure. The first day has a lot of “official” events organized with the goal of getting people to know each other, but apart from that we’re left pretty much on our own to figure out what we want to do. People organize events, form reading groups, and work on projects in pairs or larger groups.

The first week was a bit strange and anti-social. I would show up in the early morning and work on some coding projects, try to socialize over lunch, then back to more coding in the afternoon, then go home. No beer or after-work pub activity. I think the people in the Spring 1 batch were realizing they are halfway done with their batch and trying to be more productive and the new Spring 2 people were not going to suddenly start talking to each other and making friends. Everyone felt distant, busy, and not wanting to be disturbed until the first Thursday game night. This evening was a marked change, at least for me, since after a few beers I felt much more comfortable talking with people. Beer is the universal ice breaker. After this first social event, I felt much more comfortable talking to people, joining conversations, and generally interacting with people. As if somehow drinking a few beers in the same room had turned us from coworkers into buddies.

Throughout my time at RC there was a constant tension between working on projects and socializing. My original plan was to push forward on one project, or another, until it is in a shape where it can be shown and shared with others. Needless to say this never happened, since “cleaning up” the projects and getting them into “not ashamed of the code” state was too much work, and would have required much more time than a half-batch. Once I realized this, I said “fuck my projects” and decided to focus more on talking to people, sometimes helping with whatever they’re working on, sometimes teaching math, doing Django demos, explaining pointers in C, and generally trying to be useful as a teacher. At the same time I played the student role in several other contexts where people more knowledgeable than me introduced me to PROLOG, Neural Networks, and Formal Type systems.

Something that I realized near the end of the batch is that RC puts a lot of emphasis on not imposing any formal structure to the learning process. There are no instructors. There are no classes. There is no set curriculum for people to follow.

Not adhering to any strict procedure, formula, method, or curriculum is a very powerful idea. It makes me think of Alfred N. Whitehead’s essay titled The Aims of Education in which he warns about the danger of inert ideas. Every now and then powerful new ideas and ways of thinking erupt on the intellectual scene and overturn old and established ideas. Slowly over time the new ideas become codified and structured until they become the new dogma. Whitehead warns us that the seemingly “efficient” approaches where students are taught to “skip ahead” and directly memorize useful facts might not be the best way forward if we want truly developed learners. Instead of memorizing thousands of facts, Whitehead advocates exposing students to a few important ideas and letting them apply these ideas in various practical scenarios.

I find RC’s structure-less approach very interesting because it is diametrically opposite to my thinking about education. The power of this unstructured approach is that it will never degenerate into dogma, rote learning, or formulaic explanations. By sticking to meta-learning techniques like study groups, reading groups, pair programming, weekly meetings, and activities, RCs learning will stay evergreen. I imagine the the 2014 web study group were about Backbone.js and the 2017 it’s all about React.js. RC never becomes outdated.

At the same time I believe that some structure could be very useful for beginners. How much time was wasted by each person to setup their basic coding environment? How much time is wasted learning from the wrong source? How can beginners know which tutorial is good and which tutorial is bad? The whole assumption of putting learners in charge of their learning process assumes that learners are adults and have well-developed meta-cognitive skills. It just so happens that all the people at RC are very smart and capable of “taking ownership” of their learning process so it works out, but I’m still left thinking that some structure could be introduced into RC without losing the flexibility.

 

Possible improvements

I thought of a number of ideas which would have made my experience better at RC and which could benefit people who are learning to code in general.

  • More short-term, throwaway code projects. I think I wasted a lot of time thinking of the projects that are good, worthwhile, or of general interest. I felt I need to come up with a really good idea for a coding project if I’m going to invite others to collaborate with me. From what I heard around me, many people were working on quite serious, long-term projects (think three week-long projects, or six-week long reading group). Those are cool and you’ll learn a lot in the end, but I think short, throwaway projects are much more valuable for learning. I had a lot of fun working on half-day projects in collaboration with people. If I come back to RC, I would focus 70% on such projects: get technology A to work, install B on top of C, wrap D inside and E environment, write a hello world in F then package your code and make it run in the G cloud. All of these activities would take an expert 30 minutes to do. A solo beginner would take 5-12 hours, and a team of beginners 3-5 hours. All the boring scary parts of getting things off the ground are so much better when you’re working in a team.
  • At the same time I think it’s good for everyone at RC to have one long term “show off” project to work on, dig in, and become sort of expert at. This could also be a collaborative project, it doesn’t need to be a “my portfolio” project, but I think it’s important for everyone to learn how to polish the code beyond the “school project” level. It would be great to have the full end-to-end experience from idea, design, implementation, coding enough to make the app useful to end users, deploy the code in a production environment, writing tests, etc. It doesn’t make sense to do all these extra steps for each of the throwaway projects, but it totally makes sense to go through the motions at least once for one project.
  • Code reviews. We had a great conversation over lunch with A., B., and N. where we all agreed that we somehow need to introduce the notion of code reviews and collaboration best practices (releases, feature branches, pull requests). It doesn’t make sense to do code review on the throwaway projects, but I think everyone would benefit from code review on their “show off” project. Imagine pairing a Python beginner and a Python expert on a simple web app project. Using only one hour per week of productive time, the Python expert could transfer all the best practices about conventions, code organization, idiomatic Python, testing tools, and deployment to the beginner.
  • Starter tutorials and curated learning resources. This is basically what I was working on throughout most of my batch. Imagine a collection of links to learning resources about every imaginable computer-related topic and each topic comes with a short tutorial prepared by a recurser that gives you the “hello world” introduction to the topic. I think this sort of curated list of links to resources, if continuously updated, can really improve the life of beginners. Instead of trusting “uncle google” to find the most relevant tutorial on topic X, you can go to a trusted source and get started learning topic X without the fear you’re missing out on some better tutorial somewhere else. Perhaps the page on topic X could use the Socratic method and just ask questions? For example, the page on JavaScript could ask: What is this? What is a prototype? What is the difference between == and ===? And other questions that will lead learners to seek answers on their own.

I think the above four ideas would really improve the RC experience for future attendees. I personally feel I wasted a lot of time in the first weeks thinking of a grandiose project to work on, and in retrospective I wish I had worked on smaller half-day, or one-day projects to learn as much as possible. I think mini-projects lend themselves better to collaboration. Imagine someone asks you to collaborate on a week-long project to do some big thing, versus someone asks you to collaborate on a small toy project for half a day?

Conclusion

Overall my stay at RC and in NYC was a good experience. I learned a lot. I got out of my Montreal routine/bubble. Above all, I met some amazing people. Fuck computers and coding resources… people are the best resource of them all! Many thanks to the RC Staff, Spring 1 and 2 batchmates, and all the alumni. Hope to see y’all again.

The textbook business

This is a followup on my previous post about the challenges of open educational resources (OER) production and adoption. I’ve come to the conclusion that the key aspect holding back the “OER dream” is not the lack of collaboration tools or the ability for teachers to discover material, but the quality of the content. You can’t write a textbook by committee. It’s as simple as that!

I wish collectives of qualified authors/teachers could come together to create the free textbooks and other educational material, but it seems human nature doesn’t work this way, and it’s very difficult for multiple authors to “sync” their thoughts together and come up with a coherent narrative for book-length projects.

The key to the production of quality educational content is to set the right incentives for knowledgeable authors to write. I’m thinking graduate students writing tutorials, blog posts, HOWTOs, books, and generally living from the proceeds of their work. Rather than wishful thinking about “collaborative projects” where multiple authors come together to write a book, why don’t we focus on single-author textbooks? Rather than a “commons” approach where nobody owns the project, let’s have a single author “own” the project and make them personally involved with its success. I believe the monetary incentives will be enough to make the author invest the time needed to make the book/project/resource a success.

It’s possible to replicate, and generalize the business model I used with the MATH&PHYS, and LA books with experts in other fields: chemistry, biology, economics, psychology, history, etc. If a young person (think an M.Sc. or a Ph.D. student) with practical and teaching experience in a particular subject writes books, I can guarantee the book will be a success.

 

Business model

The beautify of the matter is we don’t need to invent anything new. We’ll use a very traditional business model, where we sell products to make cash. The authors will make a significant profit from each copy of the book sold, and will thus be incentivized to produce quality content that sells.

The publisher (Minireference Co.) will also make profits from the book sales and be able to fund software development, marketing efforts, author advances, and generally take care of the business overhead for running operations. The main innovation of this business model is that, rather than the publisher being in an exploitative relationship with the author, they are equal partners. Rather than authors making 10% royalties, at Minireference Co. authors earn 50% royalties. The publishers takes care of the boring stuff and allows the authors to focus on the hard task—writing, polishing, and curating the content. Equal partners, with parts of the proceeds.

The market(s)

The main audience for the textbooks will be students, but students in the broadest sense of the term. We’re talking advanced-level high school students,  university students, parents, and adult learners. By setting a price point for the products around $29 to $39, we’ll make sure the books are affordable for everyone, but also make enough money to sustain the authors so they can keep producing more books.

 

Okay, so where is the OER in all of this?

By now, my dear readers, you might be wondering if there is no case of “bate and switch” going on here. We started with the promise/mission to make open educational resources more accessible to students and adult learners around the world, and somehow we ended-up with a reaffirmation of a business plan to make money from selling books. Perhaps there is some of this going on, but you must agree that building stable organizations with individuals who earn a living by teaching is a step in the right direction.

The approach that I imagine for getting achieving the “OER dream” is to encourage authors to sell their university-level books, but contribute primary and high school material as OER. I think the “university for money, but high schools stuff for free” approach will work for two reasons. Some authors might start from an altruistic point of view, and want to do something good for society by releasing some introductory lessons for free. Other authors might be motivated by purely capitalistic incentives, since releasing the high school material for free is an excellent way to promote their work.

 

Focus, focus, focus

There’s only a limited things one person can do in their lifetime so it’s important to focus on the things that make sense, and which have potential for growth and high impact. I’ve invested the past 5+ years of my life in the math textbook business so I think it’s important to continue that project instead of changing priorities or working on other projects.

The beauty of this idea is that it doesn’t require any miracles, breakthroughs, or external funding. All it takes is an evolution of the project I have currently going on, so I can work with more authors. Life always tends to make things more complicated over time, so starting with a simple plan, and keeping the focus is generally a good way forward. Vamolos; ándale!

Improving the math chapter

The goal for the NO BULLSHIT guide to MATH & PHYSICS was to make a concise textbook that teaches university-level calculus and mechanics in a nice “combined package.” The math fundamentals chapter grew out of the need to introduce the prerequisite material that many students often lack. I didn’t want to be like “y’all should remember this math from high school,” because if you don’t remember the material such comments would not be very helpful. A review of high school math would be more helpful.

Over time, I kept adding and improving the introductory math material in Chapter 1 until it reached the point that it’s a pretty solid little intro to high school math. I was very proud of the fast paced flow of explanations which manages to cover a lot of material (70% of high school math topics) in less than one hundred pages. Many readers also praised this chapter, saying how useful they found it as a review of high school math topics.

Recently I’ve been hearing from several readers who say the intro chapter sucks, and the book sucks, and by extension I suck. If it was one or two reviewers I could have dismissed this feedback, but now I realize there is a clear and consistent message in the readers’ feedback: Chapter 1 sucks as a first contact with math. My effort to “cover” all the high school topics in a fast-paced narrative like in the free mechanics and linear algebra tutorials is probably the worst thing to do for absolute beginners. I can totally understand why a reader who is not familiar at all with sets, algebra, and functions will have a rough time in the opening pages of the book. In the words of a reader, the book “goes from 0 to 60 in the blink of an eye,” which might be a good thing for a sports car, but not for a math book. It doesn’t help that I say “anyone can learn math from this book, regardless of their mathematical background” in the marketing copy. I need to do something to fix Chapter 1, and soon.

So what am I going to do about it, then? Write, of course—what else can a writer do? I’m going to prioritize the basicmath project and write the best sequence of introductory math lessons that ever existed! I’ll then use these explanations to beef up  Chapter 1 to make it a solid foundation. I think adding 20–40 more pages will be enough, so the book won’t get that much thicker. It’s not just about adding though, I think Chapter 1 could use better organization, flow, and clarity of explanations.

Interestingly, the basicmath project overlaps well with my planned social media campaigns that will push the message “learn math; math is useful,” as well as the math lessons by email. February is gonna be very mathematical!

Math for lawyers

A reader recently suggested I should write more articles that introduce math specifically for different audiences. Math for doctors (although I’d hope they already know math!), math for artists, math for musicians, etc. I like this idea.

In the spirit of procrastination and given the three other tasks I have to do in currently open tabs, I’m going to now dedicate the next hour to writing a sample post that introduces math to people with a “legal mind.” Don’t worry, dear readers—it just takes an hour to write a blog post. Reading it will only take three minutes.

MATH

Yes. I’ve said the dirty word. Everyone’s dreaded topic. So factual and unforgiving—you’re either good at math or you’re not. Okay. No, no, no. We’re not going with the usual narrative today. Let’s deconstruct this thing that is math, and see what it’s made of. Perhaps it’s not so bad.

 

Axioms and rules

Math is very ordered. It’s a bit like the French system (civil-law). All of math can be summarized as basic axioms on which everything else is built. Think of math as a set of rules that people have found to be generally useful in the past two thousand years. Like, send a spacecraft-to-mars useful. Once you know the dozen or so rules for working with numbers and expressions, and the dozen definitions and observations about geometry, you’ll have access to some of the “best stuff” that human intellect has to offer. I guess what I’m trying to say is that A) math is not that hard to learn because there is a finite set of basic rules to learn, and B) once a reader learns the basics, the reader is granted a nonexclusive, royalty-free, perpetual, irrevocable, transferable, worldwide license, to make, use, enjoy, benefit from, teach, share, offer for sale, sell, reproduce, include in, distribute, modify, adapt, prepare derivative works of, display, perform, and otherwise exploit math.

Cases

Math has a lot of common-law aspects to it too. Theorems (big results) and lemmas (little results) are like cases that mathematicians have proved. A proof is a bit like a trial, where the mathematician tries to convince the jury (usually consisting of fellow mathematicians) that some new mathematical fact is true. Unlike a real-world courthouse that depends on a judge’s judgment at some point \(t\) in time, a mathematical proof is always on trial. If the mathematician’s proof is solid and can be followed to the basic axioms, it’s very unlikely it will ever turn out to be wrong, so it’s common for mathematicians to simply cite theorems as if they were “ruled upon” case law.

 

The pitch

So here we are talking about math as if it’s some cool new thing, but we all know that math is difficult to learn and probably not that useful in every day life. Yes, perhaps it is so, but the point remains that certain math—let’s call it the useful part—has been around for thousands of years and hasn’t been proven wrong. Basic math is well understood, highly useful, and totally empowering.

Do you want to be part of this math thing? If so, check out the books.

 

The aims of education according to Alfred North Whitehead

Yesterday I read the fascinating essay titled The Aims of Education by Alfred North Whitehead (1861-1947). It was written 100 years ago, but every line of it rings true in the modern context. Below I’ve extracted the best quotes from the essay and added some personal comments.

The OP gives a detailed blueprint of how to structure formal education, making a distinction between “general education” (primary school and middle school) and “specialized training” (high school and college). The essay discusses learner psychology, learner user experience, curriculum customization, student assessment, and even proposes a new structure for the educational system. The essay is so full of good stuff that nearly all of it is worth quoting.

 

The danger of inert ideas

In training a child to activity of thought, above all things we must beware of what I will call “inert ideas”—that is to say, ideas that are merely received into the mind without being utilised, or tested, or thrown into fresh combinations.

In the history of education, the most striking phenomenon is that schools of learning, which at one epoch are alive with a ferment of genius, in a succeeding generation exhibit merely pedantry and routine. The reason is, that they are overladen with inert ideas. Education with inert ideas is not only useless: it is, above all things, harmful. […] Except at rare intervals of intellectual ferment, education in the past has been radically infected with inert ideas. That is the reason why uneducated clever women, who have seen much of the world, are in middle life so much the most cultured part of the community. They have been saved from this horrible burden of inert ideas. Every intellectual revolution which has ever stirred humanity into greatness has been a passionate protest against inert ideas. Then, alas, with pathetic ignorance of human psychology, it has proceeded by some educational scheme to bind humanity afresh with inert ideas of its own fashioning.

Continue reading “The aims of education according to Alfred North Whitehead”