Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations gkittelson on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Best way to learn C#.net 5

Status
Not open for further replies.

CTekMedia

Programmer
Oct 5, 2001
634
US
Hello all.

I'm a web developer with many years of experience using ColdFusion - including using ColdFusion in OOP environments. While ColdFusion is not dying, contrary to some recent articles, and is even growing, because of where the economy may be headed I want to transition to C#.net.

Any suggestions on the fastest way to learn? I can spend $1-2k max.

I am looking at these sites but do you all have any suggestions?

Anyone have any experience with these products?

Also - what is the best way to break into the market? Most job postings are looking for 3-4 years experience. How would you recommend breaking into the field?

I'm in Houston and would be willing to work really cheap in order to learn. Is volunteer work a good way to start?

Thanks everyone,


 
start by reading C# via CLR. this is every detail about the c# language. i also highly recommend Domain Driven Development, although that isn't c# specific.

down load C# developer express and begin spiking different concepts and examples. Don't use drag/drop that's not c#, that MS magic.

There are alot of great frameworks as tools to augment the objects provided with core language. I personally like
MbUnit/nUnit/xUnit for unit test
NHibernate for ORM (there are many others too)
Rhino.Tools for common architecture needs (advanced features)
Castle for IoC (Windsor specifically)
Visual SVN for code verisoning
Resharper for a better VS IDE experience

I know Austin, Tx has an awesome group of .net developers. My terrible at geography, so I don't know if that is too far to travel. Google Austin .net group ro Agile Austin, or something like that.

Find some great mentors of the language as well.
I personally love
Los Techies (aggregate of feeds)
Code Better.com (aggregate of feeds)
JP Boodhoo
Jeremy Miller
Ayende Rahien
Kyle Bailey
and many more along with a few others

If at all possible I would recommend JP Boodhoo's Noth'n But .Net Bootcamp. I don't think he is in the US again until next year.

To really learn the C# language stay clear of any drag/drop wizards or code generation tools until you have firm grasp of the language. if you become dependent on that you will not understand how the language works, or how to customize the logic behind it.

that's my take on C#


Jason Meckley
Programmer
Specialty Bakers, Inc.
 
The best way is very difficult to answer because everyone has different backgrounds and knowledge and learn differently. Many people like Others like formal classroom training. Still others use books. Some learn by creating a personal project and Googling answers for problems.

Craig Berntson
MCSD, Visual FoxPro MVP,
 
Thanks for the feedback folks. In the past I have used books and built personal projects. In this case I'm looking for step-by-step formal instruction. I don't want any gaps in my knowledge and I need to get up to speed as quickly as possible.

I'll check into learnvisualstudio.net. C# via CLR looks like a great book but perhaps I should read it in 6 months or so.

Additional ideas solicited.

Thanks!




 
if you're going to read it in 6 months, you might as well read it now. that like learning to drive a car and then going to driver's education later on.

if you meander through the language you are bound to pickup bad habits. by understanding how the language works you are able to avoid some of these habits.

Jason Meckley
Programmer
Specialty Bakers, Inc.
 
Many reviewers suggested reading it after gaining an understanding of C#. My OOP understanding is still fairly rudimentary and I'm just too busy to slog through a really dense book written in geekese.

This go round I want to start with video or a "C# for dummies" level book. Would you still recommend it based on these thoughts?

Thanks!


 
yes, it doesn't matter how novice you are the book is full of valuable information. it's not as intimidating as you think. And it's not so much about OOP as it is C#.

