My comfort level with java is good , I wanted to teach my friend C# (where I would not consider myself expert in anyway). From the perspective of interviews what should I be studying/implementing myself in C# before i can teach her from an interview perspective. I am not a big fan of a language specific interviews but then my friend has little programming experience.
EDIT:What are the most important aspects of the C# language that you would recommend studying for an interview.
-
Well, firstly I'd try to avoid mistakes due confusion with java concepts (since you're from a java background). For example:
- int/Int32 (etc): in C# they are the same
- generics: how they differ from java
- delegates/events: don't exist in java
- closures: java captures the value; C# captures the variable (allowing updates)
- structs, how they work, and why you very rarely need them ;-p
But C# is not a tiny language, and the .NET framework is huge. So there is a lot to cover...
-
I tend to take the view that the things you should know for an interview are the things you need to know for core development - at least if the interviewer is any good.
So, for C# I would make sure you're comfortable with:
- Properties
- Reference types vs value types
- Parameter passing (what ref means etc)
- Generics (quite different to Java)
- Delegates and events
- "using" statements
- Exception handling
Slightly more involved:
- Nullable value types
- Partial types
- Iterator blocks (these are fun to play with)
If you feel like tackling C# 3:
- Lambda expressions
- Extension methods
- Basic grasp of how query expressions are processed (i.e. syntactic sugar; details not as important)
- Object and collection initializers
-
I find that the absolutely best way to learn C# is by working on small projects you find fun. If you find the project to be interesting it is much easier to just bang out a lot of code, and that what it's all about if you want to learn to code. I think it is more important to just be familiar with a language and be able to think in its abstractions than to know any specific aspects. For example, at an interview they might ask you to quickly design some simple program, and if you're familiar with writing general programs in the language, you should be able to transfer this knowledge into the design.
If you are targeting an interview at a specific company, where you know what they work with, there are of course some subjects which might be better to study than others but that is specific for the case.
My preferred strategy for really getting into a new language is to read a book which covers most of the base language features so that you hear about all the little operators, functions and other details which you might not pick up from random web tutorials.
-
It mainly depends on you friend's previous programming experience. First of all if he's got no Object Oriented Programming experience he should focus on understanding the basic aspects of it.
Then it would be important to focus on language specific aspects: c# has particular class attributes access methods (readonly, get and set modifiers, etc..) and complex method and attributes overloading and overriding directives.
And finally he should focus on .NET platform structure.
This tutorial gives a good guide to start programming in c# from scratch, and the wikipedia page on .NET framework gives a good technological overview on the platform.
Peter Mortensen : @Paolo: the friend has no Y chromosomes...
0 comments:
Post a Comment