A front-end developer. In SharePoint. Doesn't sound too hard. - Yea, right. Front-end development in SharePoint is not like building stuff in other WCM systems or publishing engines. This is a product that has evolved over a long time and was not ment to be like its competitors from the beginning. It is so much more than a public facing site or an intranet. It can do so much more than Word Press or Drupal. That's why it's so hard to get down to the core of the UI to make the changes you want as there are thousand of rows with CSS to understand and so many different sections where you have to make sure the changes you did has an impact.
But if you are interested in making a career in building UI in SharePoint, what skills will make you that guy that people want to hire to help them implement the design they crave? Well, it depends what you want to do but if you want to implement the great design I think the following set of skills are good to have in your back pocket:
Have to know - As you are going to implement a design in SharePoint then it is important that you know the product. Not all of it but the basics. You have to know about these pitfalls that exist when trying to bend the UI at your will. When it comes to SharePoint it is easy to break functionality just making simple things like CSS changes. You have to know SharePoint 2010 and SharePoint 2013 at least. The basics from a UI perspective. How does navigation work? The different menus, the ribbon, web part rending and so on..
You can probably leave version 2007 and earlier as it always best to focus on now and the future.
Have to know - speak for itself. The semantic language is what web development is all about. SharePoint is no exception. You can't call yourself a front-end developer if you don't know the HTML definitions like the back of your hand.
Have to know - You really need to know CSS in order to be able to implement design as it is the base language for design implementation. This is probably the most important thing of all. If you know CSS good you get away with a lot. Trixing with CSS can work miracles.
Good to know - Dotless, (see also these posts), is a really really good language for writing CSS. Both syntax wise and the possibility to add it in Visual Studio to generate CSS files on build. Possibility to minify, combine and structure your CSS in a way that makes SharePoint design implementation much easier. CSS in SharePoint contains thousands and thousand rows of code and in order to override these you really need to write specific selectors which dotLess helps you with.
Have to know - this is a great help if you want to manipulate the DOM in order to get things to behave and work the way you want to. In every project there should be an injection of jQuery in order to make life easier for the front-end guy.
Have to know - in order to deploy your solution in the right way with all that it comes with you have to at least learn how to create, package and deploy branding solutions to SharePoint. Both for Office365 and OnPrem.
ASP.NET, C# (for SharePoint)
Almost a Must - If you want to build custom functions regarding different kinds of components that extends the functionality of SharePoint or binds things together you have to know the life cycle of ASP.NET, you need to know C# and how to add things to the UI. Especially if you want to change the master page or create User Controls, Delegate Controls and so on..
I think I have covered the basics which I believe are the most important things to know if you are going to take on the ungrateful role of front-end developing in SharePoint.
Missing something ? Comment !