Thursday, March 25, 2021

What would you do for free?

A common topic of discussion among my friends and coworkers these days have been, "How much money do I need to retire and not work for the rest of my life?"

At first the idea of not having to work for the rest of my life does seem incredibly attractive. I can do anything I want with my time! I no longer have to attend meetings! I can read all the books I've ever wanted to read! I can just play with my dog all day!

But if I really think about it, I think I'm actually the type of person who enjoys having tasks and producing things (or maybe what some may call a workaholic). 

During my last two job switches, the plan was to take an extended vacation and not worry about finding the next gig until a few months later. Both times, I've gotten so antsy that my time off ended up being 2 weeks instead of 3 months.

So the question for me comes down to: "What would I do for free?" If I didn't have to worry about money to live comfortably, what would I do with my time to feel both happy and productive? 

Monday, August 3, 2020

Moving

Last week was dedicated to moving to a new apartment. Things I've learned:

1. Nobody ever says 'I wish I bought more books!' during a move.
2. Dollies are very useful for self-moves. This adjustable one was the MVP last week.
3. Shower curtain sizes aren't universal. I've never had to buy a shower curtain before, but this new apartment needed it. I thought all shower curtains were made equal. Turns out that's not the case and I now have shower curtains that are too short or too narrow for my bathroom.
4. King-sized mattresses are very heavy. Two regular people who have no moving experiences could theoretically move it themselves, but they would not have a good time. Movers highly recommended.
5. Junk really accumulates once you've been at a place for a while. It turns out I really don't need much at all to function. 

Tuesday, July 21, 2020

Spaced Repetition

Stumbled upon this neat comic about spaced repetition today:
https://ncase.me/remember/

It was interesting to read about the science behind how you remember something 'forever' and how to build a process around it.


Monday, July 20, 2020

Setting up a minimal server with Firebase

Took some time today to learn more about Firebase and how to set up a server with it.

Overall, I think it only took about 30 minutes to get the first 'post' and 'get' requests working in my Android app! Pretty cool.

Committed the project here with a readme detailing the steps I took to get things set up.

Sunday, July 19, 2020

Studying Programming Problems

One of the things I've started doing more during these shelter-in-place times is Leetcode like programming problems.

I mostly started because I'm teaching a few classes this summer for CodePath's Interview Prep class, and I wanted to brush up.

But also, we're entering the 5th month of shelter-in-place and I'm honestly running out of things to keep myself from being bored. At first I started to learn and play chess. But I was so bad at it, I basically ended up rage quitting every game. That didn't seem healthy, so I decided to work on programming problems instead. It gives me the same satisfaction of feeling like I'm clever when I solve a problem, without all the anger I get from losing a chess match!

I've mostly been working through problems on three platforms:
Leetcode
educative.io
algoexpert.io

Leetcode is nice because it literally has endless questions. They also have 'monthly challenges' where they give you a challenge problem every day. Leetcode has also been around for a long time, so for every question I can go to the 'Discussion' page and check out how other people solved a problem. The downside is that I feel overwhelmed about all the questions and it's hard to chose what question to tackle next. The platform itself also doesn't offer much outside of just giving you different questions.

educative.io is not free ($160 for one year access to all their courses), but has nicely structured courses with detailed explanations for every problem on their platform. I like it because it has different tracks you can take like 'Dynamic Programming Patterns' or 'Recursion'. The downside for me is that I felt like some of the explanations for how to solve a problem aren't very easy to understand. Sometimes I would read an explanation and be more confused.

algoexpert.io is also not free ($85 for one year access), but is my favorite out of the three platforms. There's "only" 100 questions on the platform, tagged by both difficulty and topic (array, binary tree, graph, etc), but I feel like the range of questions picked cover basically all the common patterns seen in these type of problems. The UI is really nice to use, and every problem has an amazing video explanation. The video explanations are probably the best part of the platform, because every explanation has been super easy to understand and absorb.

I've been starting and ending each day by trying to solve different problems. It's nice because I start the day feeling like I'm already productive, and I end the day with something that feels more satisfying than scrolling through my endless Instagram feed. TBD on how long I can keep this going before I get bored of this as well.

Another factor that got me into this routine was seeing this 18-year-old competitive programmer. This guy literally finishes solving a problem before I even have a chance to finish reading the actual problem. It's amazing and watching his videos is exhilarating in a way I didn't even know was possible. (Fun fact, after some internet stalking, I realized we had the same high school math teacher!)

Thursday, July 16, 2020

Hello World!

Obligatory 'Hello World!' post to kick-off this blog.

But Why?
I've learned that teaching something is the fastest path towards mastery on the subject. So I'm hoping that whenever I learn something new, I can use this blog as a place to document and reiterate what I've learned.