Microsoft Most Valuable Professional

Chris Pietschmann

An MVP From Wisconsin



.NET Community: Learn The Current State Of The Platform Before Deciding On Its Future

There has been some discussion lately in the blogosphere and on DotNetKicks around the subject of "What is wrong with the ASP.NET Community?". There has been alot of discussions goin on, and it has really gotten me thinking.

Before reading on, please read the following two posts in order.

What is wrong with the ASP.NET Community? - by Dan Hounshell

The ASP.NET community's only real problem is education - by Jeff Putz

Now that you've read the above two posts, I'll go on...

What's the Real Problem?

In Dan's post, "What is wrong with the ASP.NET Community?", he goes on to say that the problem is that the ASP.NET community is rather immature for its age, and he gives a pyramid example that explains the community is driven by a select few Community Leaders. These community leaders are people such as: Scott Guthrie (MS Employee), Rob Conery (MS Employee), Phil Haack (MS Employee). I would even say that Scott Hanselman (MS Employee) also falls in to this "Community Leaders" category. Dan also explains that Microsoft needs to pull its hand out of the cookie jar, in order for the community to mature on its own.

In Jeff's post, "The ASP.NET community's only real problem is education", he explains that Dan and the others are asking the wrong question. In fact Jeff thinks the real problem is that people (the community) are asking the wrong kinds of questions. People keep asking, "What's the command for [this]?" and "How do I save a cookie?". They are looking for a quick fix, without an inclination of how to actually perform the task. He explains the reasoning for this is because most of the community comes from a simpler VB6 and Classic ASP background where everything wasn't Object Oriented, and there were alot of quick fixes for everything.

Dan identifies that there is a problem, and Jeff hits the problem on the head:

The .NET development community is under educated.

I'm not saying that Dan was wrong, I only think that he wasn't looking in the correct place to find the real problem. Dan was looking at the select few, the community leaders, thinking they're the ones limiting the real growth of the community. When in fact, the reall problem lies with the majority, the average developer, and the fact that they are just plain under educated about the .NET development plaftworm.

I also think that both Dan and Jeff are looking at things from the wrong angle; the problem isn't just the ASP.NET community, it's the entire .NET development community.

What's the Solution?

The solution to this education problem is plain and simple: The average .NET developer needs to spend a little more time learning the platform.

Here are a couple different areas that I can see need improvement:

  • Get a better understanding of Object Oriented Programming (OOP)
  • Get a better understanding of Event Driven Programming
  • Get a better understanding of what the .NET Framework already provides
  • Get a better understanding of Design Patterns
  • Learn to read/write both C# and VB.NET

I'm sure there are other areas the .NET community needs to focus on, and if you can think of any, please post them in the comments.

Why "Get a better understanding of Object Oriented Programming (OOP)?"

The .NET Framework is completely Object Oriented. Without a good understanding of OOP, you will be lost at sea without a compass.

This reminds me of the following analogy: If you're a Classic ASP/VB6 developer, and you just jump in to writing ASP.NET code without learning anything (or enough) about the environment and platform, then you'll just be writing a Classic ASP/VB6 program in ASP.NET.

Why "Get a better understanding of Event Driven Programming?"

The .NET Framework is very heavy on Event Driven Programming. All three of the Windows Forms, ASP.NET and WPF programming models make use of Event Driven Programming.

Developers that come from VB6 Desktop development will have a basic understanding of Event Driven Programming, but developers from Classic ASP most likely wont.

The same analogy I wrote above for OOP, applies just as relavent to Event Driven Programming.

Why "Get a better understanding of what the .NET Framework already provides?"

There is so much functionality already baked in the .NET Framework that it's impossible for a single developer to fully understand and know how to use it all. This is why I'm saying "Get a better understanding" instead of "Understand it all".

By getting a better understanding of what's already in the framework (best to focus on stuff relavent to your area of expertise, be it ASP.NET, Windows Forms, WPF, WCF, etc.) you will become a much more productive developer. You wont be constantly rewriting code that's already there for the using. For example: The VirtualPathProvider in ASP.NET has alot of usefull path related methods, but most ASP.NET developers aren't familiar with it.

