Dev Bootcamp Rap Recap: Week 7

You’ll hear a lot more about Phase 3 in the coming weeks. This one’s more of a retrospective. I feel like I’ve come so far so fast, and I’m eternally grateful for the lessons I’ve learned at DBC. Check out the rap recap below, and read along with the lyrics below that. Have a great week!

The apprentice sat down next to the master and asked her how to use new tools to follow his passion.
She looked at him and smiled and took his hand like a child, and guided him to a table with blank canvas.
He sat scratching his head, cleared his throat and he said, “I wanna do bigger things! This really ain’t much.”
“You might be right,” she replied, “but way before you define a new art, first you gotta master a paintbrush.”

That’s how it felt the day I started out,
I thought I’d hold the whole web in my hands and stand tall and proud,
I sorta scoffed at the process people were talking ’bout,
and when I looked at the lessons I had a lot of doubts…
At first glance it all seemed esoteric and abstract –
I wondered if they’d ever bring us past that,
but as I moved from algorithms to a class act
I started craving the next challenge out the grab bag.
And as I flash back, marking my time here, it’s quite clear:
the real challenge was beating my fear!
All my ignorance masquerading as arrogance
is so apparent when I compare it to what I idealize in the present.
My mind is a weapon with double edge; if I never apply inner pressure then I’m only gonna hurt myself. 
I learned why help’s the greatest word I can speak to strive for the best of my potential
and I bet that I’m stronger than ever,
better for for the wear, aware of my heart and my head
I’m honestly at peace with who I’ve become,
and where I’m trying to go, cause I’m in the zone and remarkably stretching. 

I always thought that I could be like this.
I’m not perfect but I’m working like a fiend and I can see my gifts:
I learn best when I’m thinking with hands on,
I’m hoping I can keep with the plan to tinker with craft and stand strong.

And someday I’ll get paid to code
but it’s something money cannot buy that makes me go, 
I’m just a student who’s achieving in leaps,
loving the art of making beautiful and meaningful things.
I know the sky is the limit,
cause I write lines a little different than I used to
as I improve through the time I’ve been given.
Not just in Chicago, I’ll never stop coding cause I’m walking a long road,
here I go!


Dev Bootcamp Rap Recap: Week 6

I did it! I got through Phase 2 in one go, and I was so happy and proud of the effort I put in. Then Phase 3 hit, and the pace didn’t change. I feel like I’m hitting my stride, gaining more stamina when it comes to long coding sessions and grinding through the work in spite of feeling stuck on new problems. In the flurry of activity, I lost my hold on my blogging routine, but hopefully I’ll rediscover my balance this week. In the meantime, enjoy this rap recap. It’s a week late, and I’m trying to explain why in the lyrics. Read along below the video.

I know it’s a little late to ship this,
I know that I slipped out of existence,
cause I was turning my focus to JavaScript,
working and hoping that I could commit enough to live 6th week only one time,
and speed through the crunch time,
my social presence went from a feast to a lunch line.
I never guessed that I’d lose the heat from the sunshine; 
I was hidden and living at the peak of a CRUD grind. 

I kept reaching for a punchline only to grab lines of code from my troubled mind,
and catching up was the name of the game
my frantic pace was insane, I couldn’t even try to bust rhymes.
My priority shift was quite enormous: I quit from nightly blogging and missed shots to talk to my kid.
I had to sacrifice a lot for my wish to reach the Phase three spot but I did,
by dropping off of the grid.

I guess I did what I had to, banging on the door of potential until I passed through.
I’m hard-headed but finally understand dudes saying doing more than just coding can be a bad move.

And that’s true but I honestly think it’s worth it to try,
that’s why my rapping is returning to life,
I might not do it perfect – I’m uncertain and shy,
I might get down on myself and feel nervous at times, but that’s all of us!
Any programmer can lose confidence,
breaking links can make you think you’re an impostor but,
if you can weather the lows you can get back in the flow; 
I happen to know that it feels like an awesome rush.
So try not to play it safe –
test limits and get driven to win it working crazy late.
And let the struggle be your saving grace,
cause this emotional roller coaster is crazy but it makes you great.

Dev Bootcamp Rap Recap: Week 1

Let’s try something different on the weekends, yes?


Listen up.

Annotated lyrics below:

