3 Answers
3

You need to try to implement business solutions using the features provided by the SharePoint platform. Only when you can't should you consider opening Visual Studio and writing custom code.

You need to understand that SharePoint development is not like other .NET development. You have to have a good understanding of the SharePoint component model (Features) and deployment model (Solutions) and how these affect the way you architect your custom applications.

You need to understand that SharePoint is a platform. You need to build your customizations on the platform. Data is stored in lists not an external database, security is SharePoint groups and permission sets not some custom solution, etc.

You need to understand that Visual Studio is not the only way to do "development". You'll need to learn tools like SharePoint Designer and InfoPath and understand their place in the SharePoint Development world.

I'm working with SharePoint as a developer for more than a year now and the fact that I was a .Net developer before help me lot. Beside the fact that someday you will have to know everything you listed, but you also need to be good at theses skills too: EcmaScript(JavaScript), Web services, ASP.Net, .Net, XML(XSLT) and maybe Silverlight.

For a beginner stand point, I'll start learning the SP basic, such as what is a list, library, tasks, web application, site, site collection, security, etc. Than as you grow as a developer you can learn all the others tricks. Don't worry, you won't and to not need to know everything to develop your first web part! I've learn a lot doing some SP projects and I'm far from mastering everything, but I get closer everyday ;)

Once you've learnt the basics of what makes up a SharePoint site, learn to use SharePoint Designer inside out. There are countless tutorials for all sorts of little tasks, such as creating lists, columns, content types, workflows, page layouts, masterpages, custom actions, list view web parts etc. Basically, a lot of things you can do to an existing SharePoint site to build some rudimentary yet robust solutions.

Importantly, learn its limits, and what things you can do before opening Visual Studio. Sometimes you will need to dive straight into visual studio and start building solutions there in order to create redeployable packages, but it in order to make effective use of that you need to know the platform, and SharePoint Designer can help with that, very visually - moreso than the UI (in my opinion).