Why "Get a better understanding of Design Patterns?"

You may be wondering why I'm including Design Patterns in this list? Because, Design Patterns are architectural best practices in programming. Much of the code within the .NET Framework itself makes use of many different Design Patterns. Simply put, by learning Design Patterns, you will become a better developer since your code will be more reusable, extensible and easier to read.

Why "Learn to read/write both C# and VB.NET?"

The development community is still very split in the middle as to whether they prefer C# or VB.NET. Because of this, the plethora of code examples on the web aren't written in both. In my experience, I've found it appears that more examples are written in C# than VB.NET.

I'm not saying to necessarily become an expert with the nuances of both languages, but being able to read and write both will definately benefit you in more ways than one. Especially when looking for a new job, some shops want C# developers and others want VB.NET developers, and if you know both then you wont be elliminating job opportunities for now reason.

Where do you find the time to learn all this stuff?

You may be wondering how one would find the time to learn all this stuff in between working and life. Well, every developer spends some time reading blogs, articles and/or books. All you have to do is shift some of your time over to focusing on these specific goals. The more each individual furthers their understanding of the .NET Framework and Development Best Practices (no matter how small the amount), the more the .NET development community will improve as a whole, especially if that individual also participates on forums and/or blogs.

After all, it only takes at least a couple minutes a week.

Conclusion

Now that we've (the community, I'm not crediting myself with figuring this out) figured out what both the problem and solution are; we must act on it and fix the problem.

This is the reason I blog and participate on the various developer forums (ASP.NET Forums, MSDN Forums, Silverlight Forums, etc.). I, just like others, are trying to help the community move forward while I move forward with the community. The "community leaders" that Dan speaks of in his post are just like every other average developer; the only difference is (to quote Scott Hanselman from when I met him at Deeper in .NET 2006) "they speak louder".

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:
Categories: General
Posted by crpietschmann on Thursday, March 27, 2008 10:51 AM
Permalink | Comments (5) | Post RSSRSS comment feed

Related posts

Comments

Jeff us

Thursday, March 27, 2008 8:34 PM

Jeff

I was with you up until you suggested learning both languages. I think that's a monumental waste of time. Smile

And I didn't mean to imply that it was just ASP.NET, which is why I mentioned the quote about how your class is just as much a class as one in the .NET Framework.

I disagree that reading is the answer. It's not a substitute for experience and mentoring.

Chris Pietschmann us

Thursday, March 27, 2008 8:51 PM

Chris Pietschmann

As I stated about learning both languages, it's mainly so you can at least read other peoples code. If you're looking for a new job, being able to write both languages may come in handy.

And, I'm not meaning that reading is the answer. The real answer is Learning.

Also, thanks for disagreeing with some of it. After all, if there weren't any disagreement, there wouldn't be a discussion. Smile

hunzonian us

Sunday, May 11, 2008 1:21 AM

hunzonian

In my opinion the people sitting on the top of the pyramid should start writing some decent tutorials with the beginners in mind. I have been struggling for six month now to learn asp.net. I have almost 60 books on both VB.Net and C#. All of them put together not worth a rusty penny. I think programming does something to peoples brains that makes them loose touch with the rest of us. The better coder one is the less common sense they seem to have until nothing is left. I am absolutely stupefied by the fact that for a beginner it is almost impossible to learn this technology in a reasonable time. It seems that OOP is at the heart of .NET web development if you ever want to get a job and work with an experienced team. Yet I can't find any respectable books or articles that would drive it home in a step by step practical manner. I'm sorry but spending two years just on the language basics so one can finally start learning ASP.NET is just absurd. Every friking thing takes weeks of online research. Every tom-dick-and-harry writes a book today to make a quick buck but none of them are qualified to teach how to pick a nose. Teaching is an art as well as learning is but it is the teacher's responsibility to know everything about both. Everyone who intends to write a tutorial should spend two years learning cognitive sciences so they actually understand how learning works. Secondly, all tutorials should be written with the absolute stupidest in mind, not assuming that they will know what you are talking about for if they did, they would not need it anyways. Common sense ring a bell? Don't bother looking it up in an English dictionary because it has been removed a long time ago when religion replaced all rationality in this great country on God's green earth. If you want to create a strong community, here are some tips:

