Dave's Notebook

How to be a Lucky Programmer

I’ve been studying topics related to social science recently and one item that keeps popping up in various places is the idea of luck. It turns out that lucky people aren’t really all that lucky. There life has been arranged either by them directly or indirectly by their environment so they end up having more chances of good things happening to them.

How can we apply this to programming? How can you be a lucky programmer?

Photo Gaertringen via Visual Hunt

What You Believe

It turns out that what you believe about yourself has a HUGE impact on how lucky you are. In fact, lucky people see themselves as lucky.

Lucky People are Lucky

Now, you might think that a lucky person seeing themselves as lucky would be self-evident, right? I mean if good stuff keeps happening to you, you are obviously going to view yourself as lucky. But, the dirty little secret is that bad stuff happens to lucky people too. They just aren’t as likely to see it as unlucky and may even see it as lucky.

To take an example from my own life, I was in an accident about a month and a half ago. I totalled the car. But,

  • No one got hurt, and given the shape of the car, I’m still amazed.
  • Someone showed up within minutes and stopped long enough to help me figure out what my next steps were.
  • The police man showed up immediately after I hung up the phone with the dispatcher.
  • We got more for the car than we would have if we had traded it in.
  • We ended up with a much nicer car than we were planning on.

Was I lucky or unlucky? It is just a matter of what I focus on.

In short, lucky people focus on what they have instead of what they don’t. According to people who measure these things, if you made more than $34K (usd) in 2012 you made more than 99% of the world’s population. Yes, I know, there are other factors, like cost of living to consider. But really, by just about any standard, I’d say from an income perspective, we as programmers are pretty lucky!

Lucky People Ask Good Questions

It turns out that our brains answer any question we give it. In fact, you’ve probably been in situations where someone has asked you a question you really didn’t want to answer and you’ve answered it anyhow. This is how compelling question are.

The problem lies in the questions we ask ourselves. When you are struggling with an issue, are you more likely to ask, “How can I solve this?” or “Why can’t I solve this?” Do you see the three things you’ve tried as proof that the problem can’t be solved or just three ways that it can’t be solved?

I’m going to guess that if you are any good at programming, you’ll be more likely to ask “How can I…” questions. But what about the rest of your life? Does this carry over into finding your dream job? Making friends? Investing?

Entitled vs Deserving

This last point is a little tricky to explain. Lucky people feel like they deserve to have good things happen because they’ve put in the effort so that good things can happen. This is different from either feeling entitled or wishful thinking. Lucky people have studied hard, made connections, tried stuff, improved their social skills, and more. So, you can believe you are lucky all you want, and that’s a really good start, but there is more to being lucky than just being “The Little Engine That Could” you need to be “The Little Engine That Does”

Try New Stuff

You could also call this “be curious.”

I think my love of learning has helped make me lucky. But again, the people who study this stuff agree with me. The more stuff you try, the more likely you are to be lucky. When you try lots of stuff, you can keep what works, toss what doesn’t. Do more of what is working. Do less of what is not.

That sounds pretty simple. But where most people goof this up is that they see themselves as failures when something doesn’t work. It may not have worked for a lot of different reasons. One may just be you don’t have enough other experience yet. Some might be that it isn’t who you are deep down.

Check this out. Do an inventory of yourself and try to figure out what has always been true of you. For me, it is learning. I remember all through Jr High and High School, I would come home, finish whatever homework I had, and then I’d go learn something that was interesting to me. I studied flying, weather, electronics. And that hasn’t changed. If you’ve been following this blog, you’ve benefited from a lot of what I’ve learned over the last several years.

I also like to teach and help people get ahead. Something I’ve been doing in some fashion since I was twelve.

I got very involved in the Internet Marketing thing for a while. I made about as much money as I spent learning, so it wasn’t an entire waste of time. But, the year I gave up on that, I made significantly more money by using my resources in a more productive way. Learn when you’ve done enough. But don’t give up when something doesn’t work out right away either. Doing several things at a time will help you figure out what you should be spending more time on.

Hone Your Skills

One of the biggest frustrations I have is when I find someone “over 50” who has posted a comment saying he (most always it is a male) can’t find a job because of age discrimination. I always wonder what skills he has, because where I live, we’ll hire anyone who has an up to date skill set who can prove to us they really do know what they are doing.

So, you have a job. Great. Don’t coast, or you’ll be that guy. I almost was. I got comfortable at a company and didn’t keep my programming skills up to date. It took me three years to recover.

Not only should you not coast. If you are serious about programming, you should become an expert in something. Full stack is crap! Niche down. This doesn’t mean you can’t do some other part of the stack. But be awesome at something. Trust me, it WILL pay off.

But also, learn around the fringes. It does no good for you to proclaim “Windows is the best operating system.” if you’ve never tried Linux or OSX. (Just as an example). In the same way, you can’t say a particular framework is the best if you don’t have several that you’ve tried. Bonus points if you can explain what the differences are and why someone might choose one over the other, even if it isn’t what you would select.

Since you are reading this, I have to assume you read several tech related blogs. But how about podcasts? How are you spending that time on your commute to work? I have so many podcasts that I listen to that I have to listen to them on evenings and weekends to keep up. And don’t just read blogs and listen to podcasts about tech. Branch out. Get a life.

Finally, interview for a job at least once a year even if you aren’t looking for a new job. Why? Well, remember I told you I got comfortable working for one company? It turns out the whole interview process changed while I was sleeping. Like Rip Van Winkle, nothing was the same to me. The more you interview, the better you get at it. This is why I recommend interviewing four times a year. Once a year is the absolute minimum. Better to try new interview strategies on an interview you don’t care about than when you really need a job. And who knows, you might find a job you really like in the process.

