Advice for Recursers

May 24, 2016

Now's the part where I give advice for new Recursers. A lot of it echoes the advice you've likely already heard, but that's okay. Sometimes you hear things more often because they carry some truth in them, and hearing them even more can help them stick (not always on either counts). Some of this is straight out of the manual. It's all just my opinions, though, and is in no way meant to disparage folks who did other things, even things that directly contradict this advice. Everyone does it differently, YMMV, we are all different, like a snowflake. or a little baby.

  • Don't spend your time on books or MOOCS or courses that you could do at other times.

This is just my opinion, but those resources will be there before and after your batch; your cohort will not be there (at least not there in the physical space sense, most likely). If you really feel strongly about something, definitely do it! Or if you feel that a reading group or structured work with other people could greatly benefit you, then do that! But I would tell you that I think that probably it's not the best use of your batch time to hole up in a room with a textbook or do a series of tutorials. Exceptions being, like I said: book/study clubs, or groups working on the same types of things together.

  • Pair, pair, pair, pair, pair, pair, pair.

Everyone says this. Everyone says they wish they'd paired more. Pair often, on small things, for small amounts of time, or big things, for long times, if you're really into it. Don't be afraid to pair on a language you don't know well or on a problem space you're unfamiliar with. Your cohort is and will long remain an amazing resource, use it! Also, know when to stop! When you agree to pair on something, you might realize quickly after you've begun that you're not all that interested in it after all. That's ok too! And if you legit don't feel like pairing at all, that is also alright! That might sound contradictory, maybe it is contradictory, but ¯\_(ツ)_/¯. Just be open to pairing on things you may not have thought about working on before, is all I'm saying!

  • Regardless of what you're working on, start where you're at.

There were people in my batch implementing programming languages. There were other people (like me!) who barely knew anything at all. Start where you're at, and if you don't know where you're at, ask someone to help you figure it out. I think this is one of the most valuable things the facilitators and more experienced Recursers can do in a batch, actually, just to give more context and direction.

Recently, I've been wanting to learn math, and specifically statistics, which I think would be helpful to understand at least the rudiments of. I asked my friend Yuri (who is a statistician by training) for a book recommendation. He gave me this. I decided that I was going to read it until I didn't understand something and then learn that thing before moving on.

I think of this as "recursive autodidacticism" and it's a good way to figure out how to get where you want to go!

I opened the stats book, the first sentence in the first page of the introduction said "A thorough understanding of calculus is required to grasp this material". So, I shut the book, set it aside, and bought a calculus book.

I opened the calculus book and the first sentence said "You should understand Algebra, Trigonometry, and Geometry before tackling calculus". So... I shut that book and put it aside, too, and bought an Algebra book.

I opened the Algebra book and the first sentence of that book said "This is the number line." I thought, ok that I can definitely do.

I haven't taken a math class since high school, I was a music and literature major in undergrad. I'm not excited about my lack of math understanding, but I'm not ashamed of it, either. If I tried to learn stats in a vacuum I would fail; being honest with myself about what I really know and where I need to start is important. I'm a 33 year old professional programmer, and I'm currently learning college level algebra. Start where you're at.

This is just a straight up reblog, because I love this post. thanks Zach, and write more.

I do struggle with this; I'm an all or nothing kind of fellow. "Either," I think "work all the time until the thing is done, or" (I cluck disdainfully at myself) "don't do it at all." Sometimes, this attitude is a super power... when I really get into something, I can maintain focus for weeks on end. But other times, it is not at all a superpower. Holding myself to a standard like that is not only unrealistic, it also has the potential to be unhealthy. Figuring out the difference between superpower hard headedness and kryptonite hard headedness is a process; I'd like to think I'm getting better at it.

Point being, improvement is by definition incremental. Don't fight that! Find the time to rejoice in small victories, sometimes tiny victories. Maybe you'll have a day where the only thing you learn is a flag on a command line tool like ls -l or something. That may not seem like a big deal- but that's now a thing you know that you'll likely never need to look up again, and that is a big deal! you learned a thing! Go have a beer/chocalate bar/apple/bag of kale chips or something!

  • Keep a devlog.

This could be a blog! If you keep a blog- pick a thing and just use it. It can be a tumblr, or a blogspot, or a static site generator like jekyll or middleman or pelican or whatever... it doesn't matter, and you can always port it later. Also, you don't have to make it a whole big public blog thing! But, at least keep a single text file in your home directory and jot down notes about what you did, what you learned, what you thought about... or make it a habit to write verbose git commit messages . Trust me, that perspective will be hellah interesting in a few years, even if it is just recorded in procedural sentence fragments!

  • Try to enjoy the time

Try to stay in the moment here folks, it's only a few weeks, after all. If you're there, you probably like to program, right? That is literally your only responsibility during your batch- program whatever you want! It's a unique period, try not to overthink it.

I have other pieces of advice rattling around up there, but these are the main highlights. I hope somebody finds them helpful.