Visual Studio 11 is Gonna Rock

Visual Studio 11 Improvements

Because I spend such a large part of my workday in front of Visual Studio, I see any improvements to the environment as great as improvements to the C# language or .NET framework itself.

VS 2010 was a big step up in my opinion from previous versions, and it looks like VS11 is gonna set the bar even higher in terms of overall "slickness". I think the fact that Cut, Copy, and Paste were still on the default toolbar for VS 2010 was just ridiculous, never mind a bunch of other icons that hardly ever got clicked on, it's definitely time for Microsoft to focus on developer tool usability, and focus they have.

<blockquote>Feedback relating to the command placement reductions has been overwhelmingly positive. Developers have shared stories with us of discovering what they perceive to be new valuable features that are in fact pre-existing features that have only now gained their attention following the reductions. For example, during usability studies with the new toolbar settings, many users have noticed the Navigate Forward and Backward buttons and have assumed that this was new functionality added to the product when in fact this capability has been in the product for a number of releases.</blockquote>

Yep, that's the difference hiding clutter can make to how people perceive your product.

Oh, and the "dark" and "light" themes for the actual environment, brilliant.

The Best Way to Prepare for Microsoft Examinations?

(For more info on the .NET 4 exams you might want to check out http://blogs.msdn.com/b/drnick/archive/2010/03/01/net-4-certification-exams.aspx)

What is the best way to prepare for Microsoft's MCTS certification
examinations? The whole train of thought is mainly inspired by this
thread.

http://www.velocityreviews.com/forums/t651438-preparing-myself-for-exam-70-433-and-70-451-a.html

According to the thread, there are two different ways of looking at
it. One is to prepare for the examinations specifically by grabbing a
Study Guide and prepping for the exam (and maybe hitting a few brain
dumps at the same time), and the other is to become as proficient as
possible in the specified technology, and then just check the exam
objectives for areas you don't know.

Let's look at the idea behind the examinations, or the reason for
their existence in the first place.

Microsoft's description that I got off their MCTS homepage is: 

These certifications are designed to validate your skills on
the features and functionality of key technologies.

Most people know that Microsoft recommends that you already have a
reasonable amount of experience in the specified technology before
studying for and attempting the examinations. So, to me, it already
seems like Microsoft advocates the second methodology.

I can't say that I disagree.

Ever since I started learning to understand the technology itself, and
not just learning to pass the exam, my test exam scores have gone up
significantly. I think the point is that Microsoft's exams are written
by professionals. This isn't high school, they're not interested in
just seeing a good score, they'd rather you had a decent understanding
of their software.

In fact, I checked the topics of some popular .NET books, and the
topics covered by the examination, and there is a large overlap, which
indicates to me, that first of all you don't even need to go through a
"study guide" per se, but just check the exam objectives on their
website to brush up on topics you don't understand. Second of all, the
examinations test a lot of real world skills, things that a lot of
professionals in the industry think you should know as well.

In fact it makes me a lot keener to grab something like Pro C# 2010 And The .NET 4.0 Platform 5th Edition instead of waiting
for Microsoft Press' Official .NET 4 Study Guides.

MCTS Self-Paced Training Kit (Exam 70-515): Web Applications Development with Microsoft .NET Framework 4 Book/CD Package (Mcts 70-515 Exam Exam Prep) just came out, but I think I'd rather use something like
that as a final prep resource to make sure I know all the objectives
inside out.

 

Qualified Vs Unqualified

I've heard programmers argue about it a dozen times. Which is better,
programmers that are self taught, and know how to figure things out,
or college grads with a degree in computer science that are
"qualified" for the job, in the HR sense of the word?

If programming is a practical skill, doesn't it make sense that you
get good at it by programming?

Right off the bat, I'm just gonna go ahead and say that in my opinion,
there isn't an answer to that question.
Let's put it in another context, for arguments' sake, two businessmen.
One is an entrepreneur who started his own company with no
qualifications, and the other is a manager at a medium sized company
who went to business school. They're about equally good, and earn
roughly the same amount.

Wouldn't it be silly to say that the first guy isn't as good as the
second, just because he isn't qualified? And wouldn't it be equally
silly to say that the second guy isn't as good as the first, that he
doesn't have as much "real world experience" because he spent a lot of
time in college?

Now take the same analogy, and apply it to doctors. Doesn't quite work
does it? When the "self skilled" doctor brings out the leeches, you
kinda get the feeling that maybe a qualification isn't such a bad
thing after all.

The problem is that, the doctor analogy doesn't seem to carry in the
world of programming. Most programmers know a great programmer without
a degree or with a lower level qualification who can code twice as
well as another guy with a degree.

To me, this completely invalidates both sides of the argument. The
deciding factor is neither the qualification nor the experience.

(I'm not going to go into the whole discussion about how a computer
science degree doesn't really cover programming, other than to say
that at the very least it does teach you to think in a problem solving
kinda way.)

I can see the benefits of being well schooled. Its only since I
actually started going through course books and online learning
resources that I found myself thinking horizontally. i.e. the more you
know about the language/platform the more likely you are to choose the
right tool for the job. At times its great to just start from scratch,
Google the problem for a code snippet, and learn piecemeal, but if
that's all you ever do, then you're always going to be a "piecemeal"
programmer, hacking together your own StringDictionary when one
already exists.

To be a good programmer you need both practical, on-the-job skills,
and a theoretical conceptual understanding. It's just the way I see
it, but if you got both of those, chances are you're on fire.

The best programmers, are those who want to be great programmers.
Whether its a rails hacker building sites out of his home office, or a
corporate .NET developer working with Windows Services, just doesn't
matter.

The best programmers are those that are always writing cool little
apps to do something . Those who love reading blogs like The Old New
Thing , Coding Horror, Joel on Software, and Hacker News. Those who
love finding the best solution to the problem. Those who spend their
weekends reading something from the Pragmatic Bookshelf.

The best programmers are those that love crafting good, efficient code.

A Programmers Reading List for 2011

In no particular order, My 2011 Reading List:

C# in Depth
Simply Javascript: Everyting You Need To Learn Javascript From Scratch
jQuery: Novice to Ninja
The ASP.NET 2.0 Anthology: 101 Essential Tips, Tricks & Hacks: 101 Essential Tips, Tricks and Hacks
Foundations of Computer Science
Fundamentals of Business Information Systems
Accelerated Silverlight

Its safe to say that every year, and more like every day, my goal is
to grow as a programmer. I have read a few books over the last few
years, surfed a lot of great sites (StackExchange, CodeProject,
ASP.NET among my favorites), and spent a lot of time writing code.

Along the way I've also picked up a lot of great books, some of which
I have only touched once or twice to learn a particular skill or piece
of code. While some may say that this is a great way to learn
programming, I've never really felt particularly proficient in any
specific one of these technologies. So, whereas my goal for 2010 was
mainly to learn a little bit about everything, my goal for 2011 is to
learn a lot about a few things in particular.

If that's my goal, I need a plan. Which is where all my recently acquired books come in.

I have a bunch of programming\computer books I acquired over the past
year or so to learn various things, and I'm gonna go through them in
depth, to get well acquainted with the subject matter. Hear what I
said? Not just read the books, but become relatively proficient and
have an understanding of both the theory and practicalities behind
everything.

I've done research on all of them, so I know that they're reasonably
good books. Some of them are actually books that form part of my
Bachelor of Computer Science degree that I am studying part-time
(cause I work all day).