I got my first crack at helping a couple Phase 1 boots today. After a fun and eclectic open mic (Music! Limericks! Stories! Lying on the spot!), my cohort stuck around to help any Mantises who chose to sacrifice valuable coding time for a chance to jam out. Ok, we helped anyone who asked, but a lot of Mantises showed up too. We didn’t have all the answers, but we were able to offer a few hints here, a couple leading questions there, and some vague words of encouragement just about everywhere else. Three weeks ago today, I pushed myself way too hard and lost a lot of sleep, sanity, and momentum. It was great to see so many algorithm solvers working almost as late as I had that night without getting nearly as exhausted.
The difference is that they chose to ask for help.
I sat down with one guy and we tried to figure out how a particular recursive method was working under the hood. In the process, I learned that recursion is still nearly as mysterious to me as it was a month ago. I also learned that it’s no less fun to get devilishly stuck on an algorithm, trying a million solutions and attacking the logic a million different ways.
Wait a second. Stuck? Let’s rethink this.
I remember telling this new boot what I had come to learn over a few weeks of intense programming: You’re probably not stuck yet if you can still think of more things to try. If one loop is failing, you can use another. If your if statement breaks, turning the syntax inside out or changing the order of statements might do the trick. If recursion is causing headaches, call self somewhere else in the method or handle your argument differently.
In my Phase 2 world, we spent today building CRUD apps that let us Create, Read, Update and Delete data. Information is constantly getting passed back and forth between viewable web pages and behind-the-scenes database tables. A controller file (sometimes more than one) does the passing. It’s easy to get close to stuck while you work out the routes the information needs to take; variables are changing, data is being created, and there are two languages (Ruby and HTML, connected via something called Sinatra) to tangle with. And each has its own syntax and naming conventions. It can get confusing quickly.
But today felt great, even in the midst of all the confusion, because my pair (ok, trio) only got really stuck once, and not for very long. All the other almost-stuck struggles were resolved by reading through the code, describing what we were expecting, isolating where the expectation was getting lost, and trying different things in that zone until the path became clear. As long as there were more tryable things, our attitude was positive, and our results ended up following suit.
I feel a programming parallel coming on.
How many people in the real world feel stuck in their lives? Ten percent? Twenty? Sixty? That’s an interesting question on its own, but the follow up is the real killer: How does one become stuck in one’s life, and what can be done to get unstuck?
You know where I’m going with this. I think people get it into their heads that there’s nothing else in life to try, and then they get frustrated and scared and sad. I’ve been there. It sucks. But it’s curable.
Try something else. A new hobby, a new restaurant, a new route home. Set up a couple new keyboard shortcuts. Learn a few words in a language you don’t know. Switch from coffee to tea. Move your desktop somewhere else. Little stuff can unstick you if you let it. It’s rarely the fiddling around that makes the big things in life shift. It’s the sustained awareness, the refusal to shut down while you’re fiddling, that keeps you open to the really life-changing moments, the AHA!s that can’t happen if you’ve resigned yourself to The Way Things Are.
Dev Bootcamp is a place where it’s safe to keep trying stuff, and not just with code. And what ends up getting unstuck is usually a surprise. Tonight’s open mic was a blast all by itself, but it also helped me realize that I can code and be a musician at the same time, back burners be damned. Diving into a new CRUD creation on my own time is more than good coding practice; the incremental improvements I make are a constant reminder that I can get good at ANYTHING with enough practice. And helping others learn unsticks my need to press onward at all costs. By doubling back to assist someone else, I revisit and reinforce what I already know. As a result, I move toward seeing empathetic guidance as more than a nice thing to do once in a while; it’s a necessary habit in a balanced life full of learning. And each time I help out and grow stronger, I weave that habit more deeply into who I am. How many times in the last ten years have I felt impossibly stuck, not realizing I could have broken free if I had just reached out to someone? Maybe that question is the real killer.
My point is, no matter who you are, you’re probably not as stuck as you think. That “I’m all out of moves” assumption can sneak up on you, though. So many people at DBC believe wholeheartedly that there’s a strong link between musical ability and coding prowess. We’re all here to code, and we were chosen because someone thought we had it in us to become world-class beginners at this. And yet…so many people at DBC believe they’re “just not musical” people.
Hey you! Yes, you. The person in the CODING IS THE NEW LITERACY shirt with all those mistaken preconceptions about your musical skill. Was your first line of code elegant and precise, or did you suck at it at first? Mm hmm. So go suck at music for a little bit if you envy musicians so much. If you’ve read about Fixed vs. Growth Mindset, and you have, you know that innate musical talent has the smallest part in deciding the face-melting-ness of your chops five years from now. Just put in some effort and you can make it happen eventually. Be patient with yourself and quit acting like music is the one exception to the rule you’ve been living your life by in order to get this far.
I’ll let you practice on my guitar. I’ll even show you a few chords if you ask nice. If you can scratch your face with two fingers, you already know E minor.
We’re not here to be good at code. We’re here to get better at code. That means starting where we are and improving from there. So think beyond programming and take a look at your sticking point, that thing in your life that’s been hanging over your head, your albatross, your Rosebud, that last, craziest thing on your bucket list.
Is it really a sticking point? Are you really stuck yet? Or have you just been on the edge of trying something new?
Take the plunge. The water’s amazing, and you can always learn to swim when you get down here.