How to Think Like a Programmer: The Developer Mindset
Developers come in all shapes and sizes, but they do share one thing in common: they all THINK like programmers. And they bring that approach to everything in their lives, whether it is a challenging software problem, or “hacking” other aspects of their lives like garlic breath or travel or relationships!
Developing and cultivating this mindset is a crucial element of becoming a GREAT developer. And, as it turns out, this mindset can help you succeed far beyond your technological undertakings; just look at all the programmers who have made phenomenal business-people (Marissa Mayer, Bill Gates, Mark Zuckerberg, Jeff Bezos to name but a few).
So what defines this developer mindset? And how can you start to cultivate YOURS today?
The Five Elements of the Developer Mindset
1. Learn to strap in and not stop until the job is done.
Anyone who has ever dabbled in coding knows that it is an exercise in patience. Sometimes, especially when you are getting started, you will spend HOURS trying to find one missing semi-colon or one miss-capitalized word that is breaking your script.
The good news is that computers are black and white: if it’s not right it won’t run.
The bad news is that computer are black and white: if it’s not right it won’t run.
The first tenet of the developer mindset is cultivating the zen of coding: you have to learn to be calm, break your problem into the smallest steps possible, and methodically go through your scripts line by line to root out the bug.
Most importantly, you can’t give up until it’s done.
Now that I have been programming for a few years I can tell you that when I encounter a problem in my code that’s not easy to diagnose, the shift is literal. I will shift all of my energy to focus on the task at hand, oftentimes literally changing how I sit in my chair, straightening my back, planting both feet on the ground, ready to tackle whatever comes at me.
2. Learn to love the pain. Or at least, not fight it.
Dovetailing on #1, part of cultivating the zen of coding is to reframe how you approach things that we are accustomed to feeling are “painful.”
I remember going to a dinner party at the house of a friend of my parents’, and their daughter had just had her wisdom teeth out and was sitting at the table all puffy-faced, complaining about being in pain and debating whether to take another pain killer.
Having had a few drinks, my dad looked at her devilishly and said: “Well, you could take another pain killer OR you could just learn to enjoy the pain.”
I still laugh when I think back on this both because it was sooo not what she wanted to hear and because he was so right.
Life in general, and coding in particular, is full of things that totally SUCK. But they are sucky things that we all have to deal with and work through and the best thing we can do for ourselves is to try our best to reframe how we think about.
And fortunately, the Hallelujah moment you get when it DOES all come together is worth all of it.
3. Remember WHY you are doing something!
Coding is like…being asked to write a book using only numbers. How would you do that?
Well…you could use 3 for e, 4 for a, 8 for b…
The point being that you are in this constant situation of having a limited set of tools to work with, and an ever changing set of things you are expected to accomplish.
The magic comes from you creatively figuring out how to bridge the gap between your limited toolkit and where you want to go.
A common trap for developers is to spend too much time focusing on HOW they do it. How clean their code is. How efficient. How fast.
And clean, efficient, fast code is a good thing. But only if it’s in the pursuit of something cool and useful.
The BEST developers come up with funny, clever, useful things to do with their technical skills.
Your challenge is to expertly use the coding tools at your disposal to make the MOST amazing, MOST useful thing you can think of.
Remember: code is the means, not the end unto itself.
4. Remind yourself that EVERYONE needs help. Reach out!
One of the biggest mistakes I see beginners make when it comes to programming is that they think they SHOULD know how to do it all and wait far too long before they reach out for help.
Look, of course, you do need to learn to be somewhat self-sufficient, but it’s well documented that just the process of asking a question can be enough to help you find the solution. So ask!
Moreover, ALL developers need help pretty much all of the time. And programmers have created a HUGE industry out of helping one another with various coding challenges. Stack Overflow, run by the parent company Stack Exchange, is worth, by some estimates, over $300 million!
Looking for help? Start by googling for the answer and you will no doubt find countless forums, blog posts, and StackOverflow threads explaining just how to fix your issue.
If not, start looking for IRC channels by topic. If you are a Ruby developer you can find one by just googling something like “Ruby channel on IRC” (#ruby-lang), or just search for the IRC channel of the topic of YOUR choice (Angular! Startups! Python!). Then download an IRC client and start chatting with other, like-minded devs!
If in-person is more your thing, take a look at Meetup for language- or topic-specific meetups, or google for something like “PHP user groups” in your area (replace PHP with the topic of your choice).
5. Keep in mind that having fun is key. Remember to be playful!
Programming is hard. And the best way to make hard things easier? Have a sense of humor!
For as long as humans have had computers, we have been using computers to make us laugh.
Programmers love all manner of jokes: Fart jokes, sesame street jokes, git jokes, git commit jokes, deploy gem jokes, fake framework jokes, dancing robot jokes, harlem shake jokes, how to get from NYC to Japan jokes, dog weather jokes, and the list goes on and on…
So get it with it already!
Ready to start thinking like a programmer? Join a supportive community of other learners. Sign up for a Skillcrush Career Blueprint and get started this summer. We’ll be the friend that helps you get out of bed and up to the gym…or, you know, onto your computer.