Click here to Skip to main content
15,885,914 members
Articles / All Topics

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

Rate me:
Please Sign up or sign in to vote.
4.33/5 (3 votes)
6 Nov 2014CPOL3 min read 6.7K   3  
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.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Architect Allan Gray
South Africa South Africa
Since I was young I always preferred teaching myself to learning from a structured syllabus.

This didn’t always make me popular with my teachers. I guess sleeping through the whole of Romeo and Juliet in an English class doesn’t make a great impression. On the other hand I formed an obsession with always researching something.

Over the years these obsessions would jump from topic to topic ranging from physics to lean manufacturing. Photography to functional programming. Cognition to physiology and strength training. Kitesurfing to fire poi. My obsessions may be random but are always led by my curiosity.

Over time I noticed that I was forming connections and finding patterns in unrelated fields and using knowledge I gained from studying the rudiments of things like cognitive psychology when trying to figure out why I was seeing certain behaviours in the teams I was working in.

I'm interested in communicating those underlying principles and connections in a way that is useful to others.

I have been working as a programmer, architect and manager for the last 12 years so there is a strong bias to helping junior programmers and software development teams improve.

I focus on underlying principles and not technologies.

Comments and Discussions

 
-- There are no messages in this forum --