Sunday, March 13, 2011

Resources that helped me learn Force.com development





It has been five plus years now that I have been doing the majority of my development work on the Force.com platform. It has been a fun and sometimes frustrating journey to go from a self taught PHP developer who was at home with the LAMP stack to developing in the "cloud" with the Force.com platform. Since you can’t go to college to learn Salesforce's platform I thought I would take a minute to share with others the free resources that have helped me on many late nights as I hammered out some code for a client. This list is by no means exhaustive but it includes the main places I go when I need direction or when I need to sharpen my skills.

Salesforce.com generated content:

The first place I always turn to is the Salesforce.com generated content (most of which can be found at http://developer.force.com/). Hats off to the team at Salesforce for creating a killer platform and then taking the time to document it clearly. Weekly there are new webcasts about the platform and it seems like their documentation is updated with almost every release. If you are anything like me you don’t remember every bit of syntax...so I have the APEX, Visualforce, and API docs always bookmarked for quick reference.

They have also made available their "Dev 401 Building Applications" and "Dev 510 Apex and Visualforce" level classes on iTunes U so you can download over 15 hours of classroom teaching for free. If you are not familiar with iTunes U all you need is iTunes installed on your computer and you can download a bunch of very cool classes (Salesforce classes, Stanford iPhone dev classes, etc) for free. If you have the time these two courses are a great in-depth overview of development on the platform.

Lastly I will mention Dreamforce (even though it is not free… get your work to pay for it) the annual conference for Salesforce. There are tons of sessions you can attend to learn basic and advanced Force.com development. Plus you get to network, drink a lot of free beer and usually hear a good band.

The very active Force.com developer community:

From the developer evangelists to regular developers there are a number of very active and accessible people who are blogging, tweeting and making videos on how to work with the platform. Here is a short list of some of the blogs I have found most beneficial (I know there are many more out there...please email me if you know of some good ones!):

1. http://blog.sforce.com/ - This is the official blog that is maintained by Salesforce.com. A must-read to stay up-to-date on all things related to the platform.
2. http://gokubi.com/ - A blog written by Steve Andersen, a Solution Architect at the Salesforce.com foundation.
3. http://www.tehnrd.com/ - I love the style of writing on this one. Jason is also a great reference on how to use jQuery on the platform.
4. http://blog.jeffdouglas.com/ - Jeff is one of the co-authors of the Salesforce.com handbook and is always cranking out valuable content.
5. http://www.embracingthecloud.com/ - Written by Mike Leach at Facebook, this blog has in-depth entries on development on the platform.
6. http://wesnolte.com/ - The other co-author of the Salesforce.com handbook and a pretty smart chap.

I am a pretty late adopter to Twitter, joining only a couple of months ago. In that short time, a day has not gone by where I don’t learn about something new from the many people Tweeting about Salesforce. If you are not on Twitter join tomorrow and follow some of these people. Even if you don’t Tweet a thing, I guarantee you will learn a ton from the stream of consciousness out there. 

Two other areas to go for code samples are the Cookbook and the Code Share.

Force.com discussion boards:

In my opinion, the discussion boards on developer.force.com are the best place you can go to get accurate and quick advice when you are stuck on something. I have been on other boards where the tone of the experienced developers is arrogant and condescending. That is not that case with these boards. I remember when I was first starting out (and still today) asking pretty simple and basic questions with a little hesitation. Pretty much every time I have asked a question I have gotten a response from a fellow developer, evangelist or product manager that helps me figure out my issue. In the beginning this was the most important resource to me.

Developer challenges:

Over the past couple of years Salesforce has put on a number of developer challenges. These challenges have given me the freedom to be creative and create some stuff on the platform that no client would ever pay for. However, they have sharpened my skills and allowed me to think out of the box when it comes to the platform and what is possible on it. I regularly use code from my challenge entries when I deliver client work. I even have taken part in other companies challenges (PayPal) and written my entries on the Force.com platform. I would encourage everyone to take part in the challenges even if you have to work a couple nights to accomplish it. You learn a ton from them, meet fellow developers, and you might even win an Apple product. 

Banging my head against it:

Lastly, I am a self-taught guy. I do not have a Computer Science degree and have never taken a programming class. The only way I know how to get better at development is to do it, get frustrated, bang your head against some code for hours, and then finally figure it out. It is frustrating but when it clicks it is all good. Taking the time to get your hands dirty is probably the best way to learn the platform.

The Force.com platform is a great environment for a developer on these days and there is a mountain of resources out there to help you if you take the time to look for them. Hope this was of some value and would love to hear from you about all the resources I missed or simply don’t know about. Thanks!