views:

198

answers:

6

I have some experience in ASP.Net and can work my way around it without much trouble, however there are a lot of gaps in my knowledge of asp.net and .net in general.

I know the basics of c# and asp.net so I can accomplish most things. But I don't know anything at all about LINQ, Entity Framework, ADO.NET, delegates, ASP.NET Ajax, ASP.NET MVC, Providers, the different api's provided with asp.net (such as membership), the default controls that come with asp.net as well as the normal patterns used to create rich, stable and high performance asp.net sites. The list goes on and on....

I have really been wanting to upgrade my skills now and become a well rounded .net developer before I get left too far behind in the curve. I also have been meaning to look into ASP.NET MVC partially because I`d like to extend an open source project.

The problem is every time I get down to learning I get too overwhelmed. I dont know where to start, whats relevant, whats not. I basically need to figure out in what order should I be approaching all these different things and tackling them?

Should I get down with one of those monstrous asp.net 3.5 books (such as asp.net unleashed...1500pages) and read it from start to finish? And then pick up some book on ASP.NET MVC? Do I need to actually read such books from start to finish or are there topics I can safely skip?

Sorry if the question is badly worded but I think my problem should be evident. I feel .net is evolving very fast and I am getting left behind more and more. Aside from that I really want to be a good asp.net developer because web development is somewhat of a passion of mine.

Books I currently have in my possession...

ASP.Net 3.5 Unleashed

Building a Web 2.0 Portal with ASP.NET 3.5

Pro ASP.NET 3.5 in C# 2008

Javascript: The Good Parts

Pro C# 2008 and the .NET 3.5 Platform

+13  A: 

Write ASP.NET applications.

The best way to learn any platform is to write in it, and as you run into something you haven't seen or know how to do look it up. When you do that you are self teaching and will learn more and remember more if you read it form a book.

Get started here. It is a free book on MVC. Type in the examples rather than just reading it and modify the code slightly to something different. Then go out on your own. Your skills will increase quickly.

David Basarab
I'd +10 this answer if I could. Just as you could read about flying a plane for decades and still not be qualified to actually *do* it, writing apps is the single best way to learn. I haven't bought a technical book in many years. Technical books are just a waste of trees- 99% of the info you need is online for free (like here!)
Dave Swersky
+1  A: 

Geez man, have some fun with it.

Pick something that you'd like to make and then start making it. If a book helps you to make it faster/easier/whatever then get the book. If the project is at work, then learn the necessary skills needed to do the project and get it done.

I'd say I've learned the most by reading some blogs, and doing my own projects because they are fun. Who the hell goes and sits down and reads a 500 page book on tech crap? You could, and you could have no life. Or you could be pragmatic and use parts of the book to get real world things working and learn more about the process of completing something than just coding. Course, you'd learn coding along the way.

rball
Trust me, I prefer not reading huge books but I often feel that books present the knowledge in a linear way. If I learn something on my own then I always feel that I am missing other pieces of the picture and that causes me to freeze up Creating a simple menu is a piece of cake but last night I was stuck for 3 hours trying to figure out what the 'proper' way of doing it when using ASP.NET and after 3 hours I just ended up making a static unordered list in html just to stop me from wasting more time...Hence I feel i need to fill the holes in my knowledge.
Abdullah Ahmed
Honestly though man, stop worrying about the 'proper' way. Do it a certain way and then later if it's causing a problem go a different direction. What you should be striving for is continuous improvement. Stop looking to be "perfect" as it's going to change anyway in 6 months. Your old code should always be "worse" than what you could code up today.
rball
+1  A: 

To echo what others have said, you have to write code. However, don't stop moving forward when you hit a wall. If you're stuck on "the best way to do X" (best practices) either look it up if it's simple enough, or pull it off to the best of your knowledge THEN look it up and either go back and refactor it, or the next time you come across it implement it with the new techniques you've picked up.

As for what to learn and the order to do so, I suggest focusing on what you feel you really want to pick up OR what you think is going to be the most relevant and applicable to your job. Granted, you might not work somewhere that is constantly using the latest technology, in which case you'll need to learn things on the side through some mini-projects. There's a lot out there, so narrow it down.

Another suggestion would be to start a simple project and decide to implement parts of it using a particular technology. So, for example, you might pick LINQ to SQL or the Entity Framework for your data access side. Then pick AJAX or jQuery to verify a form using simple validation. Store some data in XML and read it using LINQ to XML. LINQ to Objects opportunities are many with in memory collections, string parsing, etc. In other words think small and implement some items with a particular technology and you'll touch upon many things. From there you can begin to expand your scope and may decide to explore a particular technology further and do more with it.

I agree with David Basarab's recommendation for the free ASP.NET MVC ebook. In addition, be sure to check out the http://www.asp.net/mvc/learn/ site. There are many videos and the StoreFront series is a well known example to follow along with.

Ahmad Mageed
+1  A: 

Even i am also in your same position. What i am doing is spending more time for coding the new things and thinking which one is working good and which one is not working good.

Along with that read the blogs , books, online videos ,online meeting , participate in online communitis like stackoverflow etc

anishmarokey
A: 

I totally agree with the write code answer, but to add to it, you'll learn more than reading by working with the source code of a well written app that covers your weak points. Load it up, build it, make modifications, additions, and trace through it.

When you start from scratch, sometimes it can be overwhelming to decide from where to begin. With a pre-built solution, it's an accelerated start.

With coding, the hunt and peck is much more fun because you are an active participant and then after you're done coding, some sit back and read front to back about what I just did works for me.

Steve
A: 

I would not argue against books when you begin to work on a new platform.

I always try to have the one and only best book. I first start to programm an application. If the first unsolvable problem occurs I go to the bookstore or use google books to see what book has the best solution to my problem. This is not necessarily the best book. But after a couple of solved issues I know what is the best book for me. I only buy this single one.

This keeps my bookshelf clean and after a while I know my books very well. To be honest right now I only use 3 programming books at all and 1 on a daily basis.

Malcolm Frexner