Monday, December 13, 2010

Visual C# 2010 and ASP.NET 4.0 Bootcamp, Day 1

I'm exhausted. I had forgotten how much work it is to learn a new skill set, especially one as technical as software development. I started out the day with anxious anticipation: would I be the "Star Student" or the "Dunce" of the class? Would I ask seemingly stupid or obvious questions? What would happen if I answered a question incorrectly in front of the class??? With all that running through my head, I arrived at the training site and was met with not one, but two enormous textbooks (I'm not exaggerating here, they are both the size of college-level chemistry books) among the other sundry class materials.

My courage withered as I lugged the two giant tomes to my desk to await my fate and the arrival of the trainer. As other students began to file in, I began to question them as to their background and their reasons for taking the class and was met with more disappointment. Most of the other students in the class were already developers (mostly Java or data), they just weren't familiar with the .NET framework, C#, or Visual Studio 2010, and were only attending to enhance their own development toolkit. My mind began to conjure up an image of the .NET framework, only in my head it looked not like a development tool, but like a giant gallows with my name on it.

Just as I was beginning to think I should leave the class and ask my advisor if they had a "Beginning Software Development for Dummies" course, the trainer arrived. After the obligatory introductions, he began to review the syllabus...and I breathed a deep sigh of relief. 90% of the material we were going to cover during this first day I already understood, at least at a high level. The sun was rising behind that gallows I had conjured up, and it was beginning to take the shape of an elegant software tool that would greatly simplify my approach to software development.

After I got over my harebrained ideas of giving up before I even started, the day improved dramatically. We spent the first 7 hours discussing the basics of software development: creating a project in VS 2010, how to write basic code in C#, how to comment code, how to debug an application, how to create a class, how to declare and call a method, how to add fields and set them as either public or private to enable or disable direct access, how to get/set a property to access a private field, how to declare a variable and how to use  and convert variables in your code, how to create and use an array, how to handle exceptions using the try/catch/finally code block, and how create types. I'm sure I missed several large topics in there, but I think my point is clear: we covered a lot of material today, and I feel fairly confident that I understood at least 90% of it.

The last hour was spent doing "lab work:" proving out what we had learned during the lecture and discussion by writing code and designing simple UIs. My defining moment of the day happened when I was able to create an application that calculated the square root of a number in two different ways: the .NET Framework Math.Sqrt method using the Double data type, and the Newton Method using the Decimal data type. In doing so, I was able to prove that, although the Decimal data type has a size double that of the Double data type (16 bytes to a Decimal versus 8 bytes to a Double), the added accuracy of the Decimal type far outweighs the reduced range and increased memory requirements. In this app, I was also able to verify user input in the form of both the data type (if the user entered alpha characters, the app produced a message asking them to input either a Double or a Decimal) and whether or not the value entered was positive or negative (if the user entered a negative number, the app prompted them to enter a positive one).

At any rate, enough geek speak for one evening - time to let my brain rest in preparation for another day of intense learning tomorrow!

No comments:

Post a Comment