Complexity and Dealing with it in Software Development

If you’re programming, you most likely know that problem. You try to solve a problem, and deal with some sort of library, framework or concept you haven’t used before. Inevitably, you fail to get it working right of the spot and get frustrated. This is where people in my field are every day, as we’re using new technologies, frameworks and concepts all the time.

701 - Puzzle - Seamless Pattern
There of course isn’t a precise way to solve such problems. But the only sure way to approach this is to make sure you grasp the underlying concepts. If you’re building a web application with some client side jQuery goodies loading stuff from your struts2-server, the first step isn’t to learn about Struts2 or jQuery. Make first sure you understand:

  • how a HTTP-Request works
  • what GET and POST means
  • that HTTP is stateless and what that means to your application
  • what JavaScript is and where & how it is interpreted
  • what AJAX is besides a nice word you heard often
  • how a server works
  • what request and response are
  • what a servlet is

Connect all the information

After you have understood the basics, you can go on and understand the higher level stuff. This is what most of us learns while attending a university, but you never have understood everything and you’ll never stop hitting new fancy acronyms and technologies if you’re into programming. But for every acronym you see and that you don’t understand, try to make sure you at least read the Wikipedia page before you try to do some fancy coding by copypasting things you found via Google – because if you don’t understand what you’re using just now, you implemented a black box that might or might not work and that you didn’t learn anything about.

When you approach new concepts, frameworks and technology in that way, you can build up a solid foundation of knowledge that get even more solid every time you learn another new technology that bases on stuff you already know, assuring to yourself that what you learned before is correct. Fast and dirty is slower in the long run. And as such, you shouldn’t be concerned that something takes some time to understand – because when you don’t really understand it, then you won’t be able to fix the issues that will occur anyways. And it’s a long way from zeroes and ones to AJAX.

Creative Commons License photo credit: Patrick Hoesly

Related Posts:

, Posted Tuesday, January 18th, 2011 under Programming.

Leave a Reply