I'm trying to figure out the extent of C# that Apex uses in its own implementation of C#. Is there a good way to find this out instead of picking up a C# book on Barnes And Noble and going trial-by-fire?
closed as unclear what you're asking by Alex Tennant, Sebastian Kessel, glls, Raul, Keith C Jun 23 '18 at 8:54
Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
You can learn Apex Code, for free, with no prior experience, over on the Trailhead. Of course, this only covers the basics, so you'll still have to go read lots of documentation, but you might be able to save yourself some money. I actually learned Apex Code using nothing but the documentation (Trailhead didn't exist in 2007), and by answering questions on the Developer Forums to gain confidence in the language.
There is precisely 0% C# inside of Apex Code. Apex Code and C# are step-siblings, sharing a common parent but different other parents as well. Any commonalities between C# and Apex Code are purely coincidental based on the fact that they have the same common ancestor, Java.
If you must learn a related language first, choose Java, as it is the most similar to Apex Code. I actually come from a Java background and it took me mere minutes to at least master the basics, and most of the language only took a few hours; the only reason I ever check the documentation is to look up minutiae.
It takes less time to learn Apex Code than Java simply because it's a much smaller, more focused language. If I had to guess, I'd say approximately 80% or more of the Java language simply doesn't exist in Apex Code, so starting anywhere other than Apex Code would be like building a skyscraper when you only needed a house.
If you already have prior experience in C# or Java, either would certainly help you learn Apex Code faster, but there's no reason to learn them just for the sake of learning them. You might consider just getting a basic "Learn Java in 24 Hours" or something as a quick primer, but don't spend a lot of time learning the heavy details like custom annotations, events, threading, etc, since you won't be using any of it.
Conversely, if you learn Apex Code first, learning Java and/or C# later would take a lot less time, since Apex Code has a lot of the same fundamentals as the other two languages. If you actually wanted to learn all three, you could go Apex Code, Java, C#, in that order, to minimize the learning time. Most people I've seen pick up the basics of Apex Code in just a few hours, and the rest of learning Apex Code is simply learning how to navigate the documentation and use Google.