What should I learn? I’ve heard this proverbial question asked again and again when interviewing job candidates, talking to new CFer’s, and on blog comments. After tackling an advanced topic like duck typing I thought I would throw a bone to those newbies out there. Or maybe those that have been developing CF for several years and have become stagnate in their skill level. Well, if I were forced to create a list of important skills that CF folks should have here would be my list:
1. Learn the language – I know, this sounds trivial but hear me out. Many developers have come way back from the Coldfusion 4.5 and later days. When you have been using CF that long you tend to get comfortable with the set of tags that you use and don’t attempt to learn newly released tags. Regularly browse through the CF documentation and try to write some small test applications that use each of the CF tags and functions. You will be amazed at how efficient your code will become. It seems I’m always learning new tags/attributes that make my code shorter, more understandable, and more elegant. It would also be wise to take the CF certification exam. While not exactly a necessity it would be a wise career and personal move. The key is first become an expert on the language.
2. Learn proper database design – Coldfusion was designed in part to make database access trivial. With its roots grounded in this area and the fact that most (if not all) large web applications are database driven it is important to learn database concepts. Learn proper table structure, proper relationships between tables, and learn SQL. Grab a good book on database design including a discussion on normal forms, what constitutes good vs. bad design, and how to optimize your SQL statements.
4. Learn object oriented design and programming – Oh boy, this is the biggie. This weeds out the men from the boys. There are many classical books on OO design and programming so instead of attempting to explain why this is important just learn it now and you can thank me later.
5. Learn an application development methodology…..or two – Well, if you’ve made it this far you are well on your way to becoming a Coldfusion web application guru. There are a few last pieces to the puzzle. One final piece is learning an application development methodology. This simply means learn the process of how to create successful web applications. There are many methodologies out there from classical (waterfall, iterative prototype) and many new ones (the agile movement, although many people feel this is a take off on the iterative prototype). What you will find is that you rarely use just one and most projects will call for a blending of several different processes.
6. Learn a framework and study your design patterns – this could actually be moved up in the list but it doesn’t fit too terribly bad right at number 5. Learn to use an application development framework. A framework is basically a template you can use to help get a running start on your application (from a design perspective and a coding perspective) and create consistency throughout your code which becomes important as the number of developers on your projects increases.
7. Plug into the community – this kind of goes without saying. After learning/studying items 1-6 you will surely find enough websites, books, blogs, podcasts, and user groups to fill your time. Let’s face it, we are all short on time but it doesn’t take much to spend the first 5-10 minutes of everyday hitting a couple of blogs or spending the ride home listening to a podcast – and the benefit is huge.
8. Start over – that’s right! Now that you’ve made it through number 7 good old Adobe has released more CF tags for you to learn so get busy. Reread the Pragmatic Programmer or the Mythical Man Month, restudy those CF functions, and reread my post on duck typing (shameless plug that is bound to spark some rants!).
These items aren’t meant to be in any particular order (we could probably have many good discussions regarding which should be learned first) but the order I presented is definitely one such avenue.
Read Full Post | Make a Comment ( 1 so far )