Enjoy programming? Check out Code Words, a publication from the Recurse Center community.

Code Words Issue Seven, and some changes

TL;DR: The first three pieces from the seventh issue of Code Words, our quarterly publication about programming, are now online!

You may notice that we’re quite late with this issue, based on our original quarterly schedule. With Issue Four we started publishing Code Words piece by piece, in order to have more scheduling flexibility. Earlier this year we found ourselves in a bit of a schedule crunch, and so we postponed Issue Seven to the next quarter. And here we are in October, finally publishing!

We’ve learned a lot during the process of publishing Code Words. It is produced entirely by Recursers and RC faculty, and while it’s a time-intensive project, it’s also no one’s full-time job. We’d like to keep publishing it, and for future issues we’re going to be making changes to the way we manage it internally. We’ll also be experimenting with a continuous, rather than quarterly, publication schedule.

Until then, check out the articles in Issue Seven below! We’ll be updating this post as more articles are published.

Issue Seven will feature writing from Serena Peruzzo (RC Spring 1, 2015), Miles Blackwood (RC Fall 2, 2015), Kiran Bhattaram (RC Summer 2, 2016), Nathan Epstein (RC Spring 1, 2016), and Darius Bacon (RC Fall 2, 2015 & Fall 2012). In addition to all of the writers, we’d like to thank Barak Chamo (RC Fall 1, 2015), Robert Lord (RC Winter 2014), and Alex Wilson (RC Summer 2013) for all their careful editing and help.

Code Words is written and edited by the Recurse Center community. Like RC itself, we aim to make Code Words accessible and useful to both new and seasoned programmers, and to share the joyful approach to programming and learning that typifies Recursers. Code Words contributors retain the rights to their work, and provide their essays under the terms of the Creative Commons BY-NC-SA 4.0 license.

If you’d like to receive updates about new issues and news about the Recurse Center, sign up for our mailing list.

Rachel vincent 150

Pausing RC Research

We’ve decided to pause work on our research lab. Michael Nielsen, our first research fellow, has finished his one-year fellowship at RC and is moving across the country to continue his work at YC Research.

We’re not hiring another research fellow right now. We’d like to restart RC Research at some point, but we think that the most important next step in building a successful research lab would be to hire multiple researchers at the same time, something we can’t currently afford. We’ve learned a ton in the past year about building a research lab from scratch which we’ll write about once we’ve had more time to reflect.

Working with Michael has been wonderful. We’ll miss having him around RC, but we can’t think of a better place for him to go next than YCR, and we’re excited that he’s going to be continuing the research that he worked on here. Sam Altman and the rest of the folks at YC have been incredibly supportive of RC over the years, including helping us when we decided to start RC Research, and we’re thrilled that they’re going to get to work with Michael.

David albert 150

Five years

Five years ago today, six brave souls entered a small NYU classroom for the start of a so-called “writers’ retreat for programmers.”

The whole thing likely seemed as improbable to them as it did to those of us organizing it: A group of people coming together just to learn and code with each other, full-time, without teachers, grades, or a curriculum.

We’ve grown in many measurable ways since that first batch in 2011: We’ve programmed with over 800 exceptional folks who traveled to RC from more than 40 countries. We’ve helped hundreds of new and experienced programmers find jobs. We’ve launched new experiments including a residents program, a programming journal, a research lab, and free mentorship for new programmers.

But it’s the harder to measure things – seeing people finally see themselves as programmers, accomplish things they could never have done before, and change how they treat themselves and others – that make us really proud.

In general, we prefer to focus on how we can improve RC. Today, however, we’d like to take a look back and thank our community. So, thank you to those first six Recursers and the hundreds since who took a chance on us, and who have made RC what it is today.

Founded in 2011, the Recurse Center is a free, self-directed, educational retreat for people who want to get better at programming, whether they’ve been coding for three decades or three months. The retreat is free for everyone, and offers need-based living-expense grants up to $7,000 to women and people from groups traditionally underrepresented in programming. The retreat is funded exclusively through recruiting partnerships.

Thanks to Perka for funding $10k of diversity grants

We’d like to thank Perka for sponsoring $10,000 in Recurse Center diversity grants, and enabling more wonderful programmers to spend a batch at RC.

Perka has been a Recurse Center hiring partner since 2013, and this is the second round of grants they’ve provided for Recursers.

