My grandfather took my sister and I to the library every week as kids. I remember being in awe of the large books older folks would pick up. I remember telling myself that one day I too would be able to read such long books.
I have wanted to be part of a Recurse Center batch ever since I found out the center exists. The thought of spending extended time learning about what I want brings me joy. Getting myself to a place where I feel comfortable embarking in self-guided learning for hard things is also a huge motivation for me.
Working at something you want to get better at and building mastery is a Dialectical Behavioral Therapy skill used to increased self-confidence. Through years of DBT, I have learned that when you want to achieve something, you need clear, actionable steps to get there otherwise you're setting yourself up for failure. I know I want to be able to learn any difficult topic so I must practice learning a difficult topic, reflecting on what worked and didn't work, and continue.
I looked to what the Recurse Center looks for in applicants for a good model of possible habits to strive towards. I created the Daily Affirmations graphic below and set it as my screen background.
To be clear, I don't think you need all of these to succeed. For example, I don't think you need to enjoy programming to get better at it however these aspirations align with my interests. I do enjoy programming! Doing activities that bring us happiness often increases well-being. What can I do to feed this interest? I find this reminder grounding whenever I am feeling frustrated by mundane work or feeling external pressure that doesn't align with my values.
Also, note that one of my values is being intellectually honest. I don't pretend to know something really well if I don't! To me, this isn't about moral superiority but rather the opportunities that open up when you are honest with yourself. When you fill in what you know about a topic you can see where the gaps are in your understanding and seek help. One of my fears when I started in this field was stagnation. I have learned over time that it is rare for things to take you by surprise when you are honest with yourself and practice self-awareness. Being honest with yourself also means being kind to yourself and that is so much easier to do when you know that you don't understand pointers because you are still fuzzy on references, for example, instead of rejecting C altogether because you've been struggling for a while.
At first, I knew I wanted to learn something thoroughly but I wasn't sure what exactly so I wrote down a list of interests in a Google doc. This is that list:
What are my interests?
- Implementation of different database types i.e NoSQL, SQL, graph
- Seeing how changes to implementation impact performance
- Database performance
- Optimization of code at the lowest level i.e. assembly
- How networks work
- Physics of wi-fi
- How engines work e.g. storage engine, what does engine mean?
- How does JVM work? What is Java bytecode? What does that mean?
- Regex and state machines
- Designing distributed systems
- Assembler commands to machine commands, CPU understands binary
Designing Data Intensive Applications
- Database algorithms
Database Reliability Engineering
I know I need to reenforce my learning so I will be blogging about what I learn along the way. I am also gathering all my notes in the same place so I can clearly see where the gaps in my knowledge are. I decided to go with Scrivener, a word processor used for putting together literary works. I like it because it allows you to (re-)organize your thoughts into sections and subsections easily and integrates with BibTex for citation management.
I add subtopics as I go. I still looking for a good language implementation book. I am thinking about getting "the dragon book". If you have any recommendations, please let me know!
Making a plan for myself and starting with the basics like creating motivational content for myself has been helpful. I found something to aspire to (joining a Recurse Center batch) that already had a basic guide on the habits I need to get to my goal. I chose topics to focus on and created a structure that lets me see what I'm missing in order to fully understand a concept.
Importantly, I notice that I am making connections between the material I learn for fun and the material I learn for work without the imposter syndrome anxiety. I see that I am growing as a person and developing interests that are completely my own and not fueled by a paycheck which has increased my feelings of self-efficacy.
I'd love to hear about your learning plans and reflections! I have seen how some of you on this platform use blogging to keep yourselves accountable in your learning and it's super motivating! Keep up the good work, folks :)