# Recurse Center

In the Summer of 2017, I attended the Recurse Center, a self-directed retreat for programmers in New York City. During my 4.5 months stay, I was encouraged to write daily check-ins and to maintain a blog in order to keep myself on-track with my learning. Below are my blog posts from that time.

• ### Check-In Day 46: Never Graduate Day

August 9, 2017

On this day of Never Graduate, I am literally not graduating from RC. As I said in a previous post, I’ll be staying for another half-batch because I like it so much here.

• ### Check-In Day 45

August 8, 2017

AAAH! This is almost my last day here! Or is it?

I’m happy to announce I’ve extended my batch until Sept 15! RC has been a place where I’ve felt truly safe, valued, stimulated and super productive to boot. I’m really looking forward for 5 more weeks of this :).

Ok, onto the check-in.

• ### Check-In Day 44

August 7, 2017

• ### Check-In Day 43

August 4, 2017

• ### Check-In Day 42

August 2, 2017

• ### What A Great Way To Ask A Technical Question!

August 1, 2017

Browsing around to get an answer about a technical question, I stumbled unto an unusually well-structured StackOverflow question by Martineau which had a corresponding unusually helpful and thorough answer. This made me go if only my questions were this well-posed, I would’ve gotten better quality help, so allow me to share it.

• ### Check-In Day 40

July 31, 2017

• ### Check-In Day 39

July 30, 2017

• ### What the Hell Are Unit Tests For?

July 26, 2017

I was really confused about this, so I talked to Victoria Kirst who teaches Computer Science at Stanford and was a Google engineer in the past. She really elucidated unit tests for me! Here are my takeaways.

Unit tests are to make sure you haven’t broken anything in the program when you change it. In order words, unit tests are there to prevent regression in your code.

• ### Check-In Day 38

July 26, 2017

• ### Checkin-In Day 37

July 25, 2017

• ### Check-In Day 36

July 24, 2017

• ### Check-In Day 34-35

July 23, 2017

I succombed to peer pressure and built a raytracer! In Python!

• ### Check-In Day 34

July 19, 2017

• ### Check-In Day 33

July 18, 2017

Today

(Very social day.)

• Paired with Jinny Cho on a ray tracer.
• Thought about ways to run my Twitter bot including a Raspberry Pi, but decided to try and run it whenever my terminal is open for a slightly more personal touch to the bot.
• Ended up failing at predicting my terminal’s behaviour on simple things like running a simple .sh file that says “cd” (if you’re not sure what this does I highly recommend you try it!)
• Had a very informative discussion with Indranush Gupta on how shells work.
• Intended to pair with Saul Pwanson on setting my own mailbox, but instead learned why it was hard and “expensive” to get the epsilon-more-advanced-than-free-gmail behaviour I wanted.

• ### Check-In Day 32

July 17, 2017

• ### Check-In Day 31

July 12, 2017

• ### Check-In Day 30

July 11, 2017

• ### Check-In Day 29

July 10, 2017