I’ve only been here for a week
But I’m already feeling like it’s gonna be the year of the geek
My peers in this effort are clever and clearly unique
Climbing this mountain and a coding career’s what we seek
And while we’re nearing the peak, we have Sherpas
who pack for us and transform us from bad learners
into stack warriors fast forwarding our grasp on how the code works. 
It don’t hurt to ask for it if you need guidance,
cause the speed frightens the bravest of souls
searching for knowledge they can aim to control. 
Working with scholars trying to daily expose your vast ignorance
leaves a bitter taste in your mouth like black licorice;
I won’t candy coat it, it’s hard work for most folks,
but getting through it together is how you grow close.
This OO and TDD is no joke at DBC…
who needs degrees if your code’s dope?

Time to put an end to the foolishness
I got foo-bars and drop gems like a Rubyist.
The loop exists until I’m greater than or equal to great
at believing mistakes are the building blocks of usefulness.
Cause perfectionism’s a recipe for hurting
but still, some people do it to themselves like recursion…
this is programming examined by a wordsmith
my stack’s overflowing with verses. 
You ask if it’s worth it, 
like, “should I really have the time to blog?”
maybe you heard it’s long nights involved and that’s true. 
But if I’m never signing off I’ll burn out like a dying log
and that’s realer than a float or an integer
I’m trying to state the obvious: 
you gotta save time for yourself like a modulus, 
cause if it’s nothing left over you’ll stress over the smallest little problems
and not arrive at accomplishment.
That’s why I gotta spit sometimes
I’ve only got one mind
adjusting to the hustle of crunch time.
I bust rhymes and return to the screen craft
with a passion for tapping keys, stabbing at tab as I punch lines…
So what’s prime? How do you test for it?
Describe the type of data structure that’s best for it.
I’m going in like a nested array
debugging out till the end of the day.
– thIIIrd person

Back to the keyboard tomorrow. This was fun. Let’s do it next week.

If you can play Katamari Damacy, you can learn to write code.

Katamari Damacy is a game where you’re the son of a narcissistic king who makes you clean up after all his messes. You do this by running around a 3-dimensional field of clutter and pushing a sticky ball that grows as you roll up thumbtacks and dominos and cats and people and trees and bridges and eventually entire landmasses.

It’s kind of nuts. It’s also a lot of fun.

It’s also hard to explain to someone who hasn’t seen the gameplay. So here’s some gameplay.

Super Mario RPG and Dark Souls make it a close race, but Katamari Damacy is probably my favorite video game. It’s one of those “simple to learn, tricky to master, addictive as all hell” type games. It’s bright and colorful and kid/grandma friendly. The soundtrack is bananas. And there’s this weird indescribable feeling of power that flows through you when you roll your newly giant ball back to a previously visited area and see how far you’ve come.

Learning how to program is exactly like this. A week and a half ago, I was thrilled about using the most basic Ruby functions, a puts putz on a print stint. I’m still a noob, but making strings of text appear on the screen is beyond child\’s play now. (I mean, come on, I even know what that backslash is used for!) I’ve moved on to more esoteric concepts, and my thinking has evolved. Looking at more than 50 lines of code no longer scares me, and I have enough of a baseline to think of new concepts in terms of concepts I’ve already learned, instead of resorting to bad analogies and mnemonic devices to hammer lessons into my brain.

And maybe Katamari Damacy is like life in general, and maybe programming is like life too, and maybe this is all just one big transitive property post that means nothing. But maybe you like games (like I do) and think you’ll never be the type of person who could get into programming (like I did), and maybe you’ll read this and be inspired to stretch your limits.

Maybe, maybe not. Either way, I get to make a list now, and there’s nothing you can do about it.

