Coding Horror

programming and human factors

Keeping Up and "Just In Time" Learning

Do you ever feel like you're buried under umpteen zillion backlogged emails, feeds, books, articles, journals, magazines, and printouts? Do you ever feel that you're hopelessly behind, with so much new stuff created every day that you can never possibly hope to keep up?
Well, you're not alone.

Via SecretGeek:

  • You do NOT have to refactor all your code.
  • You do NOT have to keep up with the latest news from microsoft, and know everythnig there is to know about longhorn, whidbey, avalon, XAML, indigo and star wars III.
  • You do not have to have perfectly de-coupled tiers in your technology independent SOA software.
  • You do not have to comply to every standard, achieve the perfect balance between maintainability and performance. Usability and familiarity.
  • You don't have to do "first things first every day"
  • You DO NOT have to memorize and understand every patten the gang of four have catalogued.
  • You do NOT have to read every technical blog, print out every technical article and learn every technical thing there is to learn.
  • You are beautiful just the way you are.
  • You are brilliant, interesting, wise and fun to be around.
  • You rock.

Via Kathy Sierra:

I remember when the first public release of Java came out, and it had 200 classes. You could fit the entire class library in the same space as Miss January. But then 1.1 came out and the API more than doubled to 500 classes. It no longer fit on a centerfold – but you could get it on a wall poster. With 200 classes, you really could master the entire API. With 500, it took some effort, but you could at least be familiar with just about everything, given enough time. By Java 1.4, the library had swelled to 2300 classes. And today? It's something like 3500 classes just in the Standard Edition – not including the mobile and enterprise extensions. You could wallpaper an entire room with the class library.

By the year 2000, it had become impossible for even a Sun Java engineer – someone creating the API – to be familiar with everything in the standard library. Yet the rest of us were feeling guilty. Like we were falling behind. Like we weren't hardcore Java programmers.

It's time to let that go. You're not keeping up. I'm not keeping up. And neither is anyone else. At least not in everything.

Kathy has a few suggestions to combat Information Anxiety:

  • Find the best aggregators
  • Get summaries
  • Cut redundancy
  • Unsubscribe from as many things as possible
  • Recognize black holes (gaming, slashdot, etc)
  • Pick categories for balance; include some from outside your main field
  • Be more realistic about what you're likely to get to; throw the rest out
  • In anything you need to learn, find someone who can tell you what is
    • Need to know
    • Should know
    • Nice to know
    • Edge case
    • Useless

I don't worry about keeping up with the Joneses; I focus on the specific problem at hand. I take a "Just In Time" attitude to learning new technology. I can't possibly learn everything. But I do try to learn enough to know what the new thing is, and when I might need it. Most of the time, I don't need it. And when I do, I can learn it Just In Time to help me solve the current problem I'm working on.

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Overflow and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here: