Pop & Self
Today, after we paired with someone from the Web class to work on our resumes, my partner (Luis) said he enjoyed my blog (thanks!) and that I should blog more about my personal journey with coding—that it'd be something he'd want to see if he was an employer.
I'm gonna try it.
Tonight I have C4Q's headquarters to myself. I enjoy the quiet and time alone.
But you're never really alone when you're coding, writing, drawing, or painting. You're with your tools and your intention. When I have tools in my hand (be they a computer keyboard, a camera, a paintbrush, or a pen) and an intention to create, I feel like my best self could come out at any moment. I get flashes of it sometimes, like a panhandler searching for gold. In my downtime, I imagine finding a huge vein, i.e., being reinvented as The Ultimate Coder (got that ambition, baby, look at my eyes), but I know the reality is more likely to be the collection of many nuggets of varying size along the way, and I appreciate the slow accumulation of knowledge, too. In my heart of hearts, I think I prefer the slower path rather than a radical transformation of myself; that's not a narrative that resonates with me at the moment. I'm actually at a place where I'm quite happy with myself and what I'm accomplishing, but I'm not overly comfortable. It feels great.
Like any craft, code never lets me get too comfortable. There's a directness with coding and engineering that I don't think I'd found during my time as an illustrator. The rigor of computer science demands not just a focus I relish but the kind of self-reflection that I really can only relate to my mindset during intense physical exercise. Often this self-reflection occurs during either the planning stage of coding or during code refactor. Side note, code refactoring is like this magical land I finally got a ticket to and love to visit, because to get the ticket you have to have code that works consistently, and I just got the means for that particular ticket. It's a new, unfamiliar land, though, and I barely know what I'm doing so I still get lost a lot, but I'm surrounded by smarter peers and teachers who have been here before and know the ropes.
Coding has taught me that I love a rut and that ruts hold you back. For example, as I do new data structure and algorithm questions daily I find myself falling back on things I feel I completely understand (like making tons of unnecessary variables and good ol' for-loops) when I get anxious about the problem's difficulty. Instead, I should be meeting the problem where it's at with all the knowledge I have and planning to code with intention. My tutor has called me out on this multiple times. I did it on this last midterm. This tendency has kept me from using and therefore learning a lot of the ins and outs of next-level Swift fundamentals, never mind higher-order functions. And reflexively diving into known ruts keeps me from doing what I love with code, which is exploring practical possibilities.
Coding has also taught me a lot about what I need and don't need to feel and be successful. I need to hear encouraging voices both from others and myself when I'm struggling. I don't need to be perfect or to be a class star. I need to do things daily that force me out of my comfort zone. I don't need to neglect my need for consistent sleep or my friendships. I need to balance refining my strong skills and building up my weaker skills. I don't need to feel like a fraud. I need to ask for help more than feels right to my superego. I don't need to be "a natural" (it's ok and expected that I continue to work hard at this). I've needed to have a small cry at office hours and during class (though I removed myself from the room so I wouldn't interrupt others' learning) when I was frustrated with or overwhelmed by a situation. I don't need to adopt an, for me, unnatural toughness in order to consider myself a Real Programmer. I need to respect my craft by maintaining a daily practice to which I bring my whole self. I don't need to pretend I was born for this. What matters is that every day I choose to get a little better than the day before.
Right now, I'm watching and waiting (and practicing and working) for my coding skills to match my plans for each product I'm making: I want to make a game that helps people remember their friends' and contacts' pronouns. I want to build an app to help young adults aging out of foster care. I want to create beautiful apps from museum APIs. I want something in the app store. I want to exceed a client's expectations with my work. And I want to give back to the open source and iOS communities. I have a flexible plan in place to reach these goals, one at a time.
I understand that sometimes failure has to count as done for the day. I also believe that while inspiration can come from anywhere, perspiration and consistently applying yourself to the task at hand is the shortest route to discovering it.