Here’s why Katamari Damacy is just like coding.

  • You have to do the little stuff over and over before you can move on to the bigger stuff. In the game, picking up one battery doesn’t give you carte blanche to start grabbing mouses all willy nilly. No, you need to get a couple dozen batteries before you’re big enough. It took me a few days of messing around with booleans before I felt like I grasped them well enough to use them freely and predict what they would do. Understanding happened first, comfort happened later. Mastery hasn’t happened yet.
  • Sometimes growth is incremental, sometimes it comes in bursts. In the video above, there are brief moments where the whole screen goes a bit fuzzy  and a glissando plays; those are the moments when you’ve “leveled” in size to the next milestone. Fifty centimeters, one meter, twelve meters, a hundred…you hear the sound and see the blur and you know you’ve grown. This can happen in programming, too. Once you grasp how an if/else statement responds to a language’s top-to-bottom processing order (aha, I need to set the most specific condition FIRST!), something shifts inside you and you’ve reached a new depth. But you’re still growing even when there’s no chime to remind you how awesome you are. In the game, and in programming, growth makes it possible to take on bigger and bigger challenges, even between the epiphanies. The growth is always happening, especially when you’re not consciously aware of it.
  • Sometimes hanging back helps you blast forward. The person playing in the video didn’t need to spend so much time circling around that tiny first neighborhood. They were big enough to ramp up to the larger city within the first minute or so, but they stuck around and grabbed everything they could. Then, when they moved on, they were able to spend much less time picking and choosing which objects were small enough for them to handle. Sometimes I need to slow my learning process until it feels like I’ve dawdled on one topic for too long, but the payoff is usually a quicker and smoother leap to the next idea once I’m done.
  • Sometimes you need to just press on and scale the wall. Ok, so maybe that last point isn’t always true. In the game, if you encounter a wall that is less than double your height, you can scale it like Spidey. All you have to do is press on into it after it’s stopped you, and trust that you’ll keep rolling. When I’m learning things in order, I frequently reach this moment of truth: “Oops, this can;t be right, I feel like an idiot. I mean, I got the last thing, but this seems miles harder. How am I supposed to tackle it?” And the answer, invariably, is to press on into the problem and trust that I’ll keep rolling. It’s almost like coding is a game that rewards the people who can see past a moment of zero motion and understand that progress is still being made.
  • Stuff will knock you off course. Until you’re big enough to snatch up the islands on which Katamari Damacy’s world is built, there will always be something on the map that is as big as you or bigger. And moving. And in your way. That’s part of the challenge that makes the game fun. In my new life as a programmer-in-training, time and effort are the ingredients of my stickyball. And there are always bigger things in my life that take up time or expend effort. By the end of the day, it’s usually a struggle to get into a lesson and make myself a stronger programmer. But I’ll only win the game if I drive through the challenge and commit my time to focused learning. Every day. No matter what.
  • The controls feel weird at first, but you get used to them. You play Katamari Damacy by working two thumbsticks at once, pushing them in the same direction to roll, opposite directions to turn, etc. It feels like controlling a tank, and there’s definitely a learning curve. But if you stick with it – and you’ll want to, because it’s all so colorful and fun in there – you’ll get the hang of the control scheme and gradually become agile in the game world. The gamer in the video is pretty good, adjusting the camera and making quick adjustments between smooth turns. That’s not overnight expertise. When you first crack into Ruby, the precision of the language is sort of baffling, from syntax and indentation conventions, to “=” vs. “==”, to that whole “computer does only and exactly what you tell it” deal…it’s like an alien world. But if you stick with it – and you’ll want to, because it’s all so limitless and exciting in there – you’ll get the hang of the language basics and gradually become more capable.
  • Your superego will rarely think you’re good enough. Poor Prince. Every time he rolls up a ball and presents it to the King of the Cosmos, he’s met with scorn or indifference. Well, almost every time. On occasion, the player knocks a level out of the park and wows his in-game dad in a moment that rivals the ending of Field of Dreams for its ability to produce hot man-tears in this blogger. But those are the exceptions that prove the rule: The King wants RESULTS, dangit, and he’s not easy to please. My own brain and its judgments are like a little King I’ll have to live with if I want to code well. If I can’t recognize that the inner voice screaming “NOT FAST ENOUGH” as I type lines on the screen is just a flamboyantly petty narcissist in Shakespeare pants*, I’ll start listening to my own doubts. And then I’m in trouble.
  • There is no way to beat the game. Sure, there are a finite number of levels, and a credit roll, and a maximum number of unlockables to unlock. But there are also time trials, and max size challenges, and friends to play against. And sequels, too! I don’t think there will ever be a point when I’ve “finished” learning how to program in any given language. Ever. There are too many frontiers to explore! Not to mention all the other languages out there, each equally deep and nuanced. And SQLs, too!

So, if you think you can’t code, you should head over to www.codecademy.com and click on one of the languages to learn. You’ll be surprised at how easy and accessible the basics are. It doesn’t hurt to try.

But if coding really isn’t for you, you should at least sniff around on Craigslist for an old PS2 and grab a Katamari game for it. The game’s that good. There are also Xbox 360 and PS3 variations. And one for iPad.

I own most of them. If you learned on thing today, it’s that I care about Katamari Damacy way too much.

Til next time. I gotta go figure out how to write Procs. They’re like blocks, but you can save them. Does that sound like Sanskrit to you? Two weeks ago, we would have been in the same boat.

Two weeks from now, you could be building a whole new skillset. Think about it.



*That’s just my superego, though. Your mileage may vary.