EppsNet Archive: Software

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.


Programmers Don’t Play Polo

16 Aug 2014 /

On the product page for a book on software development principles, Amazon showed me this:

Customers also viewed ...

The product on the right — is that a bug in the cross-selling algorithm? I’ve worked in software development for about 30 years and have never met one person interested in the game of polo . . .


This Kid Made an App That Exposes Sellout Politicians

8 Jul 2014 /

Via VICE:

http://www.vice.com/read/greenhouse-app-hannah-ewens-nick-rubin-201

Yes, the algorithm is


if (isPolitician(x)) {
    x.sellout = true;
}

Thus spoke The Programmer.


9 Links

1 Mar 2014 /
  1. Data Structure Visualizations
  2. Good Tech Lead, Bad Tech Lead
  3. Google Java Style
  4. Guide to 12 Disruptive Technologies
  5. How to Write a Cover Letter
  6. The Landing Page Optimization Guide You Wish You Always Had
  7. Selendroid: Selenium for Android
  8. UX Axioms by Eric Dahl
  9. Yelp’s got style (and the guide to back it up)

The Cure for Missing Attachments

10 Jan 2014 /

I wrote an email in Outlook 2013, concluded by saying “Details are in the attached doc,” then clicked Send without attaching the aforesaid document.

I must not be the only person who does this, because when I clicked Send, this dialog box appeared:

Attachment reminder

Obviously, Outlook is looking for words like “attached” or “attachment” in emails that don’t contain an actual attachment. It turns out that this behavior can be turned on or off in the Outlook Mail options:

 Mail options

I have to admit that I don’t remember if “warn me” is the default option, or if I turned it on at some point in the past and forgot about it.


Passing the Cloudera Hadoop Certification Exam

9 Dec 2013 /
Hadoop

Today I took and passed the Cloudera Certified Developer for Apache Hadoop (CCDH) exam. Two resources were helpful to me in this successful endeavor:

  1. Hadoop: The Definitive Guide by Tom White
  2. The Cloudera practice test, which I found much harder than the actual exam.

Agile, ALM, and Agile 2.0 — Putting the Cart Before the Horse?

1 Aug 2013 /
Cart before horse

Speaking of selling chickens still in shells, an august panel of industry giants laid out their recent improvements and plans for ALM products (Application Lifecycle Management, for those not in the know). These guys dazzled the audience with how they’ve moved far beyond simple source code repositories and testing tools to a complete integration of all modern software practices. Quite a coup, indeed, since most real live software developers I’m seeing out there today still aren’t using the practices automated by the ALM tools. . . .

In other words, many software developers aren’t using practices such as test driven development or source version control. Yet here are HP, Microsoft, and IBM announcing new ALM tools that automate more advanced practice in areas not even in use in the first place. Unbelievable.


ideasspotter: 75 Startup Tools and Apps

Posted by on 23 Jul 2012

The Simplest Thing That Could Possibly Work

28 Jun 2011 /

I ask people to think about the question, “What is the simplest thing that could possibly work?” I’m not asking you to think about what is too simple to work, just to bias your thinking toward eliminating wasted complexity.


Change Isn’t the Problem

26 Jun 2011 /

Everything in software changes. The requirements change. The design changes. The business changes. The technology changes. The team changes. The team members change. The problem isn’t change, because change is going to happen; the problem, rather, is our inability to cope with change.


A Category for Everything

19 Aug 2009 /

Dilbert.com