Why am I writing this?
I am not going to ask you to forget everything you learnt in C#, do not forget all the best practices and patterns you learnt. Programming is programming is programming is computer science.
The same Namespace, patterns and practices apply in both languages. Implementation is slightly different. As a SharePoint C# Developer you probably have never had to deal with asynchronous code, complex event handlers and thousands of optional frameworks.
What the SharePoint Developer has to realise
Each version of SharePoint has shifted more and more of the code to the client. This in turn has helped speed up the server processing, and as the product became more complex this has helped to reduce the ever increasing server requirements. It also increases server stability, and increases perceived speed with less page load times in SharePoint.
A distributed development model for SharePoint is the best way. and things will only progress from here.
How do I make the most of my learning experience?
You cannot be a Master without Practicing the basics every day. This applies to everything in the world. No matter how good you are at anything. If you don’t practice the basics. If you don’t keep this knowledge sharp. Then you will lose at least some of it.
Sure programming is a little different, and I’m not saying read this book every day. But apply this knowledge, and always apply the best practices, and spend some time coming back to review this knowledge periodically will mean that these skills won’t dull.
When I draw, I spend the first 10 minutes drawing circles. I spend the next 5 minutes shading them into spheres. Then I spend the same amount of time drawing cubes. It’s my warm up exercise that allows my hands to get used to a pencil again.
When I do my patterns for Taekwondo, I start with 20 front punches, 20 leg raises off each leg, two fundamental movement exercises and then the first pattern.
I also do code challenges. I look for websites that offer coding challenges, and go through them. I always research common algorithms such as tree traversal when I need to implement one. I know exactly how I have implemented these in the past, but there are people who research these things full time. Further I can guarantee that you will have forgotten something in the time since you last implemented that algorithm.
So where next?