From 2014, unarguably the best way to start learning Salesforce is through Trailhead. Think of it as the best university to enroll yourself in for studying Salesforce. Although, there are other resources like Salesforce Developer forums, Stack Exchange, and the Success Community to learn and resolve doubts. Salesforce Developer group is another fabulous resource to use. It not only helps you to learn new things but also assists in growing your network within the ecosystem, which is of utmost importance in one’s career.
Salesforce development can also be split into two major ends: Front-end and Back-end.
For server-side development, Salesforce app developers use Apex, a strongly-typed object-oriented programming language with syntax similar to Java. Apex Code is stored in the format of classes and triggers. Salesforce also has its own data management language SOQL, which is similar to SQL.
Don't forget to check out: How 2 (Friends) Salesforce Developers Built a Million Dollar Company?
People who have a good experience doing full-stack will find end-to-end development in Salesforce is very manageable. But if you are only familiar with front-end, or you specialize in middleware services, or you’re a database programmer, then Salesforce is like a platform that combines all three. You cannot be tied to the front end, back end, or middleware. You have to be familiar with all three in Salesforce.
Being a Salesforce developer involves end-to-end development (both front-end and back-end). It is no less than being a full-stack developer. Because in Salesforce there is no separate database, no separate middleware, no separate front-end. You cannot have a Developer who works on Lightning or Visualforce and have a separate Developer doing Apex. You need to have one person doing both because it goes together. When you write Apex, the database interaction happens using SOQL queries. You cannot have a separate SOQL Programmer in Salesforce.
Getting into Salesforce development is all about adapting to the platform and self-learning. When I say adapt, there are so many things happening in the Salesforce platform, that people need to be committed to continuous learning, and they need to be self-learners. Salesforce has three major releases a year which means new functionalities in terms of development and API’s etc. One needs to be across all of these.
Again, if you are diving into Salesforce development from a different programming background like .Net or Java, understanding or learning apex would be fairly simple to some degree, but the main challenge comes in terms of understanding the platform, that’s where the struggle comes, and that’s where one needs to invest time. With .Net and Java, you run things in your own environment. With Salesforce, you run the code in the Salesforce platform. Salesforce defines a set of guidelines; governor limits are just one of them. There are other things to give a thought to like, when do you need to write code, or when can you skip writing code. That’s where having a consultant mindset comes into the picture (when to use what? And why?).
Not every single requirement or problem in Salesforce can be solved with code or should be. You need to be able to evaluate when to use which type of automation. Coding is just one of the solutions in Salesforce, whereas as in Java or .Net, the answer is to always code. There’s nothing else and so you just start with code. With Salesforce, it’s going back and checking, “can this be done with workflows”? “Can this be done with the process or visual flows”, or anything else? You need to always keep up with the new releases. Every release introduces a lot of functionalities, that can make your code redundant.
Check out another amazing blog by Apphienz here: The Impact of Salesforce On Your Customer Service Performance
Also, the other important aspect of being a Salesforce developer is writing Test classes and testing them for various scenarios (positive and negative). Test framework in Salesforce is a bit different compared to the other platforms if you compare to testing in Java or .Net. Inside Salesforce, you have to cover so many other functionalities, and there are so many other dependencies, and so your Test Classes can fail, not just because of your code. It could be because of a validation rule, or a process builder, or anything else that you’re not even aware of. In Addition, to deploy APEX code to the production environment, you need a minimum of 75% code coverage.
After all, coming into Salesforce development is never going to be a bad idea that you will regret anytime.
“You don't have to be great to start, but you have to start to be great.” – Zig Ziglar