if you using and OOP language you should learn OOP. for this I found 2 books to be very helpful.
1. Domain Driven Design (how to model your objects)
2. Head First: Design Patterns. (fun and easy to read, the examples are java, but java and C# have very similar syntax.)

You should also research the SOLID programming principles. there are some good articles out there on Los Techies, Wikipedia and a few other sites.

Jason Meckley
Programmer
Specialty Bakers, Inc.
 
IMO, this book Design Patterns Explained: A New Perspective on Object-Oriented Design is MUCH better than Head First. I found Head First too distracting in how they presented the material. Jumping around all over the page with drawings, photos, balloon captions, etc.

For a basic book, look at Learn C# in 24 Hours.

Craig Berntson
MCSD, Visual FoxPro MVP,
 
The best way to learn a new programming language is practice. Buy you a book and start to use the new language. Try to do something you have done in language used before.
I personally try everytime in a new language to do things I need in my work: e.g. processing text files, regular expression, accessing databases, ..etc.
Only so, you will encounter the problems you have to solve. If you can solve it self then it's very good, but if not it's good too, because you will gather experience with the language.

Then go to the classroom training. IMHO it's the best way to learn something. Yes, I know it's expensive. But if you have some experience with the new language and you can ask the instuctor, why to do this so and not so, then one week of such an intensive training with experienced instructor is more worth than 2 months reading books at evenings.
But first gather some experience at your own and then go to the classroom. If you have no some experience before, you have not questions - then it's not worth the money.

..would be willing to work really cheap in order to learn. Is volunteer work a good way to start?

Yes, it would be the best, if you can get a job as a beginning junior programmer, or when not if it would be possible take part at a volunteer work.
IMHO it will help you to gather valuable experience.
 
If you're a Web developer, you're most likely going to be using C# in conjunction with ASP.NET. A good starting point might be Murach's ASP.NET 3.5 Web Programming with C# 2008 since it covers both as well as Visual Studio. Once you have the overview you could build depth with other sources.

Murach also has plenty of other books you may find useful:
_____
Jeff
[small][purple]It's never too early to begin preparing for [/purple]International Talk Like a Pirate Day
"The software I buy sucks, The software I write sucks. It's time to give up and have a beer..." - Me[/small]
 
Forgot to mention, many of the Murach books offer free downloads of a sample chapter or two so you can see if you like the style before buying.

_____
Jeff
[small][purple]It's never too early to begin preparing for [/purple]International Talk Like a Pirate Day
"The software I buy sucks, The software I write sucks. It's time to give up and have a beer..." - Me[/small]
 
reading the summary provided by the cover there are 2 red flags for me. "Query anything using Linq" and Server Controls.

Linq is .net specific, not asp.net specific. learning linq is like learning how to use datasource controls. it's eye candy for rich .net objects. you won't learn about repositories, data access, or seperation of concerns from Linq. you'll learn how to use a "wizard" which masks the ideas of repositories and specifications.

web server controls are not specific to asp.net, they are specific to webforms. webforms is a totally different concept than asp.net. asp.net is the pipeline to serve dynamic webpages to URI requests. request and response, nothing more.

Webforms is an html abstraction which uses the asp.net framework to deliver html. If you learn webforms thinking it's asp.net, then this will skew your understanding of both.

If you want the details on asp.net look for a book discussing HttpApplication, HttpHandler, HttpModule and the like. this is asp.net. If you want a book on how to cram everything into the codebehind and use wizards to write webpages look for a book focusing on webforms.

Jason Meckley
Programmer
Specialty Bakers, Inc.
 
Not interested in learning to use wizards - not in the long term anyway - although I don't mind using good wizards in a production environment.

Looking to learn C#.net - not "just" asp.net. On the other hand, would it be easier to focus on asp.net functionality and then add desktop type app programming at a later date?

Thanks for all the comments folks.


 
c# is a language.
asp.net is a framework.
webforms is an html abstration built on top of asp.net
winforms and webforms are just GUI (even if there are controls to modify data).

the more responsibility placed at the GUI(code behind)
1. the more SRP (single responsibility principle) is broken
2. the fewer unit tests you can write to ensure your code is working accurately
3. the more manual <F5> debug testing is required

by using a front end controller (instead of webforms) and using the command pattern to define how the system should process the UI request you create a rich, flexible and testable infrastructure to code the application with.

Monorail (and MS MVC) are a different (traditional maybe?) avenue of web development. there is no use of the webforms postback model. If you're going to learn asp.net development I would bypass webforms all together and jump straight to a FC/MVC framework.

Jason Meckley
Programmer
Specialty Bakers, Inc.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top