What is the hardest part about learning to program?

Quora runs an interesting question – “What is the hardest part about learning to program?“.  As always, there are plenty of insightful answers with suggestions, tips, shared stories, research and statistical data, and more.

For me personally, this answer in particular was useful, as I’m very well familiar with the phenomena, but never knew there was a name for it – Dunning–Kruger effect.

The Birth And Death Of Privacy: 3,000 Years of History Told Through 46 Images

The Birth And Death Of Privacy: 3,000 Years of History Told Through 46 Images” is a rather extensive look at the history of privacy.

Privacy, as we understand it, is only about 150 years old.  Humans do have an instinctual desire for privacy. However, for 3,000 years, cultures have nearly always prioritized convenience and wealth over privacy.

I said “there is no such thing as privacy, and there never was” way too many times.  But I never had to go deep into the subject to defend it.  This article, on the other hand, does a much better job defending the argument than I ever cared to.

List of cognitive biases

List of cognitive biases is probably the single most useful resource on practical psychology that I’ve seen in my life.

Cognitive biases are tendencies to think in certain ways that can lead to systematic deviations from a standard of rationality or good judgment, and are often studied in psychology and behavioral economics.

Although the reality of these biases is confirmed by replicable research, there are often controversies about how to classify these biases or how to explain them. Some are effects of information-processing rules (i.e., mental shortcuts), called heuristics, that the brain uses to produce decisions or judgments. Such effects are called cognitive biases. Biases have a variety of forms and appear as cognitive (“cold”) bias, such as mental noise, or motivational (“hot”) bias, such as when beliefs are distorted by wishful thinking. Both effects can be present at the same time.

This will take me a very long while to process …

On Impostor Syndrome

David Walsh shares some thoughts on an impostor syndrome.  I’m sure anyone in the tech industry can relate.  I certainly do.

“Impostor” is a powerful word but that’s how I have felt during all of my career as a professional web developer. I feel like I’ve learned every day of the ride but I feel like I’m way behind. I feel like people see me as something of an expert where I see myself as an accident waiting to happen. I’m a complete impostor. A fraud.

Apart from the honesty of his feelings, I like his ways of snapping out of it.  They do work for me too:

  • Look at your (hopefully decent) employment history and know that, on a basic level, you’re much more wanted than you’re wanted gone
  • Log onto the IRC channel of a skill you feel comfortable with and answer questions of those asking
  • Realize that people who consider themselves “experts”, and don’t go through waves of self doubt, are idiots that are so arrogant to not know what they don’t know
  • Remember the last time a non-developer friend asked you the most basic of computer-related questions
  • Perform any simple exercise in the JavaScript console
  • BLOG!  The worst thing that can happen is someone corrects you and you learn something out of it
  • Review your code and find little nits to fix

One other thing that helps me, is this bit by Joe Rogan:

He talks more generically about life, but I think it’s equally applicable to technology knowledge as well.

Programmer Interrupted

Slashdot runs a thread on “Are Remote Software Teams More Productive?“.  The original post links to a few research references that, unsurprisingly, show how expensive interruptions are to programmers, and how unprepared we are, as an industry, to deal with this problem.  I particularly liked a rather in-depth look at the issue in “Programmer Interrupted” article.

Like you, I am programmer, interrupted. Unfortunately, our understanding of interruption and remedies for them are not too far from homeopathic cures and bloodletting leeches.

Here are a few points, if the article is too long for you to handle:

Based on a analysis of 10,000 programming sessions recorded from 86 programmers using Eclipse and Visual Studio and a survey of 414 programmers (Parnin:10), we found:

  • A programmer takes between 10-15 minutes to start editing code after resuming work from an interruption.
  • When interrupted during an edit of a method, only 10% of times did a programmer resume work in less than a minute.
  • A programmer is likely to get just one uninterrupted 2-hour session in a day

And also this bit on the worst time to interrupt a programmer:

If an interrupted person is allowed to suspend their working state or reach a “good breakpoint”, then the impact of the interruption can be reduced (Trafton:03). However, programmers often need at least 7 minutes before they transition from a high memory state to low memory state (Iqbal:07). An experiment evaluating which state a programmer less desired an interruption found these states to be especially problematic (Fogarty:05):

  • During an edit, especially with concurrent edits in multiple locations.
  • Navigation and search activities.
  • Comprehending data flow and control flow in code.
  • IDE window is out of focus.

Overall, not surprising at all, but it’s nice to have some numbers and research papers to point to…

“I’ve never had a goal”

I found the blog post “I’ve never had a goal” over at Jason Kottke blog interesting.  There is a quote from Jason Fried, the founder of Basecamep (aka 37signals):

I can’t remember having a goal. An actual goal.

There are things I’ve wanted to do, but if I didn’t do them I’d be fine with that too. There are targets that would have been nice to hit, but if I didn’t hit them I wouldn’t look back and say I missed them.

I don’t aim for things that way.

I do things, I try things, I build things, I want to make progress, I want to make things better for me, my company, my family, my neighborhood, etc. But I’ve never set a goal. It’s just not how I approach things.

Also, Jason Kottke’s therapist advice:

For the longest time, I thought I was wrong to not have goals. Setting goals is the only way of achieving things, right? When I was criticizing my goalless approach to my therapist a few years ago, he looked at me and said, “It seems like you’ve done pretty well for yourself so far without worrying about goals. That’s just the way you are and it’s working for you. You don’t have to change.”

I myself don’t set goals either.  But I’m yet to reach that “you’ve done pretty well for yourself” part. Wink.

Self-driving cars’ unexpected side effect …

Slashdot links to a rather unexpected prediction for the time when we are all driven by the robot cars:

“At least one expert is anticipating that, as the so-called ‘smart’ cars get smarter, there will eventually be an increase in an unusual form of distracted driving: hanky-panky behind the wheel.”

Money vs. happiness

It’s been said many times that you can’t buy happiness with money.  The Washington Post runs the article about the research that begs to differ:

Not only did the extra income appear to lower the instance of behavioral and emotional disorders among the children, but, perhaps even more important, it also boosted two key personality traits that tend to go hand in hand with long-term positive life outcomes.

The first is conscientiousness. People who lack it tend to lie, break rules and have trouble paying attention. The second is agreeableness, which leads to a comfort around people and aptness for teamwork. And both are strongly correlated with various forms of later life success and happiness.