The Recurse Center remains free for everyone; we offer grants of $500 - $7,000 to folks from groups that are underrepresented in programming to help cover living expenses.Since 2012 we’ve disbursed over $1 million in grants to Recursers, and diversity at the Recurse Center has improved dramatically.

If you’d like to join the best community of programmers in the world, apply to do a batch of RC.

Rachel vincent 150

Andreas Fuchs, Sarah Sharp, and Jamey Sharp are Recurse Center residents

We’re excited to announce three more residents for this summer: Andreas Fuchs, Sarah Sharp, and Jamey Sharp will be joining us as residents in June.

If you’d like to work with Andreas, Sarah, or Jamey, there’s still time to apply to the Summer 1 batch of RC (though the batch is currently full, you may join the waitlist if you are admitted). And remember to keep an eye on our blog for more 2016 resident announcements!

Andreas Fuchs Andreas Fuchs works on the infrastructure team at Stripe, building the systems that other developers use to build payment systems for the Internet. Before starting at Stripe, Andreas was a member of various Common Lisp open source projects, worked on an extremely scalable (and weird!) RDF graph database, and for a while even maintained a decades-old Motif-based GUI framework that was derived from code originally written for Symbolics lisp machines. For as long as he has used computers, his goal was to make it as efficient as possible to waste his own time, and so is constantly working on a grand system orchestration or automation idea. In his spare time, you can find Andreas performing terrible wordplay and learning to play the hurdy-gurdy. Andreas will be in residence from 6/6 - 6/9 (Spring 2 and Summer 1 batches).

Sarah Sharp Sarah Sharp is a Linux and open source developer, with an interest in hardware and increasing diversity in tech. Sarah graduated with a B.S. in Computer Engineering from Portland State University, and she has been running Debian-based Linux systems since 2003. Sarah wrote the Linux USB 3.0 host controller driver, and was a Linux kernel maintainer for five years. She has also tinkered with Arduinos, real-time operating systems (RTOSes), and she loves to play around with open hardware. Sarah’s favorite open source tools include Darktable (raw photo editor), KDEnlive (video editor), and Inkscape (vector drawing). She frequently uses (but only tolerates) git, libreoffice, and many different Linux command line tools. Sarah is an expert with C, but has also written code in Python, Java, C++, and shell scripts.

Sarah also loves to make fan videos, write blog posts and tutorials, do amateur photography, garden, and bicycle. Sarah is happy to share knowledge, and would love to give tips on creating tech presentations and promoting yourself in the open source community. Sarah is a co-coordinator for Outreachy, a 3-month paid internship program to connect people traditionally underrepresented in tech with open source mentors. Sarah will be in residence from 6/13 - 6/22 (Spring 2 and Summer 1 batches).

Jamey Sharp Jamey Sharp enjoys learning anything he can about everything from CPU architecture to functional programming, and from real-time embedded systems to web development to control theory and combinatorial search algorithms. But just learning about computer science isn’t as much fun without getting to share it with other people! Jamey has been mentoring people since his undergrad days working on his B.Sc. in Computer Science at Portland State University, which he completed in 2006. Over the past several years he has sponsored over a dozen different six-month software engineering capstone projects, helping students work in code bases including the Linux kernel and the X Window System, as well as quite a few Python projects.

Professionally, Jamey’s career began with web development in Java and Perl during the dot-com boom; proceeded into systems programming in C while creating XCB, a client library for the X Window System network protocol; software product architecture for a computer test for ADHD with components in Java, C, and Python and spanning desktop, web, kernel, and bootloader code; Comic Rocket, a site for helping webcomic readers keep up with their favorites and discover new comics, in Haskell and Python; and most recently, high-assurance software development at Galois, in Haskell, C, and Java. He’s eager to try Mozilla’s new Rust programming language on his upcoming projects. Jamey will be in residence from 6/13 - 6/22 (Spring 2 and Summer 1 batches).

Rachel vincent 150

Steve Klabnik, Paul Fenwick, and Frank Wang are Recurse Center residents

We’re excited to announce that Steve Klabnik and Paul Fenwick will be joining us as Recurse Center residents later this year, and that Frank Wang will be rejoining us as a second-time resident! Read more about them below.

If you’d like to work with any of these folks, apply to do a batch of RC during their residency. Keep an eye on our blog for more 2016 resident announcements!

