Some people start out in life able to solve hard problems. Others cannot seem to do it. I believe that intelligence is not innate, but few people know how to work on hard problems. Some may learn by luck, or by observing smart people.

Here are a few things I was able to learn over the years:

  • Use your intuition, but keep it in check. Hard problems often require that you question every single assumption.
  • Start small and do not stare directly at the nasty problem. Always focus on an easy non-trivial next step.
    Trying repeatedly to solve a hard problem in one pass can be depressing, so get small victories. Try to learn something new about the problem every day.
  • Write a lot. Describe your false starts and explain why they are false starts. Doing so has benefits: you are less likely to go down these paths again and writing tends to bring forth new ideas. Do not worry about filling up notebooks: paper and ink are cheap.
  • Stand on the shoulders of giants: repeatedly go learn about related problems using wikipedia or Google Scholar. Jot down any result that may help you later.
  • Computers are very powerful assistants: use them to plot your problem or to test out theories quickly. It is sometimes amazing how much you can understand by looking at a plot.

My friend Sébastien Paquet got me upset. He sent me a link to a post by David Crotty. What David says is that Wikipedia and blogging, the whole Web 2.0 fad, is not and will not have an impact in science. (Update: Not quite what David wrote.)

Ok David. I can respect your opinion on the matter. But it gets ugly when you bring Linux into the fold:

But when you step away from the enthusiasts and speak with the majority of scientists, you find out that they don’t have much interest in using many of these new technologies. The whole situation reminds me quite a bit of what one saw online regarding the Linux operating system 5 to 10 years ago. You saw great enthusiasm, and predictions that Linux was soon to take over the computing world. The rest of the world shrugged, and went back to their Windows computers to get their work done.

Back in 1998, using Linux required a fair amount of faith. Getting Linux running smoothly on a PC without help was matter of days. Few companies used Linux for job-critical applications.

In 2008, the Linux market represents $35.7 billion. Unless you manage to avoid using Google, you use Linux every single day. Walmart sells Linux-based PCs.

David, you have chosen a terrible analogy. Linux has succeeded beyond any sensible expectation. Nobody predicted that Linux would kill Windows. Linux was not out to kill Windows.

Nobody is predicting that blogs will replace journals. Scientists do not blog because they think it is the new media that will replace conferences and journals. However, blogging has and will continue to have a serious impact on science.

Maverick Woo sent me an email to let me know that Google does roman numeral arithmetic.

I can’t help but imagine the discussion between between the Google engineer and his boss:

  • (Engineer) Hi boss! I plan a new feature for our search engine… roman numeral arithmetic!
  • (Harvard MBA) What a great idea! (Thinking to himself: I need to replace this guy.)

As a basis for comparison, it seems that Yahoo! does not have this feature.

Beside my blog’s captcha, where else do you ever use roman numerals?

It looks like Intel is trying to push parallel programming. No doubt many colleges are going to keep surfing on the parallel-programming hype — to predict a new surge of interest in Computer Science. Alas, there is no upcoming multicore revolution in computer programming.

  • For a large fraction of enterprise problems, the bottleneck is at the database level. The ubiquity of Web servers and distributed databases (see CouchDB) imply that many such problems are already parallelized. Database techniques like partitioning have been around for years to help you parallelize your databases. This blog runs on a server with several processors, and it has done so for years. Nothing new on the horizon.
  • MapReduce and Hadoop help you parallelize many of the remaining hard data processing problems without having to mess with threads, locking and synchronization.
  • Many hard problems are memory-bound: they are hard because all of the data does not fit in memory. If your problem is memory-bound or IO-bound, throwing more processing cores at it may not help at all.

I have stated for a couple of years that storage, not processing power, is changing Information Technology. What is most amazing is our ability to record almost every single bit of information, and never have to delete or forget anything. On this topic, see my posts One More Step Toward Infinite Storage, Solid-state drives: when external memory becomes as fast as internal memory and What is infinite storage?

The truth is that we are not very good at dealing with large quantities of data. Anyone knows what to do when handed 50 terabytes of raw data? Few of us have the required skills to manage and leverage extremely large databases. Those will be the valuable skills in the future.

Readers of this blog who think that I am a bit mad would do well to go read the latest Cringely:

(…) reputation still holds in education, though its grip is weakening. (…) MIT threw videos of all its lecture courses – ALL its lecture courses – up on the web for anyone to watch for free. This was precisely comparable to SGI (remember them?) licensing OpenGL to Microsoft. What is it, then, that makes an MIT education worth $34,986? Is it the seminars that aren’t on the web? Faculty guidance? Research experience? Getting drunk and falling in the Charles River without your pants?

Compare this quote with my posts The 2 myths that gets students into ivy-league schools, Who needs your lectures?, and It may not matter all that much where you go to college.

Yep. Not long ago people bought European electronics because it was supposedly better. Now? These days are long gone.

Next Page »

Powered by WordPress