EppsNet Archive: Jim McCarthy

What Does a Programmer Do?

8 Oct 2017 /

I was asked to give a talk last week to a high school computer science class on “What Does a Programmer Do?” (I’m indebted to Jim McCarthy for the “lords and ladies of logic” section.)

 

Programming is problem solving.

Programmer

At the highest level, the problem that programmers solve is that people want to be able to do things with computers that they can’t do. And by computers, I don’t mean just the kind of computers you have on the desks here, I mean phones, watches, cars . . . more and more different kinds of devices are running software.

So one good thing about being a programmer is that pretty much every field of endeavor now uses software and data.

You can work at a tech company like Microsoft or Google or Twitter or Facebook, but you can also work in healthcare, finance, education, sports . . . you can work on cancer research, you can write video games . . . everybody uses software and everybody hires programmers.

Programming is a good job if you want to be learning new things all the time, if you don’t want to do the same things over and over.

The dark side of this is that it can be daunting trying to keep up with the pace of technological change. It can be overwhelming.

I was asked once in an interview, “What’s the coolest thing you’ve learned in the last week?” If you haven’t learned anything in the last week, it’s hard to answer that question, let alone if you haven’t learned anything in a month or a year. It’s easy to let your career slip away from you.

Programming has been a good job for me because I’ve been able to make a living doing things I like and things that I’m good at. I’ve always liked solving problems and building things.

To me that’s a good job: you do things you like and things that you’re good at. I don’t think most people can say that. Most people seem to be like “I hate Mondays,” “Thank god it’s Friday,” “Thank god it’s Thursday because it’s almost Friday.” If you spend a lot of time doing things you don’t like and you’re not good at, that’s a bad job.

As a programmer, you’re given problems to solve and a set of tools with which to solve them. You need to be able to figure out “what do i need to do, what do I need to learn, to be able to solve these problems with these tools?”

Self-reliance is good. Persistence is good. Floundering is bad. Know when to ask for help.

Asking for help is a no-lose strategy. Worst case, you ask for help and someone can’t help you or won’t help you, but you’re not any worse off than you were in the first place.

The demand for programmers exceeds the supply and it doesn’t look like that’s going to change anytime soon.

Nearly 30 percent of Americans ages 18 to 24 cannot locate the Pacific Ocean on a map, and 25 percent of Americans think the sun goes around the earth. Those people are not going to be programmers.

In a time of ubiquitous software and intellectual lethargy, programmers are like the priests in the Middle Ages. We are the lords and ladies of logic. We’re in charge of rationality for our era. We’re bringing common sense and sound judgment and aggregated wisdom and glory to everyone.

That’s our job.


I Think We Are Kidding Ourselves

7 Sep 2015 /

More people have ascended bodily into heaven than shipped great software on time.Jim McCarthy

Ascension

On the other hand, the number of people on LinkedIn claiming to have a demonstrated ability to lead software projects to successful completion, on time and on budget, as well as the number of companies seeking to hire such people, is infinite.

Thus spoke The Programmer.


Culture Hacking, Parts 1 and 2

7 Feb 2012 /


Problems

22 Nov 2011 /
  • If you tolerate it, you insist on it.
  • If you insist on it, it will be supplied.
  • If you see a problem, you own it.
  • If you ignore a problem, you’ll see more of it.
— Jim and Michele McCarthy, Software for Your Head

The Best Measure of Truth

21 Nov 2011 /

If you act as if something is true, you will shortly find out whether it is or isn’t. Any reduction of effort or increase of abundance you enjoy as a consequence of your new belief is the best measure of its truth.

— Jim and Michele McCarthy, Software for Your Head

Jim McCarthy on Steve Jobs

20 Nov 2011 /

He was utterly intolerant and disdainful of, and even mean spirited about, mediocrity. Not a designer himself, but a sublime critical thinker, he totally focused his life’s work on design perfection. This intensity, obsessiveness, and his total lack of compassion about others’ inferior thinking resulted – over a period of about 25 years, in five or six truly, climactically great products (the reader – as an exercise – may figure out
what they were, and why they make the cut.)


What You Say You Believe

20 Nov 2011 /

What you say you believe isn’t as important as what you believe. And, obviously, you don’t believe what you don’t enact. Although describing, proselytizing, or otherwise articulating your beliefs in media other than your own acts can be fun, it is seldom very useful to you or anyone else. Babbling on about a value is a distraction from attaining it.

— Jim and Michele McCarthy, Software for Your Head

If You Tolerate It, You Insist On It

19 Nov 2011 /

Whenever you perceive that a virtue is missing or that a vice is present, you either tolerate the situation or try to change it. If you cannot “fix” it, you can at least withdraw your participation. The problem with tolerating the absence of virtue or the existence of vice is that this choice summons them into your life.

You might tell yourself stories about the problem you perceive and your tolerance of it:

  • That’s just the way it is in the real world.
  • Others will not listen even-handedly to your perceptions and advice.
  • It’s not your place to say truthful but difficult things.
  • The problem lies in another department.
  • You are not reading the situation correctly. You may not be able to discern beauty from ugliness or efficiency from waste, and your ignorance will be exposed. You’ll be rejected or ridiculed.
  • You will look dumb if you ask for help to resolve any uncertainty.

Acknowledge that if you tolerate it, you insist on it. If you insist on something, you are its creator.

— Jim and Michele McCarthy, Software for Your Head

In a Conference Room

18 Nov 2011 /

