Why is it so hard to find programmers?

“Why is it so hard to find programmers? Are people afraid of joining a start-up?”

Let’s not overlook the big differences between working at most start-ups and working at most companies:

1. Every programmer, no matter how good, is at least a little insecure. Every one of us doesn’t know “something”. Is the something you don’t know going to make or break the next project? In a start-up, there’s rarely a safety net to catch you, but in a larger company, there’s probably a better chance that someone else can help you along.

2. It takes a special mentality to work in a less certain environment. This is more a matter of personality than skill. My mentor was fearless. He used to say, “I didn’t know I couldn’t do it, so I did it.” This attitude, as much as skill, determines how well one would thrive in a start-up.

3. What happens when things go wrong? (And they will go wrong.) The ability to recover from problems in a larger company is a great asset. In a startup, it’s a necessity. I’ve met many enterprise programmers who could crank out great code between 8 and 5, but melted under the pressure of an all night emergency. They would never survive in a startup.

4. What happens if you don’t feel well or if your mind is “someplace else”? In a larger company, you could coast for a day or two (maybe more). That’s rarely an option in a start-up; time lost is time lost forever.

5. In a larger company, you can do quite well whether you have deep domain knowledge or you’re a jack of all trades. In an early start-up, you better be both.

6. Ever wonder why waterfall development refuses to die, even though it’s not as effective? Because so many of us have to have a road map in order to function. “Road map” personalities don’t fare nearly as well in roadmapless environments (many start-ups).

7. A start-up programmer must have at least a little maverick blood. If you believe everything you hear and do everything everyone else is doing, how can you differentiate yourself? In a larger company, you may not have to. In a start-up, you probably do.

8. Is there something you simply have to do? Then you probably belong in a start-up environment. It’s tough (although not impossible) to get the same opportunity in a large company.

9. Do you think the work is really cool? I know lots of good enterprise programmers, but have trouble thinking of very many who think their work is cool. They like their jobs, but work is “just a paycheck”. Not the type of people who would thrive in a start-up.

10. Do you do a happy dance whenever something works for the first time? Then you may be more
comfortable in a start-up than in a big company.


Is programming hard work?

“”He is dead, too much hard living!”. Too much hard coding would be more like it.”

Wow, those ones and zeros must have really been heavy!

Every time I see landscapers, construction workers, farmers, nurses aides, or anyone in one of my customers’ factories or warehouses, I thank my lucky stars that I was born when I was, I had an aptitude and interest in programming, and I found the perfect career for me.

Sure I work hard, but my hard work is hardly the same as “their” hard work.

I’ve spent a career on my ass, building applications that hopefully make the lives of those who do physical work just a little easier.

My last career was a cook. After a 6 hour shift in a 110 degree kitchen serving 2,000 meals, a 12 hour stint in an air conditioned office in my Aeron chair seems like a vacation. Oh, and did I mention I earn more in a month than I did in a year as a cook?

I never expect my boss to thank me for anything. My boss (me) gives me the best bonus I could ever ask for. I get to do it all over again tomorrow.


Why I Do Not Feel Like a Fraud

There were many times when something I did seemed “too easy”. So many times I’d listen to the user, understand their problem, and help them solve it with software. No big deal. Many of us have been doing that for years. Then the user would say, “Thank you, thank you, thank you!” “You’re so much better than anyone else we’ve tried,” or “This software is incredible! You should take it to market.”

Or when I got compliments I didn’t think I deserved. People called me “the smartest programmer I ever met,” “brilliant,” or “head and shoulders above the rest”, and I knew it wasn’t true, but accepted their praise anyway. And believe me, I’m not bragging, I’m just sharing experiences that many others probably had too. Others thought we were geniuses and we thought that we were just doing our jobs.

So why don’t I feel like a fraud? Because I paid my dues. I may not the smartest or most gifted guy, and I’m certainly no genius, but I know I did the hard work.

While others were partying, I was debugging til 2 in the morning. While others were at lunch, I was eating a sandwich at my desk trying to find a better way to do something. While others promoted “good enough” software, I dug down 5 more levels to overcome the tradeoff. And while others accepted the status quo, I wrote my own framework to provide software that was in a different class from theirs.

I bet many of you share the same experience. Sure, we have been given gifts that many others never got, but those gifts only took us so far. We had to learn how to use those gifts. The real successes came from hard work. The kind of hard work that many people I know never do.

So if someone “overpraises” me, that’s OK. I know I don’t deserve it, but I accept it anyway. Kinda makes up for all those hours when I was slaving away and no one said anything at all.


How much does age affect ability?

I am 55 and absolutely do not care what anyone else thinks about it.

When I first started out I quickly rose through the enterprise ranks and was never taken seriously because of my age. As a wimpy looking nerd, I had always been underestimated by others and I found a way to use that to my advantage. When the time was right, I would just shoot them between the eyes with the right solution. My young age didn’t matter.

Fast forward 30 years. I “never” notice age discrimination. It may be there, but I simply don’t notice it. I think being in IT and in my 50’s is a “tremendous advantage”.

For every issue I have to address, I have that many more instances of experience dealing with something like that. Many more iterations of similar patterns to draw from.

IT is one field where you can actually get “better” with age. You don’t have to run fast or carry heavy loads, but you do have to think nimbly and get things done, both of which get better with lots of practice.

IT is also one field where “what you get done” is more important than “who you are”. This is always good news for us hackers and makers, regardless of age, sex, background, or anything else.

I am currently writing the best software of my life, by far. Not just “how” I’m writing it, but “what” I’m writing. I have seen so much that I have a natural instinct for what is needed, what works, and how to best go about it. New technologies keep me fresh and engaged. I feel perfectly at home here among younger programmers. I can’t imagine a better place to be, with 21st century technology and 30 years experience!

