Microsoft technologies keep getting better but they do so on the expense of addi
ID: 642195 • Letter: M
Question
Microsoft technologies keep getting better but they do so on the expense of adding one more abstraction layer every time. In the early stages we used to play with C# code and SQL procedures to perform CRUD operations. Then generics came along with ADO.NET, DataSets, Entities. Next, LINQ came offering LINQ to SQL, to XML, to Entities, to Objects. To get more easier and more confusing, EF 4.1 came. C# just kept evolving and adding new abstractions layers again and again.
The end result is that I am so confused that I don't know which one is which and when to use which one. When I try to follow books, some teach EF while some are stuck with ADO.NET. Seriously I have no clue whatsoever why we have evolved so much for data manipulation
To be honest, all I know is the C# syntax and some basic stuff. Data manipulation is out of the window and so are the advanced features.
Is there a unified manner to learn C# ? I don't want to use Entity Framework and LINQ when I don't understand them or what they offer. I just want to have a thorough understanding from Level 0 to Level 10.
Also, I am thinking of learning PHP simultaneously because I feel learning some other language will might help me understand C# better. Is this the right thing?
Explanation / Answer
You are confused? The situation is much worse in the Java world, where a different web framework is in fashion at every month.
My advice: you don't need to learn C#, you already know it. Employers rarely seek super language skills nowadays. The emphasis shifted towards the tools and frameworks, to the IT (MS or Java) "ecosystem". Don't bother with PHP.
Try to cover the whole of the application development stack, ui/server side/databases. Unless you live in the US I'd recommend a horizontal approach: try to learn many things, but not too deeply. Set yourself 3 month long 'projects', and always focus on one thing at a time. Don't rush, don't panic :)
Pick the most popular technologies first, what you can see in the job ads the most. But don't learn new languages (script/dynamic, functional) just now, those can wait a few years. Learning new languages is a gold mine from a professional point of view, unfortunately in the job market a solid technology/tool portfolio is more important.