Ouf, I hope I’m not losing track of the days. Day 48 is when this is over and I feel like I’m nearing it :’(.

End of the last week and weekend report

So, I did end up learning about tmux, and really finished this goofycoin thing. I’ll give it for code review once I do a last reading (man, I’m so self-conscious about my code now that I’m on the low confidence part of the Dunning-Kruger effect).

• ### Check-In Day 27

July 6, 2017

Yesterday

• Somehow the goofycoin stuff all came together and I could finally test/write without impunity or external help, so I did that.

• ### Check-In Day 26

July 5, 2017

Wow, I can’t believe we’re now past the halfpoint. I feel like I want to do more, learn more and there just isn’t enough time and energy!

Some things in my professional life outside of RC have been and are still being a real admnistrative drag, but no matter the outcome it’s gonna be ok, which is pretty lucky.

Yesterday

• Finished my blog post on lambda calculus.
• Did two panels are RC and got to meet the new batch! Really nice to have a fresh influx of energy int he space.

• ### What Is Lambda Calculus?

July 4, 2017

Forget the name calculus and maybe even lambda. A lambda calculus is the smallest Turing complete language using only one operation: evaluationAlso known as $\beta$-reduction. , and one object: functions.

The way the lambda and the calculus comes up is the following: we typically name the functions starting with a $\lambda$ (lambda) symbol, and we say it’s ‘‘calculus’’ in the sense of a particular method or system of calculation or reasoningSource: Google. .

So how do we write functions, and what is this way of reasoning?

• ### Check-In 4th of July weekend

July 2, 2017

I’m back! So this has been a very excrutiating and stressful week (read: not fun at all and I wish I was living the RC adventure instead - but this was important enough to take a big break from it). The good news is that I’ve sort of made a private decision about where I’m going next. In the process, I’ve really sorted a lot of stuff about the future. This includes the following knowledge:

• ### Check-In Day 20

June 25, 2017

Thursday and weekend

I received some very good and very big news about long-term career options. It’s one of the toughest decisions I have had to make in my life, and I’ve been really preoccupied with maximizing the amount of information (both introspective information and external information) I have at my disposal to make the best decision for my life.

• ### Check-In Day 18

June 20, 2017

Yesterday (Serendipity day.)

• Started a blog post about making animations for beginners such as myself, then ran into Dan Luu who sat down with me and answered my questions/angst about blogging and a really fun conversation ensued. I feel like a grew a lot as a blogger as a result.
• Went to career panel, which had an awesome diversity of speakers.
• Sat down afterwards with Rishi Ghosh who told me about working as a mathematician in the industry sector, and I found it super enlightening.

• ### Check-In Day 17

June 19, 2017

• ### Check-In Day 16

June 18, 2017

My god this is my 5th week at RC!

• ### Checkin Day 15

June 18, 2017

Belated check-in again. I’ve been reading this paper on homomorphic encryption and dayum is it good!

• ### What Is A Cryptographic Hash?

June 9, 2017

Cryptographic hashes play a fundamental role in the structure of blockchains, which is what Bitcoin is built on.

Essentially, hashes act as digital fingerprints for data. If you have a person and a fingerprint, it is easy to verify that the fingerprint belongs to the person, but a fingerprint alone tells you very little about someone. We will later see that this property is useful for verifying the authenticity of a blockchain.

Let’s explore this more formally in this pre-introductory post to Bitcoin.

June 7, 2017

June 6, 2017

June 2, 2017

May 31, 2017

May 30, 2017

• ### Remap Caps Lock to Backspace in macOS Sierra in 1 Second

May 27, 2017

This is useful for Colemak users.

There’s a direct way to remap keys in Sierra from command line.

To remap caps lock to backspace, copy paste this command line (without the $sign).$ hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x70000002A}]}'

That’s it.

May 24, 2017

May 24, 2017

• ### How To Start Programming Like a Pro: Mindset and Tools

May 23, 2017

My fundamental goal for RC is to learn how to think and work like a programmer in a professional environment.

My programming background has been coding for a few research projects in SageMath, which is basically Python with pure math library functions, and a couple foundational CS courses. I’ve never worked in industry or managed a large code-base.

Today I had the chance to learn about what constitutes a good programming setup from Saul Pwanson, who’s programmed his whole life (that’s over 30 years).

• ### First Day at Recurse Center

May 22, 2017

Blog Update: From May 22nd to August 10th, I will be blogging about my experience at the Recurse Center, a self-directed, community-driven educational retreat for programmers in New York City.

Because of the independent nature of the program, it was highly suggested that participants have a daily check-in process where we blog about what we learned/did during a day to hold ourselves accountable for our learning.

If you’re interested in my experience, or in bite-sized programming insights from a beginner’s perspective, you can follow my check-ins on a separate page of this blogSince there’s a limited amount of quality/time I’m willing to invest in daily check-ins, I decided to publish them on a difference page of my blog as to not disturb access to my longer, peer-reviewed posts. . From time to time, a blog post will show up on this blog if I’m particularly proud of it.

Talk to you there tomorrow!

RC - Hang Lu Su