So you want to be a SharePoint developer.
It’s a topic that has been discussed around the web numerous times. However I still find myself talking to .Net developers who want to become SharePoint developers by jumping right into coding. So I thought I’d take this opportunity to reiterate some key points -- things you should and shouldn't do before you deem yourself a SharePoint developer.
Start at the Beginning
For those developers with a .Net background, you may think it's much easier to just whip out Visual Studio and write some code to make SharePoint do whatever you want. I'm a developer at heart, so I totally get it -- that's your comfort zone.
But let me explain to you the reasons why this is a bad idea, and what you need to do before you write a line of code in SharePoint.
It may seem obvious, but I’ve met quite a few SharePoint developers who don’t know how to use SharePoint. Or they don’t know how to use it properly. Or they just choose not to use it.
If you ever need to create or manipulate SharePoint lists and libraries in code, for example, then wouldn’t it make sense that you need to understand how to create and manipulate them in the user interface first?
There are tons of resources, websites and blogs that offer tutorials, video training, white papers, etc. Create or get access to a SharePoint site and just start using it. It’s really hard to break the site through the UI, so just start exploring.
Become a Power User
So you’ve taken the time to learn the basics of SharePoint. Now you can start coding, right? Wrong! You still aren’t ready to become a SharePoint developer. The next step is to become a power user of SharePoint. You need to know the ins and outs and the more advanced features of SharePoint, such as content types, publishing, master pages, page layouts, managed metadata, workflows, business connectivity services and more.
You need to know the capabilities as well as the idiosyncrasies and limitations of SharePoint out of the box. And there are lots of limitations.
However, there are just as many workarounds that can be used to achieve the desired functionality without writing any code. As a developer you need to know those as well. You need to have the mindset of a power user, with the thought in the back of your mind that you don't have the capability to solve the problem any other way, so it forces you to get creative.
Why Does This Matter?
Some of the reasons why it’s important to learn SharePoint and become a power user before coding in SharePoint are obvious.
You will spend less time reinventing the wheel for common functionality, and you can spend more time writing the business logic that can’t be achieved through the user interface. By focusing your time only on the areas that cannot be customized out of the box, you will write less code, therefore the testing and bug fixing cycle will be greatly reduced, and you’ll have a much more stable solution. The project will also go live sooner — at a lower cost.
I’ve caught myself doing this when I was first learning to code in SharePoint. I created a custom solution for something that could have easily been done using native features. And I’m willing to bet that most SharePoint developers have built something in code at least once that was achievable out of the box with a few tweaks or customizations.
Other Reasons to Consider
Some of the less obvious reasons for becoming proficient in SharePoint before becoming a developer involve usability of the solution. Say you have to write code for a user input screen versus using an out of the box view form. At least you will want to present an interface to users that is very familiar to them.
If your custom-coded interface doesn’t look like the rest of SharePoint, it will be very confusing and frustrating for the users. And remember, SharePoint isn’t the most intuitive web platform to begin with, so once users have mastered it, you don’t want to introduce an interface that is totally foreign.
This will also mean that less training will be required for the users to use your solution. The learning curve will be much smaller if they already understand how to use the interface. You can focus your training on the specific functionality and business logic that you have written.
Kinds of SharePoint Developers
Once you have become a power user, then you can start learning to code in SharePoint. That’s where the fun begins, and you will quickly discover that there are many ways you can accomplish something in SharePoint. We talked about .Net (server side) programming. However it is also important to learn the client side object model (CSOM), especially if you will ever be working with Office 365, as you can’t deploy server side solutions there.
The bottom line: don’t just jump right into SharePoint development until you have become proficient with using SharePoint, as well as an understanding all of the capabilities and features that can be configured. You don’t want to waste time and money building functionality that already exists.