A few days ago I blogged about an announcement from Adobe that they were releasing a free ColdFusion curriculum. This weekend I got an email from Cody asking about learning ColdFusion in general:
Hi, I am a new ColdFusion developer. What are some good tips, sites, or books to help me out. I've seen the Adobe tutorial but that mainly focus on developing with DreamWeaver which I don't have.
I think the answer to this really depends on how you learn. Broadly, I think you can break things down into the following categories:
Books
If you learn best by reading, then you currently have 2 main options. First is the ColdFusion Web Application Construction Kit series (called "WACK" by most folks). This is a 3 volume set and a pretty hefty set of pages. I recommend first since - well, I'm a bit biased as one of the authors. Your other option is ColdFusion 8 Developer Tutorial by John Farrar. This is a one volume set and is a bit slimmer, but is the only book out focusing on ColdFusion 8.0.1, the very latest release.
While not a book, I have to mention the Fusion Authority Quarterly Update. This is a magazine put out by the House of Fusion folks 4 times a year. While not a 'beginners' guide per se, the magazine is very well done and has a rigorous editorial process. It is worth picking up even if some of the articles are above your current skill level.
Classes
While I'm sure there are more options out there, I know of 2 main options for classroom based training. First are the Adobe classes: Fast Track to ColdFusion and Advanced ColdFusion 8 Development. I used to teach the Fast Track class back about 10 years or so ago. I remember it being quite packed with information. Since these classes are taught by independent instructors, your quality may be hit or miss. I know a few instructors though and they are all top notch people.
The second option I'd recommend isn't really a "beginner" type class, but frankly I don't care. Take a class with Hal Helms. Don't even bother looking at the title. Just take it. Period. If the class involves knitting while underwater, take it. Hal will find a way to tie it to ColdFusion and make it both relevant and educational.
Online Classes
I've been tempted to offer these myself, but in the meantime, the 'big' guy on the block for online learning is Lynda.com. You can view their ColdFusion 8 specific material here. I kind of have a ego-hate thing going on with them since they turned me down as an instructor (I kid, honestly!), but I've heard great things about them from folks I trust, so it is probably worth taking a look.
Online Material in General (Blogs, Mailing Lists, etc)
You can find other materials online of course. This blog is one example, but blogs tend to be a bit scattershot. I'm not going to do 100 blog entries in a row walking you through learning ColdFusion. Rather, I'll cover one topic one day and another some other day. It does make sense to monitor blogs in general though, just to be aware of what's out there. I'll recommend (and again, I'm biased) ColdFusionBloggers.org as a good way to keep up with current ColdFusion blog posts.
As for mailing lists, you can't survive without House of Fusion. They run the mega-popular cf-talk mailing list along with other related lists. cf-talk can get a bit busy (like Fox News can get a bit biased), but even if you don't subscribe to it, you can use the search form as a way to mine the years of data stored there.
Conferences
I feel kinda dumb here. When I posted this entry ten or so minutes ago, I completely forgot to mention conferences. There are some excellent conferences available for ColdFusion developers. We've got cfObjective coming up. CFUNITED. I've also seen a jump in smaller, one day, type conferences the last year as well. Each has their own strengths and folks could probably debate for a while on which is best, but it definitely makes sense to peruse the session list to see what each offers. Unfortunately, I will not be able to make cfObjective this year, but along with CFUNITED, these are the two main conferences I most look forward too, especially in terms of learning.
What do I do?
Personally I'm a fan of downloadable docs and "playing" with the code. You can download all the ColdFusion docs by Adobe (and there is something like 4,000 pages of it) via my shortcuts at the ColdFusion Portal.
I tend to keep the docs and an editor open as I read. I'll create a large number of test files so I can quickly type stuff in and run it. I try to use more than one file so I can jump back to earlier examples and modify them as I learn more.
I'm also a big believer in working on real applications as a way to learn. Now I'm not saying to go out and re-invent the wheel, but why not do it as a learning exercise? There are plenty of ColdFusion blogs for example, but creating a blog could be a good way to help learn ColdFusion. For one, you don't have to worry about product design. You know what a blog does. Secondly, real world apps tend to touch on a lot of different aspects of a language. Database queries, UI, caching, etc. Shoot, even a guest book (which kind of died out on the net a few years ago) would be a great way to get some practice.
Any comments, readers? I don't want to turn this into a "Why didn't you mention site So and So" type comment-fest (but obviously I don't mind folks adding URLs), I'm more looking at comments about the approaches in general.
p.s. It just occurred to me I should add - you can get a trial of Dreamweaver CS4. Obviously you have to pay for it at some point, but if you are just picking up ColdFusion it may be worthwhile to get the DW as well.
Archived Comments
I would also recommend the book "ColdFusion 8 Developer Tutorial" by John Farrar, its a very good book for someone who has never touched CF. I recommended this book to a PHP guy and the feedback has been good.
I think there are two key elements to learning anything: A project and a deadline. Without both, many people tend to languish and get caught up in information overload, and in the end, not much gets acomplished.
So, to extend this to CF... create a simple database table containing dates and events, such as your next vacation. Then create a web page that shows how many days until each event. (e.g a grid with two colums: days from now, and event)
Then create an editor so you can edit the table and secure it. You have until friday to finish, or Monday we'll hire a new guy to do it ;-) ) (just kidding, a little bit)
There was a joke made not long ago about only needing to learn 5 ColdFusion tags.
When faced with 4000 pages of documentation, it would be nice to have them prioritized.
I suppose that's what the books are for, but people generally start with the free documentation and then buy books later.
The Helms and Peters podcast was great, as well as ColdFusion weekly. Burn a CD and listen in the car instead of radio commercials.
Having a certification test date puts the fire under people.
Another online Quick Reference guide http://www.cfquickdocs.com/... which is very handy.
My favorite way to learn has always been modifying existing code. Go find something on RIA Forge that sparks interest and figure out how to make it do something else. Works wonders, and as a bonus you expose yourself to the coding style of others.
My favorite way to learn has always been modifying existing code. Go find something on RIA Forge that sparks interest and figure out how to make it do something else. Works wonders, and as a bonus you expose yourself to the coding style of others.
I agree with Adam, but you don't even have to modify existing code. Just run an example app and then read through the code and figure out how it is doing whatever it does. Start at the beginning: Application.cfm/cfc and index.cfm and just follow the flow to see how things happen.
Thanks for the kind remarks, Ray.
Then again - there are always blogs like this one (and Hal's, and Ben's, and the list goes on). I've learned a BOATLOAD from reading certain blogs and I have made certain blogs "mandatory reading" for my junior programmers.
The one comment I always get back from a new CF Programmer is - "Wow, this community is SO helpful."
Matt Williams commented that he learns by looking at the code of example applications, and that's how I've learned a lot of languages, from BASICA to dBASE III, etc.
I wonder if we could create a defacto standard of placing a button on our applications that says "View Source", and have it do a cffile command to display the ColdFusion source code.
Interesting Phillip. Are you aware that Flex supports this out of the box? When you do a production build, you can specify if you want View Source enabled. It creates a -very- nice UI for browsing, and downloading, the original source code.
Speaking of resources for getting started with CF, Ray had quoted Cody at the outset saying he'd read the "Adobe tutorial [which] focus[ed] mainly on developing with Dreamweaver". I'm guessing he was referring to a book that's definitely worth mentioning as a learning resource.
Called "Getting Started Building ColdFusion MX Applications", and included in the CF docs for 6 and 7 (but not 8), it's a great introduction to CF. At over 150 pages, it's neither too short nor too long, in my opinion. It walks through development of real apps (from a beginner perspective, obviously) and has lots of screenshots.
You can find it in PDF and HTML format at the CF 7 docs page:
http://www.adobe.com/suppor...
Those looking for resources for getting started with CF may want to consider a few more:
First, webucator also offers their training materials online for free: http://www.learn-coldfusion...
Also, I've done a couple of blog entries related to this subject:
Some substantial free training on CF, MySQL, Ajax, and much more
http://www.carehart.org/blo...
Learning resource for beginning web developers
http://www.carehart.org/blo...
And though it's not about CF specifically, it may still interest some to know about:
Adobe's Rich Internet Application Teaching Resources
http://www.adobe.com/educat...
Finally, a couple of categories in my CF411 site seem relevant:
CFML Documentation/Help Tools and Resources
http://www.cf411.com/#dochelp
CFML Certification Preparation Resources
http://www.cf411.com/#certprep
CF-oriented Trainers
http://www.cf411.com/#cftrain
Hope those are helpful.
Depending how old-dated your knowledge in Coldfusion is, I suppose you can also look at the older books (CFMX7 Dummies, Certified CFMX7 Study Guide etc) to learn some basic stuff quick (again). For Coldfusion 8 are not too many books in my opinion, but the SMACK series seem to be good (haven't tried them yet myself).
I miss in the comments/Ray's list the Coldfusion User Groups and the Coldfusion Meetup on http://www.meetup.com/coldf... . I saw some recordings and there are weekly new conference meetings via the website. Quite nice.
I have teached some people myself with the knowledge I have, but it's far from extensive as that you can learn from books etc. I still plan on dividing my blog (norway.weblogforyou.com) between private stuff and CF related, but haven't had the time for that yet (perhaps I should just blog on the Coldfusion blog site).
For me a projectsite has always kept me busy and wanting to learn more, do better etc. I just think of something that might be useful: a blog, a database website to keep track of your movies, a database website to keep track of addresses and contactinfo of friends/family, a magazine on coldfusion, a magazine on computer games, a webshop, a forum and whatever can come to your mind and then try to find the right resources for that. You will learn along the way and quicker than you think.
I started myself at a company that gave me books and Certification exams, but as coding I started with a forum whereafter several other applications for customers. Ever since I am just learning (+ developing) on a daily base.
I ran into this post actually while looking for more teachingmaterial for the people on my current project that need to do a crashcourse Coldfusion.
Also I'd like to say that next to Dreamweaver, which costs money, you can also look into Eclipse (www.eclipse.org), an IDE originally for Java development. They have this nice plugin written for Coldfusion named CFEclipse on www.cfeclipse.org/ (in my opinion better than Dreamweaver).
Perhaps my next project will be some sort of website with a good overview of tutorials hehe. or a lot of snippets and tutorials. I prefer actually to have a site full of Video Tutorials (www.asp.net was a good example, but that's annoying MS and not Coldfusion).
And looking at code can be worthwhile, but can also make you puzzled.
I wish you good luck!
I wonder what the viewership numbers are at Adobe TV?
http://tv.adobe.com/
You can also use EasyCFM (www.easycfm.com) and Coldfusion.TV ( www.coldfusion.tv) to learn CF...
Don't forget about http://learncf.com each tutorial has a working demo with many of the top ColdFusion developers submitting demo code.
I would like to learn more about CFML, MVC and OOP in relation to coldfusion. I am looking at purchasing this book:
http://www.amazon.com/Objec...
But it doesn't seem to teach CFML, it's more for users to learn OOP in coldfusion with some CFML in case you need it (from what I can tell).
Do you know of a good book to invest in which will cover MVC, CFML and OOP in coldfusion? If not, what two books would be the best combination to pick to cover these topics.
As always, I appreciate any help. Thank you!
Joseph
There is the ColdFusion Web Application Construction Kit (CFWACK it's called, if you buy it via my site I get a small kick back from Amazon). John Farrar also has a CF book.