I follow many companies and organizations that push the envelope of technology. Today, a prominent example is Google. Since its founding in 1998, it has had a formative impact on the World Wide Web.
Google began with PageRank. Mathematically, this iterative ranking algorithm uses properties of the nodes (pages) and edges (links) in the Web to find relevant content. For instance, the most relevant pages given a search query. This has turned out quite well for Google.
Interestingly, it seems PageRank-like algorithms actually originate in the 1940s:
One crucial feature of this idea is that it requires an iterative approach to constantly re-evaluate the value of a page as the importance of others varies. Iterative ranking algorithms have since become an important part of network theory.
The article then traces PageRank-like algorithms back through the 20th Century, to 1965 and even 1941.
A fundamental mathematical pattern is discovered and explored multiple times over many decades, and eventually forms the basis for a information revolution.
I believe a software engineer, like any professional, should maintain a certain sense of philosophy regarding their profession. For example, what does it mean to be a “good programmer”? You might say it depends on who you ask:
The answer to “Who is a good programmer?” is always, “Who wants to know?”
- To a project manager, the programmer who hits every deadline (regardless of quality) is a good programmer.
- To a customer, the programmer who solves their problem quickest is a good programmer.
- To a business owner, the programmer who makes them the most money is a good programmer.
- To a PHB, the programmer who makes them look the best is a good programmer.
- To a journalist, the programmer who tells the best stories is a good programmer.
- To a junior programmer, the best mentor is the good programmer.
- To another programmer, the programmer they are most likely to want to go into battle with is a good programmer.
- To a blogger, the programmer who best fits the profile of the point he is trying to make is a good programmer.
Courtesy of Ed Weissman.