Wednesday, December 28, 2011

More free learning resources

Back in October, I posted an entry which listed out many of the awesome Ruby and Ruby on Rails tutorials and resources I had found online, and I felt since I should update with some additional resources I’ve found for C#, ASP.NET, JavaScript, jQuery and other techniques.

First, Here are a few sites I’ve found specifically for C#:
On Microsoft’s MSDN site, you’ll find this great collection of C# tutorials. Most of the basics are covered here and this will get you started quite nicely in your journey to learn the C# language. A similar set of tutorials can be found here, on the C# Station website. The one resource I can’t recommend highly enough is this nice collection of videos on Microsoft’s Channel9 site by Bob Tabor of LearnVisualStudio.net – I found Bob’s teaching style excellent, and the videos moved along at the perfect pace for me. Just a note – I found streaming these videos to be quite slow for me, even with my fast connection, so I downloaded the .wmv versions, which is nice to have, as I can save them locally for future reference.


Once you get the language basics down, it’s time to move onto applying those skills to a framework. An excellent place to start for ASP.NET is right on the ASP.NET homepage. From there you can find excellent tutorials such as the Movie Database Application Tutorial, and then the more advanced MVC Music Store Tutorial. I found both of these excellent and they taught me a lot about the ASP.NET MVC framework. There is also the NerdDinner tutorial which at the time of this writing is still on MVC 2, but there is supposed to be an updated tutorial coming soon to port it to MVC 3. Be sure to check out the other MVC tutorials as well as the free videos from Pluralsight on the ASP.NET MVC homepage. Also, don’t forget to further explore the MSDN site because there is  a lot of information available to cover a wide range of topics from general .NET Development, C#, “How Do I?” videos and Test Driven Development.

There is more to web development than just learning a language such as Ruby or C#, or framework such as ASP.NET MVC, Rails or Sinatra. There is also JavaScript, jQuery CSS, HTML, XML and more. A great place to start is http://www.w3schools.com/ – you’ll find tons of general Web development oriented information, tutorials, exercises and even quizzes there. Also be sure to check out the Mozilla Developer Network JavaScript Guide as well. The jQuery JavaScript library is a “must-learn” as well. Besides the jQuery website itself, be sure to check out http://www.learningjquery.com/ and these free videos on JavaScript and jQuery at learn.appendto.com. I have also found jspin.com to be really great for tinkering with JavaScript right in my browser.

Although the purpose of this post was to share free resources, I have also purchased the following books I have found helpful:

Friday, December 9, 2011

Upgrade Time

My home PC is about 2 years old now – it wasn’t exactly cutting edge when I built it, but it’s been getting the job done. It’s a AMD Phenom II Quad Core that I’ve been very pleased with so far overall. I’d toyed with the idea of some upgrades to help me get another year (or more) out of it, and finally bit the bullet on one today.

I noticed that RAM is unbelievably cheap (at least the DDR3 variety my machine needs). I was able to pick up 16GB of quality Corsair RAM for under $80 – you just can’t beat that. I use virtualization quite a bit, and I was very limited by the 6GB that was my current config. I’m sure that I will have more than enough breathing room with 16GB in there.

The other upgrade I’ve been thinking about is an SSD. I’m still really up in the air on this one. You look online, and read what many are saying, and it’s like they are the absolute holy-grail of computing, but I’m simply not convinced. Let me tell you why.

First, *yes* machines with an SSD as a boot drive do boot incredibly fast. But you know what? I very rarely reboot my machine. Perhaps I’m in a minority there, I don’t know. Yes, applications launch faster, but you know what else? Windows 7 Superfetch does an excellent job of keeping frequently used files cached (16GB of RAM can only help that even more), and most of my applications (including Visual Studio) start up nearly instantly. The only place I think I would see a dramatic improvement would be games, but to purchase an SSD with the capacity I need for my OS, major apps and all of my games would simply be out of my price range right now. I would rather hold off until my next machine. I am just not convinced I would see that much difference. I tend to just keep the apps that I use the most open anyway (again, 16GB of RAM is going to help with that even more), and I’m not just sitting here launching applications over and over again just to admire how quickly they launch.

The other factor, quite simply is complexity. I’ve tried reading through SSD reviews at Anandtech and to be quite honestly, even for an old hardware buff like me, they make my eyes cross after a while. They all seem to have different strengths and weaknesses, and there seems to be some compatibility issues with Windows 7 (SandForce3 controllers causing BSOD’s, etc). Also, there seems to be quite a bit of care, feeding and tweaking to get the best results. When it all boils down, I’m not sure all of that (including repaving my machine I just rebuilt on a Windows platform) would be worth all of that considering I have one of the fastest spindle drives already available in there.

I might be wrong, and the right SSD could make me wet my pants with excitement. I’m just going to wait until my next machine to find out.

Sunday, December 4, 2011

Taking the next step…

I am a learner by nature. This has even been confirmed the StrengthFinder tests. I not only love to learn new information (who doesn’t?), I love the very act of learning. I always have. It is something that is hardwired in my brain.

Since I started working with computers some 10 years ago (really? Gosh! I feel old just saying that), I’ve wanted to become a developer. In those years I’ve dabbled a bit with Visual Basic 6 (there I go making myself feel old again), Perl and Python (from my Linux stuff), and I even fixed a line of code in a C program and pushed it back upstream in Debian once. I started trying to learn C# and ASP .NET about 3 years ago, but abandoned the idea. I just had too much going on, and I simply wasn’t ready.

A lot has happened to me in those past 3 years. I started by stopping smoking, and then losing over 50% of my body weight, then I started running and just recently finished my first half-marathon. It was the weight loss process and starting to enjoy the sport of Running that taught me a lot about myself. It taught me that I can do *anything* I want to do, if I want it hard enough.

I decided a few months back that I wanted to learn Ruby on Rails. I want to change the direction of my career. It’s not that I don’t enjoy what I do, because I enjoy my job as a server admin very much. I simply want to make things happen – not just simply manage the computer that others use to make things happen.

I did very well catching on to Ruby on Rails. What was different than my previous attempts at learning a programming language and framework? I think part of it was finding just the right tutorial with Michael Hartl’s Ruby on Rails Tutorial. Another part was the fact that I had the will to follow through, followed up with the act of actually following through with it. It’s simply not something I was prepared to do a few years ago.

I’m not by any means a Ruby on Rails expert now. To put it into perspective, let’s look at my swimming skills. If you walked up to me and ask the question “Do you know how to swim?”, my response would be “No, but I know how to not die”. Which means, I don’t know all of the proper techniques that go into making one a swimmer, however I know how to use basic skills to keep my head above water and not drown. Am I a swimmer? No, but throw me in a lake and I won’t drown. That is kind of where I’m at with Ruby on Rails. I don’t claim to be a RoR expert, but I think if I was thrown into the deep end of a pool of code, I could find my way to the top and come out ok.

This is where the next step comes in. I also decided to loop back to the whole ASP .NET thing. I decided to see if I could use some of those basic “swimming” skills I learned in the Ruby on Rails pool to also swim a little in the ASP .NET pool. Since I *do* want to become a “Developer”, I think the more skills I have, the more marketable I can become. Right? Knowing both will only help making applications built in each of the frameworks communicate with each other better. Right? I hope so. In any event I’ve devoted some time to learning a little about ASP .NET this weekend, and I do think I can “not die” in that pool also. It seems a lot of the basic concepts of MVC I learned in Ruby on Rails are going to translate quite nicely to ASP .NET MVC. I’m really excited to be taking this next step in my life, and finally following a dream and passion I’ve (somewhat secretly) had for quite a while.