Day 4: Have You Met A Developer Lately?

I’ve worked with a lot of developers over the years. I’ve worked with amazing developers, rude developers, introverted developers, developers that were ultra runners and rock band members, lazy developers, and incompetent developers. I don’t intend to suggest that all developers are the same by any means, but good developers all have a few common traits...and they also lack a few traits in common also.

1. Developers Like to Build Cool Shit and Solve Interesting Problems

The quest of solving or besting a challenge drives developers forward. What’s important to note there, though, is that it’s gotta be cool or interesting to EM-them.

I first experienced this when I was stationed in Kuwait and Bahrain in 2005. I reported to a senior IT who was a smart coder and Unix admin (and power lifter among other things o.O) We had an Army unit in the office across the hall from us that did really cool shit with satellite images in the region. They ran some interesting algorithms to do what they do. My buddy (we’ll call him Tom) would go over there and script solutions for them in their tech stack to automate some of their work. He received a commendation medal from our unit for his extra work there.

You know what he didn’t do? His actual job. Because it wasn’t cool shit. Windows OS admin, IT support, cabling, and telephony just weren’t interesting to him...so I did all the IT work and ran our unit.

If you manage developers, this is important to understand. You motivate developers by giving them interesting problems to solve. Give them uninteresting stuff to work on or you’re going to get slow results and meet a lot of nerdly aggressive resistance.

2. Some of Them Have Really Odd Personality Traits.

They’re quiet (unless you consider keystrokes and indignant stares). They smirk at things you’ll never understand. Aha moments for them are so far above your grasp that while you hear the buzz of fluorescent lights they marvel at a host of angels singing their name whilst a league of medieval knights dismounts and kneels at their feet.

They do strange things when they’re working out problems. A VP of Information Systems that I worked with joked one day that he saw Todd (a marketing systems developer) walking around in a circle talking to himself. Developers mumble silent things slowly as sys logs pour out in front of them. They lean back in front of code on a vertical monitor with a hand over their mouth and ponder the intricacies of control loops and order of execution (I’m actually guilty of this one o.O)

Anyway...developers are a unique bunch. There’s a reason my current profession exists. Technical Program Managers (BA’s, PO’s, PM’s) understand developers and also understand why they confuse you. We translate and bridge gaps.

If you manage developers, this is also important to understand. You can’t fit a developer into your box of norm. Give them room to be amazing, room to go through their own process. Focus them on the interesting problems you guys need solved and let them do it. Their way.

3. It is Rare (So Rare!) That They Possess Entrepreneurial Traits.

They ponder. They calculate outcomes before they make decisions, and if those decisions are not about code, they often don’t ever make that decision. They’re not great people managers. An experienced coder does not automatically make a good manager (even though they normally get promoted to that). Conflict that doesn’t involve misaligned operators is often avoided. While they frequently conceptualize problems and solutions, their consideration does not drift far from initial scope (in Product Dev, for example, they don’t often consider financial impact, go-to-market strategies, project management, etc).

I say all of these things with such endearment for the developers I’ve worked with. It is not the norm to find a stellar coder that is a natural entrepreneur. ...yet every tech founder out there is looking for one. I’ve dubbed these rare combinations of coding and leading, unicorns. Every tech founder out there is looking for his or her unicorn.

I also believe that it’s easier to teach an entrepreneur to code than it is to teach a developer to be an entrepreneur. I’ll start with myself.

Today’s Log and Notes

  • Intro to methods in objects...essentially functions in objects.
  • "this" keyword. That's helpful.
  • Calculating area of a square without using * 2. That was an interesting teaser. I like that Code Academy set that trap ;)
  • Intro to custom constructors
  • "new" matters when declaring object for a var.
  • Arrays of Object O.O
  • Objects as params for functions
  • Parenthesis matter ;p
  • Spaces are hit and miss. I'm not 100% sure yet where a space matters var XYZ = new Object(), for example, vs. new Object ().
  • Associative Array vs Ojbect? o.O
  • Searching arrays with linear search.

Time Coding: 1 hour 57 mins ...the last 20 were in a second session. Reached diminishing returns today. I should have slept on it before the second Objects review, but I'm trying to finish this to get into Free Code Camp's curriculum.

Pushups: 12