Steve Klabnik Steve Klabnik is a software developer, working for Mozilla as a core team member of the Rust programming language. A long-time writer, Steve authored the official book on Rust, “The Rust Programming Language”, as well as several others: “Rails 4 in Action”, “Designing Hypermedia APIs”, and “Rust for Rubyists”. Before working on Rust, Steve was heavily involved in the Ruby and Rails communities, and used to teach Rails professionally. Steve will be in residence from 6/20 - 6/23 (Spring 2 and Summer 1 batches).

Paul Fenwick Paul “@pjf” Fenwick is an internationally acclaimed public speaker, developer, and science educator. Paul is well known for presenting on a diverse range of topics including privacy, neuroscience and neuroethics, Klingon programming, open source, depression and mental health, advancements in science, diversity, autonomous agents, and minesweeper automation. Paul was awarded the 2013 O'Reilly Open Source award, and the 2010 White Camel award, both for outstanding contributions to the open source community. As a Freedom Loving Scientist, Paul’s goal is to learn everything he can, do amazing things with that knowledge, and give them away for free. Paul will be in residence from 7/11 - 7/20 Summer 1 and 2 batches).

Frank Wang Frank Wang is a PhD student at MIT focusing on building secure systems. He did his undergraduate at Stanford, focusing on applied cryptography. He runs the MIT security seminar where top academics come and talk about their most recent research. He is also a member of Roughdraft Ventures, which provides small amounts of capital to early stage student startups. He is currently running a summer program for early stage security companies called Cybersecurity Factory. He has interned at the security teams at Google and Facebook as well as consulted for security companies like Qualys. When he is not busy worrying about your security, he enjoys going to art museums and being outdoors. Frank will be in residence from 5/23 - 6/2 (Spring 2 and Summer 1 batches).

Rachel vincent 150

Welcome Lisa and James (and Ginger)!

We’re excited to welcome Lisa Neigut, James Porter, and Ginger Neigut to the RC team!

Lisa and James are joining us as facilitators. They’re both also RC alums: Lisa attended the Summer 2012 batch, and James attended the Summer 2013 batch.

Lisa Neigut
James Porter
Ginger Elizabeth

Lisa was a founding member of the Etsy Android team, where she helped launch 2 apps and a mobile payments reader. Most notably, one of her hack week projects bumped Etsy stock by 30% in a day. After Etsy, Lisa spent 14 months as the Android Engineer at Electric Objects, helping build a home for digital art.

James has worked in the past on everything from fruit fly genetics to online payment systems to storage infrastructure for bioinformatics. He was in the Summer 2013 batch, and outside of computing enjoys cycling and tabletop games of all sorts (he’s already taught a large contingent of Recursers how to play Netrunner!).

Last but not least, Ginger is joining us as Chief Cuddle Officer, and one-on-one advisor. She is our first canine hire, and we look forward to the new perspective she’ll bring to RC.

Last year we made some changes to the way facilitators work at RC. Rather than hire folks to be facilitators for indefinite periods of time, we now hire facilitators for six months. The main reason we decided to do this was that we got feedback from former facilitators that they felt burnt out after a year or so of doing facilitation work. Facilitation involves daily one-on-one pairing sessions, giving workshops, attending events, and being generally available to Recursers who have questions. Though it involves a lot of programming, it can also be socially demanding.

We call these folks fluid facilitators. Six months seems a good amount of time for people to ramp up and be effective facilitators without burning out.

Allie Jones
John J. Workman

Last August we hired John J. Workman (RC 2011) and Allie Jones (RC Winter 2013) as our first fluid facilitators. While their six months of facilitation are over, we wanted to keep working with them, so we hired them as programmers. Allie will be working on jobs and recruiting software, and John will be working on software to help grow our community.

We’re so excited to have Allie, James, John, Lisa, and Ginger on the RC team!

Rachel vincent 150

A new essay from RC Research Fellow Michael Nielsen

RC Research Fellow Michael Nielsen recently published an essay called Toward an exploratory medium for mathematics. The essay is about about developing user interfaces and data models that allow for semi-concrete reasoning – getting the computational and constraint-solving benefits of a computer without losing the flexibility of paper and pencil.

Michael writes:

