All Comments
TopTalkedBooks posted at August 20, 2017

Read advanced books on the topic. Some examples:

Effective Java (2nd Edition) - Joshua Bloch

C# in Depth: What you need to master C# 2 and 3 - Jon Skeet

These two as examples provide you with the changes introduced in the last versions of the languages which should be enough to get you back on track combined with some sort of a pet project as mentioned by Pax.

I try to read some advanced books on languages which I don't use activly at the moment too, but this depends on my motivation..

With best regards

TopTalkedBooks posted at August 20, 2017

You need knowledge about C# and .NET to developing ASP.NET apps or for SharePoint. Because both technology have same base and it's .NET

Head First C# for absolute beginner in programming (OOP) and C#. And it's good for you if you haven't knowledge about object programming, but if you familiar with OOP, this book wasting your time.

Best way how to get in .NET and C# is C# in Depth: What you need to master C# 2 and 3

TopTalkedBooks posted at August 20, 2017

I have a little article about this: the Bluffer's Guide to C# 3. Obviously there are more details in my book but it should be enough to get you going. In short:

  • Automatically implemented properties:

    public int Value { get; set; }
    
  • Object and collection initializers:

    Form form = new Form { Size = new Size(100, 100),
                           Controls = { new Label { Text = "Hi" } }
                         };
    List<string> strings = new List<string> { "Hi", "There" };
    
  • Implicitly typed local variables:

    var x = new Dictionary<string, int>(); // x is still statically typed
    
  • Implicitly typed arrays:

    DoSomething(new[] { "hi", "there"}); // Creates a string array
    
  • Anonymous types:

    var jon = new { Name = "Jon", Age = 33 };
    
  • Lambda expressions (like anonymous methods but shorter):

    Func<string, int> lengthFunc = x => x.Length;
    
  • Expression trees:

    // Representation of logic as data
    Expression<Func<string, int>> lengthExpression = x => x.Length;
    
  • Extension methods: (static methods which act like instance methods on the type of their first parameter)

    public static string Reverse(this string text)
    {
        char[] chars = text.ToCharArray();
        Array.Reverse(chars);
        return new string(chars);
    }
    
    ...
    
    string hello = "olleh".Reverse();
    
  • Query expressions:

    var query = from person in people
                where person.Age > 18
                select person.Name;
    
TopTalkedBooks posted at August 20, 2017

As far as becoming proficient with C# I would highly recommend Programming C# and C# in Depth.

For Visual Studio, start poking around in the IDE a lot, play around, get familiar with it. Start with simple projects and explore all the different aspects. Learn how to optimize Visual Studio and get familiar with some of the great keyboard shortcuts / hidden features of the IDE.

Definitely do each of the following at least once:

Projects:

  • Create a simple console application (e.g. hello world)
  • Create a class library (managed .dll) and use it from another application you create
  • Create a simple windows application
  • Create a simple asp.net web app

Debugging:

  • Debug a command line app
  • Get familiar with: breakpoints, the locals and watch windows, step over, step into, step out of, continue, stop debugging
  • Create a command line app which uses a function in a class library. Store the dll and symbol file (.pdb) for the library but delete the source code, debug through app as it goes into the library
  • Debug into a webservice
  • Learn how to use ILDasm and ILAsm

Command Line:

  • Get familiar with the Visual Studio command line environment
  • Build using only the command line
  • Debug from the command line using devenv.exe /debugexe
  • Use ILDasm / ILAsm from the command line to disassemble a simple app into .IL, reassemble it into a differently named file, test to see that it still works

Testing:

  • Create unit tests (right click in a method, select the option to create a test)
  • Learn how to: run all unit tests, run all unit tests under the debugger, rerun failed unit tests, see details on test failures, run a subset of unit tests
  • Learn how to collect code coverage statistics for your tests

Source Control:

  • Learn how to interact with your source control system of choice while developing using VS

Refactoring et al:

  • Become familiar with all of the built-in refactorings (especially rename and extract method)
  • Use "Go To Definition"
  • Use "Find All References"
  • Use "Find In Files" (ctrl-shift-F)

IDE & Keyboard Shortcuts:

  • Learn how to use the designer well for web and winforms
  • Get very familiar with the Solution Explorer window
  • Experiment with different window layouts until you find one your comfortable with, keep experimenting later to see if that's still the best choice
  • Learn the ins and outs of intellisense, use it to your advantage as much as possible
  • Learn the keyboard shortcut for everything you do
TopTalkedBooks posted at August 20, 2017

Short answer: read "C# in depth" from SO's top-most voted fellow Jon Skeet. Its an excellent book and you will learn all about the new C# 3 features, especially when to use them, including Lambda expressions.

TopTalkedBooks posted at August 20, 2017

I'm a fan of the CLR via C#, by Jeffrey Richter, a man very, very wise in C#-fu.

Also, check out our very own Jon Skeet's C# in Depth.

Both are great reads.

TopTalkedBooks posted at August 20, 2017

C++: Stroustrup's book and/or Stroustrup's D&E or Stroustrups ARM though the latter two are not in date. The ISO spec is available (see Charles bailey's answer) and is the final word if that's the type of doc you want. The most thorough answer is in the comments by aJ :- The Definitive C++ Book Guide and List. The equivalent of K&R for C++ is the first one.

C#: The C# Programming Language (3rd Edition) by Anders Hejlsberg, Mads Torgersen, Scott Wiltamuth, and Peter Golde). If you're looking for the generally accepted definitive book on C#, that's C# in depth.

Top Books
We collected top books from hacker news, stack overflow, Reddit, which are recommended by amazing people.