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.
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”.