Needing to know the basics – part 1

At present we are in a great era of tools and resources to help us as developers achieve the goals of our projects whether they are work based, private or for the hell of it. We have editors, IDEs, code pens, validators, browser add-ons, frameworks and boilerplate libraries at our disposal. They give us ways of speeding up development, making it more efficient and just get the “boring” stuff done for us.

However it wasn’t always this way, when I first started out as a fresh faced graduate seeking to earn a living as a developer I was using ASP (why is it called Classic ASP? ASP.NET is .NET, if I say ASP to someone i haven’t had anyone of them mistake what i am talking about for .NET). I was writing ASP using VBScript, supplementing that with HTML/CSS and JavaScript. All of this was going on in Notepad and Macromedia Dreamweaver, a local IIS 5 install and a whole lot of trial and error!

If something went wrong with the server side code, you got most of the time a less than helpful error message, which meant you needed to debug it. So you found the area of the code that seem to be causing the trouble and started writing values to the page to see what was going on. Issue with the front end code? Open the page source and look at what was rendered, hop back to Dreamweaver and change it, back to the browser and hit refresh with everything crossed.

What did this teach me? It taught me to try and get things right first time, build small parts to test, test thoroughly when i made a change and most of all have a great deal of patience. It also gave me an appreciation for knowing what is going on in my code and why it was breaking. I had no tools to model my database, default my styles out across browsers, show me what properties are on my objects and make sure i hadn’t made a typo somewhere. I only found out once i started testing it in a browser.

I have encountered a few people over the years who love their tools and can use them very well, I love tools too and use them every day. However these few have found it very strange that i need to know what is happening in my code to a level that they take for granted because of a debugger here and an ORM there. Now like i said i love tools, the Visual Studio debugger is very powerful as are the Immediate window and ability to change values on the fly. They save time, they give you a way to poke around inside an application and understand it. Could i work without them at all and be nearly as effective though?

I would like to think that i could, i often practice it (with varying degrees of success!) when developing. Almost like a challenge to stand on my own and see how i cope.

In the next post, part 2 of this I look at more specific examples of needing to know what is happening “under the hood”.


  1. Great post..

    In the workplace, where the productivity of the business is more important that knowing how everything actually works, I think it’s fine to use tools & libraries. I totally agree though that this does not excuse you from knowing what’s actually going on underneath.

    I think this is what seperates casual developers from passionate developers. Somebody who is interested in what’s going on will take the time to learn what’s actually happening when they click that button in the IDE or make that call to the library. This can only make you a better developer.

    For example… If you want to use an ORM then go for it. But when you write something that generates a ten-page SQL query, you sure as hell better understand why and how to fix it.

  2. Pingback: Needing to know the basics – part 2 | Chris Hey

Leave a Reply

Your email address will not be published. Required fields are marked *