In discussions of systems of reasoning it is sometimes assumed that the informal, intuitive systems used by humans are things to be “fixed up”, turned into so-called proper, rigorous reasoning. If the purpose of reasoning were merely verifying correctness, then that would be a reasonable point of view. But if the purpose of reasoning is exploration and discovery, then it is wrong. Exploration and discovery require a logic that is different to, and at least as valuable as, conventionally “correct” reasoning…

Alan Kay has asked “what is the carrying capacity for ideas of the computer?” We may also ask the closely related question: “what is the carrying capacity for discovery of the computer?” In this essay we’ve made progress on that question using a simple strategy: develop a prototype medium to represent mathematics in a new way, and carefully investigate what we can learn when we use the prototype to attack a serious mathematical problem…

A powerful medium reifies the deepest ideas we have about a subject: it becomes an active carrier for those ideas. And to the extent it is successful in reifying those ideas, mastering the medium becomes the same as mastering the subject. In this view, designing exploratory media is about designing tools which can transform and extend our ability to think, create, and discover.

You can read the full essay on Michael’s website and learn more about RC Research on our blog.

David albert 150

Code Words Issue Six

The first piece from the sixth issue of Code Words, our quarterly publication about programming, is now online!

As with our fourth and fifth issues, we’re publishing Issue Six piece-by-piece. You can read more about the reasons why in our Issue Four announcement blog post from October. We’ll be publishing the rest of the pieces from the issue throughout the month of March, so make sure to check back regularly!

The first piece is an exploration of the sometimes frightening realities of applying functional programming principles in JavaScript by Sal Becker.

Update on March 10th, 2016: the second piece from Issue Six, Image Processing 101 by Sher Minn Chong, is now live! The remaining five pieces will be published over the next three weeks.

Update on March 16th, 2016: the third piece from Issue Six, Telling stories with data using the grammar of graphics by Liz Sander, is now live! The remaining four pieces will be published over the next two weeks.

Update on March 29th, 2016: the fourth piece from Issue Six, Immutability is not enough by Patrick Dubroy, is now live!

Update on March 31st, 2016: the fifth piece from Issue Six, Promoting reliability in web software companies by Nat Welch, is now live! We unfortunately weren’t able to finish two of the seven articles submitted to Issue Six in time for publication — look out for them in future issues of Code Words!

With seven articles, Issue Six will be the biggest issue of Code Words yet, featuring writing from Sal Becker (RC Fall 2, 2015), Miles Blackwood (RC Fall 2, 2015), Sher Minn Chong (RC Fall 1, 2015), Patrick Dubroy (RC resident), Liz Sander (RC Summer 2, 2015) , Anjana Vakil (RC Fall 2, 2015), and Nat Welch (RC Spring 2, 2015). In addition to all of the writers, we’d like to thank Barak Chamo (RC Fall 1, 2015), Timnit Gebru (RC Summer 2012), Robert Lord (RC Winter 2014), Alan O'Donnell (facilitator emeritus and RC Summer 2011), Oskar Thorén (RC Fall 2012), and Alex Wilson (RC Summer 2013) for all their careful editing and help.

Code Words is written and edited by the Recurse Center community. Like RC itself, we aim to make Code Words accessible and useful to both new and seasoned programmers, and to share the joyful approach to programming and learning that typifies Recursers. Code Words contributors retain the rights to their work, and provide their essays under the terms of the Creative Commons BY-NC-SA 4.0 license.

If you’d like to receive updates about new issues and news about the Recurse Center, sign up for our mailing list.

Rachel vincent 150

Nine reflections on RC

Back in 2013, RC alum Sasha Laundy built Blaggregator, a blog aggregator for the RC community. Many Recursers use Blaggregator to automatically push posts from their blogs to the blogging stream on Zulip, our internal chat system, and lots of great discussions between alumni, residents, and current Recursers have cropped up as a result.

Thanks to those discussions, we’ve noticed certain trends in the things Recursers blog about. Several alumni recently made a page on our wiki that lists all of the “return statements,” or end-of-batch reflection posts, Recursers have written.

We think these posts will be helpful for anyone working on becoming a better programmer, and that they also do a good job explaining what happens at RC. This is not an exhaustive list of all the end-of-batch posts Recursers have written, but it’s a good sample.

RetrospectiveMindy Preston, Winter 2014

