Where To start Learning With Salesforce Development
Although this question isn't well defined enough for this site which is typically focused at solving specific issues, I do think there's merit in building up a guide to the best resources so I'm going to make the question and this answer community wiki.
Trailhead
As of late 2014, by far one of the best options for getting up to speed on the platform is Trailhead, a free online training option provided by Salesforce which makes for a more interactive and easier route than simply reading the documentation. To test your learning in different modules you actually write code which is executed and verified by the Trailhead system.
Other Options
There are a lot of moving parts in the force.com platform and it can definitely seem overwhelming at first, but the real trick is not to jump straight into the code side of things—there is a lot to learn about what you can do without code, and on any project you should leverage the declarative side of the platform as much as possible.
Personally I think the best route for you to take is the following:
- Work through the Force.com Fundamentals Book
- Next work through the Visualforce Developers Guide — IMO this is a MUST for every developer creating Visualforce pages... you'll be amazed at how much you can achieve without a single SOQL query or Apex controller
- Once you've got Visualforce nailed down, then start learning about Apex via the Apex Workbook. This will explain some of the fundamental concepts of working with the platform, specifically around limits etc.
If you work through the above you'll no doubt pick up some SOQL along the way, and it's not a particularly complicated query language to get to grips with. Once you've done all this you'll have all the basics covered and then you can pick and choose which areas to focus on specifically, i.e. custom apps, mobile apps etc.
Good luck, and don't hesitate to ask questions on this site, remembering to show what you've tried and what you're stuck with.
I've been in your exact situation before =)
I'm a marketing major who dreamed of being a Salesforce developer. That was three years ago - today I'm a Salesforce developer at Google.
Here's what I recommend:
- Learn the non-code side of Salesforce first. You absolutely cannot be a good Apex programmer unless you know core Salesforce extremely well. Here's a great, free resource: https://www.udacity.com/course/ud162
- Start learning Java. There are a ton of great books on Java and no good beginner books on Apex. The good news is there is 95% overlap between the two languages. Out of the five or so books I used, my favorite was Head First Java.
- Once you're ready to learn Apex, start off with a simple Hello World trigger. Then move on to SOQL. Then, combine SOQL and Apex. From there, you want to learn about Governor Limits, batch Apex, Visualforce, etc.
Finally, I created a site to teach people how to code in Apex from the absolute beginning. It was so unnecessarily difficult for me to get to where I am today that I decided to do something about it! Another answer referenced my site on this question as well.
http://www.sfdc99.com/beginner-tutorials/
Best of luck =)
I'm a long-time Salesforce admin who has no programming background and is starting to dabble in code. Echoing a previous commenter, make sure you have a solid understand of Salesforce as a platform and everything you can and cannot do with the declarative (non-code/point-and-click) tools before you even touch code. Build out some apps, build complex business logic, etc. If you've been an admin/developer on Salesforce for a while, you probably already have that. If not, I'd look into resources for the 401-Developer exam--if you have your head around all of those concepts, then you're ready to touch code.
When you are ready to dig into code, I highly recommend: Hands-On: Introduction to Force.com Code (Apex) for Non-Developers
I took this class in person at Dreamforce, and it was great. Above is the link to the YouTube video of the class. You might have to do some digging to find the exercise files, but working along with the class was a good starter for wrapping my head around the basics. (For people with existing developer experience just not Apex, particularly Java, there's a parallel course called Hands-On: Introduction to Force.com Code (Apex) for Developers]
I've also found this to be a good, basic resource: SFCD99: Finally, Apex coding lessons for point-and-click admins!