65.9K
CodeProject is changing. Read more.
Home

How You Can Get Ahead by Focusing on Principles and Not Technologies

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.33/5 (3 votes)

Nov 6, 2014

CPOL

3 min read

viewsIcon

6760

How to get ahead by focusing on principles and not technologies

Red-Queen

Are you running to stand still?

“Well, in our country,” said Alice, still panting a little, “you’d generally get to somewhere else — if you run very fast for a long time, as we’ve been doing.”

“A slow sort of country!” said the Queen. “Now, here, you see, it takes all the running you can do, to keep in the same place. If you want to get somewhere else, you must run at least twice as fast as that!”
– Lewis Carroll from Alice in Wonderland.

As web app developers, you are accustomed to the process of constantly having to learn and adapt to an ever changing technology landscape. It is obvious that to keep your skills relevant and competitive, you need to always be up to date with the latest technologies.

Why Should You Focus On Principles And Not Technologies?

If all you are doing is learning each new technology as it comes out, what you are doing is running as fast as you can just to stand still. You need to run faster than that!

So how do you do this?

By looking for the underlying principles and driving forces behind new technologies. Technologies are coming out at an ever increasing pace. If you pay attention, you will start to notice the underlying trends that drive this relentless innovation.

What do DCOM, CORBA and Webservices have in common? One similarity is that they are all RPC mechanisms. Each one progressively tries to be more and more platform agnostic. They are very different beasts yet they share a few core characteristics.

Since they share characteristics, you can safely assume that they will also have some of the same problems in your web app. How do you handle versioning of the RPC call? If you have a large distributed team, how do you limit uncontrolled growth of your remote APIs?

The more you focus on the underlying similarities, the larger head start you will have the next time something new comes along.

By all means, learn those new web app technologies but don’t just learn the new API, try and understand what makes this new solution unique (if anything). Try and see how this new solution is just a re-incarnation of a previous one. Over time as you do this, you will gain perspective.

Principles like information hiding, decoupling, simplicity and the like are universal and change very slowly if at all. Technologies like Microsoft Application Blocks, Ruby on Rails, the latest IoC container change at a break neck pace.

Some Practical Tips

Here are a few tips to keep in mind as you learn a new technology.

Try to answer these questions about each new technology you learn:

  • Which older technologies was this inspired by?
  • Which problems is it trying to solve?
  • Which other new technologies are also solving the same problems?
  • How are all these technologies similar?
  • How do they differ?

Then try to complete this sentence in as few words as possible:

Just like <list of old technologies> <new technology> is <main purpose they all have in common>. Unlike previous attempts <new technology> is <what it is trying to do differently> by <how it’s doing it differently>.

Conclusion

Any good web app developer eventually starts seeing these trends just based on depth of experience. You can get a head start by actively paying attention.

Are you happy with running to stand still or do you want to get ahead of the pack?

The choice is yours.