Tuesday, October 9, 2012

Code Defensively

What would it take to have a perfectly working program?

A program that never fails and does exactly what you want every single time would be amazing but not real.

This is impossible because perfect software doesn't exist and the faster you come to conclusion with that the faster you will stop wasting your energy and time.

Software will never be perfect; this is why there continue to be upgrades and bug fixes. Everything improves over time and it does so faster when more users see it and have the opportunity to provide help.

Now we know this we can code better by being more cautious, defensive, and anticipate the unexpected. The help of others will give your code more views to spot mistakes or critical logical errors that you may have overseen.

Overall, you may not have a perfect program but you can take the steps to ensure that it is close to flawless leaving room for upgrades and enhancements.

Friday, September 28, 2012

Old but Still Effecient

I am currently running on a Sony Vaio that I bought early 2006. I remember walking into Bestbuy having no clue when shopping for different laptops. I was told to compare the Ram, processor speed, or the amount of hard drive memory but this terminology was foreign to me. After purchasing what seemed to be the right one has been very effecient for the past 6 years.Recently, I do feel it is time to invest in a new computer as this one has been acting 'funky'. Also would like to be more up-to-date with all the new advanced technology incorporated in today's computers. I have found a lot of my interest towards a MacBook Pro for a lot of the reasons other than the price but I understand you are paying for quality. I just haven't understood how to navigate around the interface. 

Being a Computer Science major it is very important that I have the right set of tools to understand and develop programs. "The better your tools, and the better you know how to use them, the more productive you can be." This quote from The Pragmatic Programmer couldn't have said it better. To be most effecient in a work-environment I need to know what tools I am using and how to use them. 

Friday, September 14, 2012

The Beginning Processes of Programming

It seems that technology is always evolving and in this specific field we must learn to adapt to new environments and regulations. The technical world is very unstable in the sense that majority of our time is spent reorganizing, fixing bugs, enhancing, and re-expressing our work to insure the program is up to date. The chapter talks about duplicating knowledge in the specifications, processes, and programs that we have developed. Using the DRY principle will acknowledge the developer to be aware of duplication and solutions around this nightmare. Inadvertent duplication is very common in my opinion because we don’t realize that the information is duplicating. It shows a basic start/end/length code that the length variable is ambiguous because the length will certainly change if the start or end points change. SO we write a better code that has calculations of the variables and assign it as length.
Using prototypes is very common to car makers, architects, and even to code programs. Just like a car, developers we want to test new aspects to enhance it their program. We must build prototypes to analyze and expose any risk as a testing program. There are different user interfaces to can be considered such as drawing a mock-up on the program on a whiteboard or with an interface builder. When building these more detailed prototypes we might want to integrate tracer bullets.
Chapter 3 of Code Complete brings a strong point to light. A carpenter is always prepared differently when taking on a task. No matter the project, the preparation is altered to his specific needs before beginning. With a strong foundation and planning is sufficient then you will know success or failure. Prerequisites are a great risk reduction in saving costly projects that the company has to repay for because no testing was done to prevent the faulty error. It is very important when your program is successful and in perfect implementation to educate your bosses and coworkers about the development process. It is unfortunate to develop such high-quality software and no one knows the full potential of it or not understand how to implement it. Overall take the time to create prerequisites and choose your construction approach before building your program.