To me it’s odd that others in my age group don’t feel the same way. Then again, maybe it’s just state of mind.

My grandmother taught me one of the most important lessons of my life, “If you look hard enough for trouble, you’ll probably find it.”

There is negativity everywhere, about ageism and a million other things. The secret is that it’s only data to process as you choose. I have decided to ignore it and continue to do what I love and love what I do.


What are the biggest geek myths?

“1. Recognize that people will know you are a geek from the moment they meet you”

Assume nothing. If you’re not sure about something, ask. Give the other person the benefit of the doubt at least once.

“2. Don’t try to change people’s preconceived notions of geeks”

Don’t try to change anything about anyone else. Just be yourself and engage them.

“3. Don’t get too comfortable and start being yourself”

Always be yourself. Who else are you going to be? And who is going to be you?

“4. Try to talk as little as possible, and when you do speak, only ask superficial questions”

Take advantage of this excellent opportunity to engage with other people. Learning is maximized for everyone when all talk and listen.

“5. But don’t ask questions about things that normal people should know”
 
How else would you know what’s “normal” unless you ask?

“6. Temporarily let go of the urge to achieve absolute precision in speaking”

Sometimes absolute precision is exactly what’s needed to improve communication. The trick is to know when. Learning when comes from practice.

“7. Don’t correct anyone even when they’re incorrect or imprecise”
 
Again, the trick is in judging context, which comes from practice. If they said they did something a million times, obviously no correction is needed. If they’re giving instructions on defusing a live bomb, then you better correct them.

“8. Don’t use words that an 8th grader doesn’t understand”
 
Again, how would you know? Be yourself, say what you mean, and learn from the feedback.

“9. If somebody asks you about your job or hobbies, answer in one sentence”

Answer in as many sentences as you deem appropriate. You’re probably a pretty smart person. Exercise you judgement, which will become stronger just as if you exercised your biceps.

“10. If everyone around is enjoying the ambient music, background live performance, etc., don’t jump in with any analysis”

Why not? Sometimes the most interesting conversations get started this way. Again, your judgement is way more important than OP’s rules.

“11. Never start a sentence with “Did you know that …””

Sames as #10.

“12. Never start a sentence with “You should really …””

Probably better stated as, “Only give advice when it’s asked for.”

I’d prefer this simple list of social tips:


1. Be yourself. Being rejected by someone else for being yourself is a self-correcting problem. They just saved both of you lots of time and energy.

2. Treat others how you’d like to be treated.

3. If you spend lots of time alone, take advantage of an opportunity to be with others by engaging and learning.

4. Use your best judgement (That’s what it’s there for.)

5. Have fun.

6. Take any list of rules with the word “actionable” with a grain of salt.


What Matters Most to a Programmer

The longer I am a programmer, the more I realize that I love my job because of the actual work I do. Period.

I love the idea that people are trying to get things done, but need a little help from me to get them the tools they need. I love discovering with them what they need and how to get it to them. I love all that data sitting on disks somewhere begging to be used. I love all that data outside of any computer begging to be put on disk. I love the idea that I am master of a little universe that I can see in a 19” square right in front of me. I love manipulating important things, both complex and simple, with just little flicks of my fingers. And most of all, I love seeing something that came from nothing work for the first time. I did that! (Happy dance) Oddly, not much else matters…

I have worked in the most deploreable conditions at the most difficult times and hardly noticed when the work was good.

OTOH, I have worked in Class A office space with the nicest people and best conditions and was ready to jump out of the window from boredom or frustration.

Yes, the more I think about it the more I realize that it’s the “work” that matters. If it’s important enough and I’m allowed to do it, I don’t need much else. If it’s not, then there is no perfume could that make that pig smell good.


Why didn’t you pursue mathematics?

I left math for a totally different reason and I’m almost embarrassed to talk about it. A little background…

I worked full time through college and graduated with less than $100 in the bank. I had opportunities to go on to graduate school for either math or business.

Every professor in our math department drove an older subcompact except the department head who drove a Chevy Impala. Imagine, work your whole life, get to the top of your field, and drive an Impala!

I had struggled too long to set myself up for more struggle. So I went on to get my MBA, learned how to program, and have never had a lack of good quality, high paying work. I’m a little embarrassed that I was so shallow back then, but maybe my subconscious was trying to tell me something. I love math, but I’m sure glad I made the choice I did.

At a recent math reunion, I felt right at home once again. I met a buddy who graduated with me and continued on to become a tenured math professor at a major university. I asked him how he felt about his choice. He told me, “I’ll never be rich, but I teach calculus for 8 hours per week 9 months per year, I don’t have to publish, and my wife and I have visited over 100 countries. Not a bad life at all.”


What’s hardest about programming?

What a solitary task programming is.

This is the hardest thing for me to explain to others. And still one of the hardest for me to get used to myself. It takes a lot of time working alone to get anything done.

It may also be one of the many reasons Hacker News is so popular. I don’t know about you guys, but if I didn’t have this place to break up the loneliness, I’d probably go nuts.


What should an older entrepreneur do?

Pair their work ethic, real world experience, and life lessons with the passion and technical skills of a 20 something hacker.

I started my first business when I was 27. My partner was 41 and had done things I hadn’t even imagined. He was so smart, so seasoned, and knew the ropes about so many things that he saved us both countless hours and dead ends. And I was able to do things he never had a chance to learn. We made a great team.

Now I’m on the other side of that relationship. And would love to do it again with someone in their 20’s. I have a million ideas that come from years of real world experience and not enough time to act upon them.