Stop being false just because you’re in a conference room. Start actively engaging. For example, when you think an idea someone states, or one a group adopts, is a poor one, investigate it. Either you don’t understand it, or it is a poor idea. Stop everything, and find out why someone would say such a thing at this time. What was the purpose? What is the meaning of the contribution? Your teammates will have to live with your inquisitive engagement. You will be present, and you will engage them. You will see them. You will hear what they say. You will seek information about their emotional states, beliefs, plans, and skills. You will connect with other team members to the maximum extent possible. They will have to adjust to your strategy and its results or else not invite you–which would be fine.

— Jim and Michele McCarthy, Software for Your Head

Don’t Know What You Don’t Know

24 May 2011 /

It is essential not to profess to know, or seem to know, or accept that someone else knows, that which is unknown. Almost without exception, the things that end up coming back to haunt you are things you pretended to understand but didn’t early on. At virtually every stage of even the most successful software projects, there are large numbers of very important things that are unknown. It is acceptable, even mandatory, to clearly articulate your ignorance, so that no one misunderstands the corporate state of unknowingness. If you do not disseminate this “lucid ignorance,” disaster will surely befall you.

Lost

Human nature is such that we dislike not knowing things that are important to our well being. Since there is so much we don’t know in a software project, the nearly universal tendency among developers and their managers is to gloss over or even deny altogether the extent of their ignorance. You should reward and treasure those who consistently make themselves aware of the list of relevant things that are currently unknown. It requires mental and psychological strength to resist the normal human cravings for certainty and order. It especially difficult to believe in uncertainty when things have a veneer of orderliness, which is often the case. Pseudo-order is a maladapted defense against uncertainty.

The organization surrounding you will undoubtedly abhor uncertainty, would infinitely prefer pseudo-order and will make countless attempts to magically convert your ignorance to knowledge. Your job is to make uncertainty an unshakable fact, and to coerce the reshaping of the surrounding organization to cope with the uncertain situation. The organization must learn to thrive in an uncertain environment for its own well being.

You should expend a great deal of effort making sure that all the people on the project are aware of their ignorance rather than naively converting it to falsehoods. Bear down on them until they realize they haven’t comprehensively assessed the unknowns. In the successful project, this is much easier in the early stages, or during times of change. This is no time for niceties. People ultimately prefer success even if disillusionment is a prerequisite.

— Jim McCarthy, “21 Rules of Thumb for Shipping Great Software on Time”

SharedVision

13 May 2011 /
share your ideas

The principal effects of SharedVision derive from the group’s continuous validation that an object of compelling beauty and importance can be, and will be, achieved by its combined thinking and intense, concerted action. Attempting a goal like that typically found in a vision statement of this class of team requires substantial ambition.

The SharedVision object is something that each team member would most likely see as impossible to attain on an individual basis, were it not for the ongoing validation and sustained support of the other team members. The object itself is — or at least becomes — loaded with supreme meaning for the team. Nothing is more important.

The team’s commitment to attaining the SharedVision object is a passionate one. So animated is the team’s fervor that the only real difference between a shared delusion and a SharedVision is the rational, step-by-step behavior of those experiencing the vision, which contrasts with the irrational and often random behavior of those experiencing a delusion. When examining the team besotted with a SharedVision, a third-party observer might decide that, although the fulfillment of the team’s ambition is unlikely, it is just possible that members of this group could achieve it. “If anybody can do it,” the observer might well say, “this team can.”

— Jim and Michele McCarthy

Ask for Help

7 Mar 2011 /

Asking in time of trouble means you waited too long to ask for help. Ask for help when you are doing well.


Offer What You Have

6 Feb 2011 /
Software for Your Head

Offer what you have, disclosing what you feel and think, connecting only with those who do likewise.

— Jim and Michele McCarthy, Software for Your Head

Ask for Help

8 Jan 2011 /

This is the first, and most important, lesson of teams: ask for help.

So we live by this lesson. If they don’t ask us for help, they never learn who we are and what we have to give. It can be frustrating for us, and hard for them, but not as frustrating and hard for both as us wasting ourselves upon people who do not want what we urge upon them.

— Jim McCarthy

Conditions

3 Sep 2010 /
  1. What actions you take, you believe in.
  2. What commitments you make, you keep.
  3. What resources you have, you use.
  4. What words you say, you believe to be true.
  5. What you create, you intend to be great.

Aggregating Intellect

16 Aug 2010 /

A team can aggregate the intellects and elevate the nobility of the group as a whole to create a greatness of effect comparable to, or even surpassing, any individual genius.


In Creative Work, the More Ideas the Better

13 Jul 2010 /

Simply encouraging “idea-consciousness” can have a profound impact. For a group to realize they are working with too few ideas is a tremendous step.


Twitter: 2010-05-10

10 May 2010 /
Twitter
  • RT @mccarthyjim1 In almost every case, action will produce many times more results than planning. http://post.ly/dMei #
  • RT @eddiepepitone: In honor of my mom I burnt a meal, ignored myself and accused my dad of aloofness. #
  • RT @eddiepepitone: The only thing stopping me today is my childhood, my genetics, my income, my innate laziness and my parole officer. #

The Authority of Ideas

9 May 2010 /

A team committed to providing great products or services on time will shift its point of view on authority.

It will move from viewing authority as emanating from bosses to viewing authority as emanating from ideas and from the nurturing and championship of an ecology of ideas.


Willing to Change

8 May 2010 /
Jim McCarthy

Saying that you want something implies that you are willing to change to get it. Otherwise, you really don’t want the thing.


Next Page »