- Don't expect the STUPID to teach the STUPID
- Don't think you are qualified to share knowledge until verified by your worst critic.
- Do not assume that everyone comes from a programing background.
- Make technology approachable even by the stupidest (after all it supposed to make our life easier)
- If drag and drop solution are so evil, make them come with a sticky note (DO NOT USE!) or a quick help file that explains when and how to use.
- If OOP is the heart and soul of application development, for god's sake make a serious of videos on asp.net.
- Get rid of teasers. Teasers are instructional material created by the profoundly stupid that leaves you with more questions then before.
- Never deceive beginners so you can gain an economic advantage.
- Do NOT create technology that takes ten years to master and tell people its easy to learn.
- Get rid of asp.net forum and start something that is actually worth a damn.
- If you create and sell an incredible framework like .NET, have the decency to provide sensible learning material free of charge instead of millions of pages of worthless incoherent nonsense presented mostly in C# and sometimes in VB.NET(MSDN).
- Do not waste time creating hours of videos showing people how to drag-and-drop and then blame them for not knowing OOP.
- Don't tell people what they should do unless you are willing to show them how its done right.
- Finally, in every stupid person there is a potential to replace ten microsoft employee because only they know wht its like to be stupid.

Chris Pietschmann us

Sunday, May 11, 2008 2:51 AM

Chris Pietschmann

hunzonian, You make a lot of good points. I agree that there aren't alot of really great books out there. I do agree that when a good programmer writes a "beginner" book or tutorial they assume the reader knows more than they actually do, and it ends up confusing them.

Personally, when starting out with .NET I liked the "Step by Step" books from Microsoft Press the most. They were straight forward and spelled everything out for you to get you up and running, they even have screenshots.

However, to get passed the beginner stage, it takes a lot of time using the tools and you must get to know the language better. There really aren't any good Intermediate to Advanced books out there, and the fact is there just isn't enough people to buy them that justifies the cost to publish. Most everyone, even beginners, are reading blogs and other online tutorials these days and the book industry is suffering greatly.

Another problem, and I've seen this mentioned on other blogs, is the fact that most blogs and tutorial articles don't cover the material as well as a book would, but most developers are only reading the blogs and tutorial articles instead. When mosts devs need to solve a problem they don't want to spend the time (most don't have the time to "waste") to read a book, they just want to get a code snippet copied in that works. For example, they want to implement Drag-n-Drop, but the quick tutorial article only shows how to do it and mentions nothing about the potential problem.

Yes, I agree that the "stupid" can't teach the stupid. If that happens, and it does at times, no one gets smarter. However, don't forget that there are a lot of really smart people writing blogs, tutorials and books that have alot of really great content.

However, I do NOT agree with your statement where you say "Do NOT create a technology that takes ten years to master and tell people its easy to learn." Programming is an Art, and just like painting or drawing, it takes minutes to days to get going with the basics. And, those basics could carry you through your entire career. But, to truely master Programming (Software Development) it takes a lot of time, practice, learning and dedication.

Deepak au

Saturday, May 17, 2008 1:36 AM

Deepak

Community is looking for quick-fixes. I'm glad that this has been said in langauge as plain and simple as it can get. I feel that back when .Net was new there was a good flow of information which was geared towards learning .NET and learning it properly. I see that over the years this has faded.

Just my 2 cents.

Comments are closed

About the author

I'm Chris Pietschmann, go to the About Me page to learn more about me.

Search

Sponsors

Web.Maps.VE - ASP.NET AJAX Virtual Earth Mapping Server Control

Recent comments

Disclaimer


This work is licensed under a Creative Commons Attribution 3.0 United States License, unless explicitly stated otherwise within the posted content.
© Copyright 2004 - 2008 Chris Pietschmann