Photo credit: Last.fm Photo
A few years ago I saw Henry Rollins speak at a conference. Actually, speak isn’t the right word.
He screamed. He screeched and threw punches and stormed across the stage. He stood far from me, but it felt like he was bellowing into my face. One thing he yelled still blares into my mind sometimes:
“What do you want to do, but haven’t? Get mad. Get mad about what you haven’t done. THEN GO DO IT!”
Use your rage as fuel, he said. Think of what you want to accomplish and think of how pissed off you are that you haven’t done it yet. Build that rage and then use it to push you to act.
Anger becomes fuel for getting shit done.
Usually, we think of getting mad as an awful thing that we should try to avoid feeling. But cultivating your anger and purposefully using it to act is helpful, maybe even something you should practice consistently. Why is it that when we’re sad we feel like lying in bed, but when we’re angry, we feel like going on a long run? Anger can spur action, and it can help you get to where you want to go.
Get mad about what you haven’t done and go do it.
It has little to do with coding itself.
It’s hard to teach yourself how to code because you’ve been told your whole life that you are incapable of teaching yourself anything.
Since you were a kid, you were told that you can’t effectively learn on your own.
You were told that you can only learn if you go to school. If you get X certification, get X degree, take X class, and do it by the age of X. You gotta get an education. And if you don’t? If you — heaven forbid — drop out?
Then you’ll be uneducated and never know anything. So they say.
So you stayed in school. But now you’re out and you’re trying to teach yourself how to code and well–it’s so dang hard.
Of course it is. Because before this, you rarely spent time actively learning how to teach yourself things. And why would you?
You just spent the last 20–25 years being told that the only way to truly learn is to complete a specific program, with an exact curriculum, led by certified teachers. Sure, you can learn a little outside of that, but everyone knows there’s only one legit way to learn anything. And that’s school, fool.
Since you were a kid, you were told that if you followed a certain roadmap, you’d have it made. Go to school and get into X college with X major and you’ll be successful at X for life. Where to next? Just follow the roadmap.
But then you see people, outside of school, teaching themselves this hard skill of coding. Okay, you think. So —
Where’s the roadmap for teaching yourself how to code?
It doesn’t exist yet. It is yours to create.
When you teach yourself, you are exploring yourself, how you learn. You can’t explore if you are following someone else’s roadmap. It will never work for you as well as it worked for them, because it is theirs, built for them by them.
When you teach yourself, you create your own roadmap.
But after years of college, you’re so used to following the curriculum, the syllabus, the semester, that the idea of forging your own path is terrifying. Where to next? You have to create your own roadmap now, for the first time in years. And that’s why it is so hard to teach yourself stuff — like how to code.
When I started to learn on my own again, it was uncertain and scary. When I left the roadmap of college and went off into unexplored territory, there were so many directions to go in. Where to next? For the first time in a long time, I had to answer that question for myself.
When you ask, ‘How do I learn to code and why is it so hard?’ you’re really asking this: ‘How do I truly teach myself something and why is it so hard to do?’
It’s hard to teach yourself anything because you’ve been told for as long as you can remember that you just can’t do it.
Despite this, you can teach yourself how to code or teach yourself anything else you want to learn and master. Yes, it will still be hard at times — but it’s completely doable.
Want to know how I know?
You can do this, because you’ve done it before.
You were born to do it, but raised to downplay it.
You know how superheroes always grow up trying to hide or cover up their abilites from the world, then finally they embrace the abilities they had all along, and proceed to go kick ass?
Long before you were told you needed to pass someone else’s tests in order to learn, you knew how to teach yourself things better than anyone else could.
You had an ability that you were born with but that the world discouraged you from using or strengthening. Can you remember it?
Think of the time when you first beat your favorite video game.
You can still remember the exact technique you used to beat the final level, you can remember every single piece of information you collected or strategy you tried as you taught yourself what you needed to win.
Learning and failing and succeeding were all part of a beautiful game, and you couldn’t stop playing. Where to next? You had no idea, and you couldn’t wait to find out. It was all part of your exploration, your chosen quest that strengthened your abilities and made you come alive.
Now think about a book you were supposed to read in school that you didn’t want to read. You were told that you would only learn about literature if you read that particular book, and then you couldn’t stop procrastinating. Do you remember much of that book now? Did you learn from writing the essay or did you B.S. it? Where to next? To the next assignment, to the next exam— you knew exactly where, and you didn’t really care.
When did you truly learn? When you forced yourself to skim through that assigned reading someone told you to do? Or when you stayed up late obsessively practicing the skills needed to beat the game you lost track of time playing?
What if your ability to learn and master anything on earth was not given at graduation or issued with a piece of paper? What if it was here, within you, all along?
You know how to teach yourself, you’ve just forgotten that you can. While you’re so busy asking what you’re supposed to learn when it comes to programming, you forgot to ask yourself about what makes you come alive when it comes to programming.
What’s one thing about coding that you would gladly stay up late learning about?
Start there. Just take a small step. It’s hard. Take a break and then take another step. Start to see a path that wasn’t there before.
Strengthen the ability you’ve always had to teach yourself anything you want. It will get easier as you get stronger.
Now, where to next?
Does this sound like you? Last year, I would use my time like this:
If I had an hour between work and dinner, I’d read some good blog posts.
If I had twenty minutes before a meeting, I’d check Facebook, Instagram, and so on.
It seems harmless, but at the end of each week I had spent a total of 18-20 hours either surfing the web, reading tons of blog posts, or checking social media. That’s 80 hours each month. That’s nearly a thousand hours a year–which, if my math is correct, is 40 days.
Forty days. Over a month out of my year.
I get a lot of value out of of reading blog posts, being on social media, surfing the internet. It’s not that these things are ‘bad’. But do I want to spend over a month of every year doing these things? No. That’s a big chunk of my life spent on things that, to put it bluntly, are not directly moving my life towards where I want it to go. That’s a ton of hours where I could’ve been reading actual books, deepening my skillset, spending time with family.
Then I re-read Cal Newport’s book Deep Work. Newport says most people try to kick their internet time-wasting habits by scheduling times to focus–set aside an evening for just doing your work, just reading, etc. He suggests doing the opposite of this: schedule time to be distracted.
Here’s how I used this: for 30 days, I gave up all social media, blog post reading and internet-surfing from Monday to Thursday. During those 4 days of the week, I didn’t log into any social media, didn’t read my Medium articles that came into my inbox, didn’t go on the internet. For work, when I needed to use the internet to google programming stuff, I did, but I avoided sites that were off-topic.
Then on Fridays, Saturdays and Sundays, I set aside 4pm to 5:30pm, and I went crazy. I endlessly scrolled down my Facebook feed, I read all my favorite bloggers, I surfed the web to my heart’s content. This was a solid 90 minutes for three days in a row. Once the time was up, I waited until the next week. Monday-Thursday were my days to focus entirely on work and read real books at night.
A few wonderful things happened:
I got much of my time back. From Monday to Thursday, I felt clear-headed and focused. I did my work and ended the nights with a good book. I suddenly had so much more time. When you impulsively just check Facebook for five minutes, it can often turn into an hour, and before you know it you’ve lost your day. By restricting myself, I uncovered so many extra hours.
And unexpectedly, I began to enjoy my distracted time on a level I never had before. Blog posts and social media and internet-surfing were my rewards for a focused week of work. When Friday came and I had my 90 minutes, I truly relished new blog posts and Tweets in a way that I hadn’t before. I learned how to use them, and not let them use me, and they felt so much sweeter.
When I schedule the times I’m going to be distracted, I easily create time in my day to do what I really need.
There’s a Fairytale in the world of tech and it goes like this:
“And then, he became a software developer, and lived happily ever after…”
It’s the myth that once you become a developer, your whole life magically transforms. It’s as if you land that cool job title and then your happy ending arrives, and you ride away into the sunset (while wearing a hoodie.)
Learning to code is a wonderful accomplishment. Switching into software development is something to be proud of. In Silicon Valley developers are practically treated like royalty. Yet believing your life is going to be all figured out once you become a developer is as silly as believing you’ll live happily ever after if you just marry your prince.
We know there’s more to life than that. Yet with certain careers, we fixate on getting them and act as if the same magical end will happen once we do. Developer. Engineer. CEO. Startup marketer. CTO of something-something.
There’s a danger in believing that once you land a certain job, the rest of your life will come together, too. The bad news is, it won’t. You may now be doing for a living what you love, and that in itself is transformative, but you’ll still at times be pushing through hard work that you don’t feel like doing. You’ll still deal with work problems and stressful days and setbacks.
You can choose to use your job to transform your life, by deciding to go into this new job with a better mindset, a better work ethic, a better self-esteem, a better anything-you-want–but having that job title won’t suddenly land you all those things.
What will get you those things is what got you to this job in the first place: the grueling, unglamorous work you’ve been doing for months, the patience you kept as you chipped away at your goal, and the everyday grind that you chose to embrace.
You won’t suddenly live happily ever after when you become a developer. But you’ll probably realize some wonderful things about who you already were and what you’re capable of–regardless of your new shiny job title.