Mindy Preston The Recurse Center wasn’t my first rodeo; I have an undergraduate degree in computer science and have worked through some pretty punishing crunch times as a professional maker of software. The thirst for knowledge and accomplishment I felt from my fellow batchlings at RC, and the urgency it fostered in me, was something entirely new to me. I came into the space fighting a lot of negative feelings about the work it was possible to do in the world as someone who makes software. Many (although by no means all) RCers are early in their careers, and it was hugely restorative for me to be around, and share in, their enthusiasm and love for discovery. I wanted to write code again, and I wanted badly for it to be good, not just good enough.

A summary of my time at RCLin Taylor, Fall 2, 2015

Lin Taylor This post is a reflection of the things that I learned [at RC], as well as my highlights and lowlights of the past 3 months. tl;dr: had a great time, learned a lot. If you want to get better at programming and also meet a whole lot of smart, passionate people who will help you do it, RC is the place.

RC Spring 2, 2015 Return StatementNat Welch, Spring 2, 2015

Nat Welch I’m not entirely sure what happened, but I somehow wrote something every day for one hundred consecutive days. I lived at a level of transparency I wish I had been doing for years (and I kind of wish all of humanity could do every day). The place that inspired me to do this was the Recurse Center.

The blog that should have beenMargo Smith, Fall 2, 2014

Margo Smith After 16 years of school and 2 years working, it took this unstructured 3-month program for me to finally learn that I don’t need institutional incentives to keep learning. All I need is a supportive environment and the freedom to work on whatever I want. This means (I hope) that [RC] wasn’t just a 3-month program, but rather a starting point for a lifetime of continued learning.

Reflections on the Recurse CenterJohn Loeber, Fall 2, 2014

John Loeber What’s interesting about having all traditional external obstacles removed is that it exposes the internal ones. While there sometimes are genuine external obstacles to success, I think that internal ones (like a lack of focus or using one’s time poorly) can be more persistent or more stifling. An external obstacle may block you for a few days, weeks, or maybe even years, but the nature of an external obstacle is often clear, as is a path to eventually overcoming it. An internal obstacle may block you for life if undetected, and some of them are very subtle…The Recurse Center was extremely useful in that it facilitated the detection of these internal obstacles.

Advice for new Hacker Schoolers RecursersPablo Torres, Winter 2014

Pablo Torres One advantage of getting to know your fellow batchlings early on is that you get a sense of who to ask what questions to from the beginning. During the first few weeks of my batch, I could always point people to whoever was most likely to help them. “I think I’m gonna write a recommendation system,” they would say, and “Oh! Rad Person is writing their masters thesis on exactly that! You should talk to them!” I would answer. I got that part right.

Recurse Center: The return statementPam Selle, Spring 1, 2015

Pam Selle I went to RC intending for it to stand as my “instead of grad school” experience (at least for now), thinking I would study formal theory. I thought I needed these things to have the knowledge I wanted, but I realized that formal theory will always be there for me, and wandering into project-based learning and working with others on their projects led me to finding the theory I needed, and not learning it for the sake of an ephemeral checkbox.

The Recurse Center and the joy of learningMartin Kleppmann, Fall 1 and 2 2015 resident

Martin Kleppmann After working with a few members of the batch, I realised why the varying levels of experience are not a problem for RC: everyone is a beginner at the thing they are exploring at RC. If you are an experienced software developer, you don’t go to RC in order to keep doing the same things as you did at your last job, using the same languages to build the same kind of application. No, you probably join RC because you want to learn something completely different. Your time at RC is an opportunity to “level up” your craft. If you’re an experienced web developer, how about learning a functional language like Haskell or Idris? If you’re a veteran C++ hacker, maybe you want to learn about formal methods like Coq or TLA+? Even if you’ve been writing software for 20 years, you’re a complete newbie when you move so far out of your comfort zone – so you’re actually not that different from someone who is trying to get their first small piece of Python code to work. You’re a beginner too.

I’ve left the Recurse CenterMary Rose Cook, facilitator emerita

Mary Rose Cook I did the best work of my life at RC. And I had the best time of my life at RC. I’m sad not to be able to program every day with Recursers. I’m sad not to be able to work on making RC the best place in the world to learn to program. And I’m sad to be parting from some dear friends. I’ve learnt most of what I know about programming from Recursers. They helped me get better at code review, get better at explaining things and get better at pairing. They taught me both how and why to dive deep and how and why to be rigorous. They helped me try things that seemed too hard and helped me discover that they were hard but doable.

Rachel vincent 150
View older blog posts