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 wOOdy-Soft on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

What are the essentials in C# 4

Status
Not open for further replies.

shadowlesshand

Programmer
May 29, 2002
21
HK
Hi,
I am a C# Developer and I been in the development field for a couple of years now. A better insight of the following would help me immensely.

1) What are technical skillsets necessary for a developer?
2) How do we and what do we refer to so that we can constantly upgrade our knowledge.
3) What are the developmental jobs/roles we can look forward to.
4) When we say .NET, what does a programmer need to know in .NET

Request your opinion on these.
A background on what my qualification is, so that you can guide me looking at what my current skills are

I hold a Masters degree in Computers, Bachelor's Degree in Electronics. I have undergone a course on Application Development at a Computer Training School. C,C++,VC++,VB,COM,DCOM,SQL,ORACLE,a little of JAVA, UNIX, LINUX, HTML, CSS, ActiveX Documents, Crystal Reports is what I have learnt.

I began my career in VB.NET and now I mostly code using C# and the domain is Application Dev.

Can I request you to tell me what are the domains that exist, what the essentials that I need to know.

Your opinion is very valuable. Thank you.

 
Seems like you have the qualifications, so you can talk the talk. Perhaps you need to get out there and walk the walk? [smile]

Steve

[small]"Every program can be reduced by one instruction, and every program has at least one bug. Therefore, any program can be reduced to one instruction which doesn't work." (Object::perlDesignPatterns)[/small]
 
Very nice of you to appreciate. But honestly, I am new to .NET. Though I can create basic web applications, they are devoid of security features, Interfaces, Satellite Assembies, Delegates and stuff. I have only heard about these terms and nothing more. Hence the confusion as what I need to learn in .NET and what are the domains.
Basically my above questions. Hope you can still help me.
 
1) Design Patterns, Object Oriented Patterns, Delegates, Understanding of the .Net framework classes, an understanding of the CLR, Memory Management, and good coding practices (naming etc)

2) Stick with this forum and pick up a good book. I have been coding in C# for about 3 years and this forum has helped a lot. You find resolutions to problems that aren't your own and can apply them to solutions that appear in your career in the future.

3) I'm a GUI guy - but you can do anything in C#. The 2.0 framework provides more of this functionality in a much more simple manner. What I have just found is that a lot of Microcontrollers (hardware devices) are starting to run the Windows CE OS which you can leverage to perform functions that used to be done only in C++.

4) Just get to know the framework a bit. Know the different namespaces such as System.Windows.Forms, System.Drawing, System.Runtime(.Interop), and System.Security. Once you have an understanding of the basics of the .net framework, it's just a matter of locating the correct classes to do what you need.

I hope that gives you something to work with...
 
It does sound like you need some design patterns. They give you useful best practice solutions to many common programming problems. But don't get hung up on the fact that your applications are simple, and don't use all the features of the framework. Or all the poatterns. There is nothing worse than trying to maintain a bit of code that contains some really obscure feature of the language, when all along you know the only reason it is there at all is because some programmer wanted to try it out...

Recommended reading: Design Patterns, Gamma et al (also known as the Gang of Four book, or GoF). Don't be put off by the fact that it was published in 1995 before UML was invented, and hasn't been updated since. It's kind of the design bible. See how many of the design patterns in it have been designed into the .NET Framework and the Java Framework to appreciate just how influential this book has been.

There is a more recent attempt to update the GoF book called Design Patterns in C#, which is pretty good too, and all the examples are in C#. I don't know if it's been revised for .NET 2.0

Martin Fowler's Patterns of Enterprise Application Architecture (PEAA) is good.

But before you get stuck in to those, read Fowler's book 'Refactoring: Improving the design of existing code'. It uses Java in its examples, but it is similar enough to C# that you will easily be able to see what's going on. It will also introduce you to the benefits of automated unit testing. (And like the old Kernighan and Ritchie 'C' book, will help you to dispel any delusions of adequacy you may have had about your coding skills)

Enjoy...

Steve

[small]"Every program can be reduced by one instruction, and every program has at least one bug. Therefore, any program can be reduced to one instruction which doesn't work." (Object::perlDesignPatterns)[/small]
 
Design patterns to focus on:

Model View Controller
Singleton
Factory


Unit testing is also very important - that's why there's tools out there like csUnit. :)
 
I would say learn OOP like the back of your hand. A surprising number of developers do not use even a small part of OOP, or make little use of classes.

Learn to make your code as compact and modular as possible. This will make your code a lot easier to maintain and understand. If you have a method spanning pages of code, you know you need to pare that down.

Unit test early and often. Instead of trying to write out the entire program at first, test out small chunks to ensure each step in the process is working.

Ensure the calculations and assumptions in you program are correct. Test each branch of your code (if statement, etc) to ensure every possible angle is covered.

Learn to diagram your program algorithm in advance either in a flow chart or UML diagram.
 
Wow, thats definitely one very good piece of information. Maybe at a later point of time I will come back and analyze with your help to see what next is the scope. Do keep me posted if you find something thats a must know.

Any idea about the domains? Beacuse I have heard people working on Application development - Windows Forms and Web Application; Product Services... Any other and is there any that is hot in the market.

Many Thanks.
Karthik
 
An essential in my opinion: learn the GC inner workings. There are few programmers who really know what/where/why/who and it will help you very much in diagnostics/profiling/optimization.
 
I don't understand, it's a starnge post when you look at the OP credentials. I gave stevefxx a star for his first reply.

thread269-1083729

Marty
 
learn the GC inner workings.

Absolutely, for a senior position (for a junior position, it's not as important).

We start off by asking about the IDisposable interface, then drill down into the IDisposable pattern, when you apply it, which .net objects are allocated on the heap, and which ones are are on the stack, how the GC generations work.

Bonus points to someone who can tell us the approximate size of the Generation 0 heap.

Chip H.


____________________________________________________________________
If you want to get the best response to a question, please read FAQ222-2244 first
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top