Social Skills

But it doesn’t matter how great you are technically if you can’t convince someone else that you are. And this means you are going to need to work on your social skills. Yes, lucky people, and that means lucky programmers, need social skills. And I’m not just talking “Please” and “Thank you” But, that would be a great place to start.

Body Language

Body language is a great place to start. You’ve probably seen the Amy Cudy video where she talks about power poses. But body language goes much further than power poses. But let’s start there.

As I walk around the office, I notice that between typing on our keyboards and keeping our eyes glued to our phones, our default “pose” is one of submission and meekness. Have you ever noticed that even people who aren’t looking at their phone when they walk are looking at the ground? Doesn’t anyone make eye contact anymore?

Over the last several months, I’ve focused on looking up and out as I walk. What a difference in how I feel about myself, not to mention how people perceive me. Look out. Not up. You don’t want to look like a snob.

On the off chance that someone makes eye contact with you, smile at them. An interesting thing will happen, they’ll smile back which will make you want to smile more.

An interesting story. There is a guy in our office who seems to have caught the giggles. He’s got this contagious smile and is almost always laughing. It is a genuine laugh and I am going to try to incorporate laughing more into who I am. The thing is, the more he smiles and laughs, the more people want to be around him. Hmmmmm.

The other thing you can do related to power posing is to just take up space. Again, don’t overdo this. Stand up straight. Spread your arms. Show you are comfortable more than that you are the boss. Too much in the wrong place and you’ll just look like you are posing. Think of the posing as something that changes how you feel about you, not how you want them to feel about you.

Make Them Like You

We’ve already discussed laughing. That’s a great way to make people like you. And smiling also makes people think you are smart. But there are some other “tricks” you can learn that will help people like you.

One simple one to implement is eye contact. People feel like you are listening if you make eye contact. How you pull this off is to look at one of their eyes. Obviously, you can’t look at both of them. But where people get this eye contact thing wrong is that they tend to stare instead of look. Don’t be a robot about it. And it is OK to look away for a second or two.

The other way you can make people like you is by mirroring their words and body language. Especially gestures.

I find this fascinating.

You may have heard that you should use “active listening” to make sure you understand what the other person is saying. For those of you who don’t know, active listening is the process of paraphrasing what the person said and saying it back to them in your own words to make sure you got the idea of what they said.

The problem is, using active listening won’t make the person FEEL like you understand them. Mirroring does this. And you mirror by using the same words and phrases they used. In particular, you want to use the words that seem to have the most emotion attached to them. What’s even crazier about this than the fact that it establishes rapport quickly is that the person you are mirroring won’t notice.

Now, all these tricks are just tools to grease the process. But if you just take the attitude of genuinely being interested in other people, you’ll probably end up doing a lot of this stuff anyhow. But if you are genuinely interested in people AND you add on the above skills, other people around you will feel the love and be attracted to you. You’ll be that guy or gal everyone wants to hang with.


Yeah, networking. It is amazing to me that I can go to a programming user group meeting where we are all there for the same reason. That is, we all KNOW we have something in common. And no one is talking. 30 people in the room and barely a noise. This is not good. Your next job could be in that room.

But, what should we do?

One thing I’ve started doing is this. You walk up to someone who isn’t already talking to someone and you shake their hand while saying, “Hi, I’m (your name here)” And then you ask them a question to get things rolling. Here are a few of my favorites:

  • Ask them something about the event.
  • Are you using X yet?
  • What brought you here tonight?
  • How did you get started in programming?
  • What does a typical day look like for you?

Once they’ve given you an answer, just ask them a question about something they just told you.

It really isn’t that hard unless it becomes obvious that the person isn’t in the mood to talk. But that hardly ever happens when you’ve asked them about something they care about.

Some of these questions are appropriate even if you are talking with someone who doesn’t program and you can quickly use them to get people talking about things they care about.

Once they start talking, just listen, mirror, and ask more questions.


Another interesting thing I’ve learned is that lucky people have lots of connections. This doesn’t mean they have a lot of close friends. But they are connected, even if all that means is that you are connected on the social networks. So, when someone wants to connect to you on LinkedIn, FaceBook, Google+ or some other social network, connect. If they end up being jerks, you can delete them.

One of the most common objections I hear when I suggest that people connect to anyone and everyone on LinkedIn is that they will get all kinds of messages and emails from recruiters. So, I want to address that now.

You’re looking at something that has the biggest chance of making you lucky as an annoyance. Yes, I have nearly 10,000 connections on LinkedIn. Yes, every day I get a ton of email. But, I’ve also been able to narrow down which recruiters I am willing to talk with and which ones I may want to talk with and the ones I never want to hear from again. My white list, grey list, and black list.

When I need a new contract, guess how long it will take me to find something I want to do?

Take Action

Finally, lucky people do something. The whole self-help industry is banking on the fact that you’ll never do anything they tell you to do. A lot of what they tell you to do in those books would work if you did what they said. But for various reasons, we think buying the book, or even reading the book, is going to change our life.

So, pick something I’ve mentioned above that you aren’t already doing and do it.

For a start, connect with me on social media using one of the buttons in the upper right corner. I highly recommend LinkedIn because I am connected with so many people, you’ll automatically get all of my first-degree connections as your second-degree connections and all of my second-degree connections as your third-degree connections. What this means is that by connecting to me, more people will be able to find you on LinkedIn when they search for you on LinkedIn.

For more about how to use LinkedIn, check out my article, “LinkedIn Tips for Programmers