|
To begin, let me qualify my catchy title: I do not believe
there is any real "Fast Track" to becoming competent as a .NET
Developer, and I think you should be wary of anyone that claims to offer
one. This is a huge undertaking for even the most experienced developer,
there are literally thousands of base classes available in the Framework,
and every developer has a different perspective on what it is they hope
to accomplish with their "personal learning curve". What I can
do, however is share the track that I have taken, why I have done it,
and hopefully that can serve as a guideline for others.
First, let me try to quantify my own approach: I have
always been more or less "self-taught". I don't like to sit
in classes, I find they (usually) tend to hold me back. I prefer to get
sample code, tutorials and books, prepare my materials, set my own learning
objectives, and design my own goals and curriculum. Others may respond
much better to a structured classroom-type learning environment, and if
that sounds like you, then great. Just be aware that the comments I make
here are coming from my particular perspective.
I was one of the attendees at the first .NET PDC in
Orlando in 2000, and I received and installed a copy of Visual Studio
.NET Beta 1. So I have some 13 months of experience with this. However,
due to a combination of factors (lack of time, and especially the expectation
that it might be a good idea not to get too heavy into it until Beta 2)
I didn't really spend that much time with .NET until Beta 2 was released
in August. Up until that time almost all of my development experience
had been with VB and ASP, with a pretty good background in Javascript
and some C++ and Java. I also have a good solid background with XML/ XSLT.
Again, almost all of this is self-taught.
My overall objective was, and still is - to become as
competent as possible using .NET as a web development application platform,
with the development of components and custom controls being a close second.
I really have very little interest in Winforms, services, etc.
YOUR
FIRST DECISION: What Language do I want to use?
My first decision was that if C# was good enough for
the Microsoft guys to put over a million lines of code into writing ASP.NET,
then it was OK for me. Although I have a lot of experience with VB, and
much less experience with Java and C++, my early investigations of VB.NET
told me that it was so different from "classic VB" that I would
be better off just forgetting about VB.NET and concentrating on learning
C#. I still feel comfortable - even relieved - that I made this decision.
C# as a language is a lot more compact (less verbose). In fact, I can
tell you that I've learned more about C# by converting VB.NET example
code into C# than any other way! Syntactically, C# is no more difficult
to learn than say, Javascript. All I can say is that if you have this
"luxury" (being able to decide on focusing with one specific
language) I strongly recommend C# as the .NET language of choice. This
language was designed from the "ground up" with the .NET platform
in mind. If you are already a C++ developer, you will miss very little.
The hardest thing is not the language itself, but rather the huge amount
of base classes and functionality in the .NET Platform that you can access
with it.
YOUR SECOND DECISION:
What kind of applications will I focus on?
in my case, I knew from the outset that well over 90
percent of what I would be doing in .NET would be what I was already doing
- building IIS web-based solutions and applications with either controls
or components that interacted with these applications - whether it was
database code, XML - based code, or some other process. So it was obvious
to me that I didn't need to waste my time with learning materials that
showed me examples of console applications or Winforms based applications.
I needed books and materials that focused on ASP.NET.
YOUR
THIRD DECISION: What resources will I use to achieve my goals and where
will I find them?
This can be a very confusing issue. The
first books that came out on .NET were incomplete. They were rushed out
to be there "first". Virtually all of them assumed you didn't
have the Visual Studio .NET IDE - that you were just using the command
line compilers and tools that came with the free .NET Framework SDK. Fortunately,
now that Beta 2 is well underway and GOLD is due for developers before
the end of 2001, there is a constantly growing list of books to choose
from. Unfortunately, you can spend a lot of money surrounding yourself
with books and be disappointed easily. After reading the first ASP.NET
books (Wrox's ASP.NET book which was distributed at the 2000 PDC, as well
as Christophe Wille's "Presenting C#") and having also purchased
another early Wrox title on C#, I knew that I needed to be extra careful
in selecting books that got me where I wanted to go. My final selections,
which I feel very comfortable with, were "Professional ASP.NET (Wrox),
and "Professional C# (Wrox). These are both 1300 pagers and I expect
they will keep me busy for a long time. In fact, I do not expect to be
purchasing any new .NET books for the next 6 to 12 months at least, because
90% of everything I need to know (at least to get to "first base")
can be found in these two titles. The "Professional" designation
that Wrox seems to be fond of attaching to these titles can be misleading
-- they are "Professional" level in that they are indeed one
grade above "Beginner", but that's about all. The C# books covers
the language and much of the base class functionality well. This is your
core C# language book if you want to get into ASP.NET, even though a considerable
portion of it does not cover ASP.NET --only two small chapters on ASP.NET,
and they are quite sparse. The ASP.NET book covers in much greater detail
the inner workings of the ASP.NET functionality, and as an added bonus,
most of the code samples in it are in VB.NET, so you'll get plenty of
practice translating them into C# if that's your chosen language. It covers
coding issues, the Page class, codebehind, Caching, custom controls, Server
Controls, Web Forms, Data Access, XML, Web Applications, configuration
files, and much more. Again, these are the books I selected, and why.
You may be able to do better. Bookpool.com has both of these at ridiculously
low prices. Alan Troelson has a good book, and Dan Wahlin has one that
focuses on XML in .NET.
The other resources that I use are as
follows:
1) Download ALL the free code from every
.NET book from every publisher, and examine it carefully. It costs you
nothing!
2) Start reading the newsgroups and mailing
lists. Two of the best newsgroups resources are the Microsoft groups at
msnews.microsoft.com, and also at developmentor.com. I've had a number
of difficult questions answered courteously by folks who are smarter than
me, and I've also taken the time to help out some other people with answers.
3) Visit the .NET oriented websites. Besides
our own (www.eggheadcafe.com) which has a growing list of .NET -- related
resources and an active discussion forum, there are at least twenty other
sites from Dotnetjunkies.com to gotdotnet.com that have gobs of articles,
sample code and other resources.
4) The best resource of course, is yourself!
In my case, my employer doesn't really have much of a current focus on
.NET, although it is "on the horizon" and my bosses are aware
of both my interest and growing competency in this area. So if you (like
me) are in a situation where you don't really "have to learn"
.NET, then the motivation and rationale has to come from inside YOU. Make
it your business to set realistic learning and competency goals, formulate
a plan of action to get there, and stick with it.
5) And last but not least, try to get
yourself a programming "buddy" if you can. I'm fortunate because
Robbe Morris, the co-developer of our eggheadcafe.com site, has just as
much if not more enthusiasm than I do for the .NET Platform. It's nice
to be able to bat around your ideas and questions with somebody, to share
coding styles and approaches. There are also a couple of people I work
with who are starting to get into .NET.
Peter Bromberg is an independent consultant specializing in distributed .NET solutionsa Senior Programmer
/Analyst at in Orlando and a co-developer of the NullSkull.com
developer website. He can be reached at info@eggheadcafe.com
|