The Last Five
6. Regular Expressions
You search relational databases with SQL, XML with XPath and XQuery, and plain text with regular expressions. For example, you can do things such as find and remove all comments from an HTML document via a single command. The simpler text-searching functions built into the various development languages such as "IndexOf" or VB classic's "InStr" function or "Like" operator are no match for regular expressionsand every major development language now provides access to a regular expressions implementation. Although the expressions themselves are difficult to write and even more difficult to read (a throwback to earlier days of computing), they're a powerful and underused tool.
7. Design Patterns
Just as OOP simplifies programming by letting you collect and classify objects, design patterns classify common object interactions into named patterns. The more you use OOP, the more useful design patterns become. The most common patterns have names that are working their way into the common development argot, so you need to understand them at least well enough to keep up with the general flow of information.
8. Flash MX
When you need more client-side graphics and programming power than you can get with HTML and CSS, Flash is the answer. Programming in Flash is much faster and easier than programming graphics applications with Java applets or .NET code.
In its newest version (MX), Flash is not just a drawing and animation package, it's also become a highly programmable application environment. and it's capable of consuming SOAP Web services and calling ColdFusion, Java, or .NET code running on a remote server. Flash is ubiquitous; its runtime is on most of the client machines in the world, including handheld devices, set-top boxes, and even the new Tablet PCs, so using it may actually extend your programs' reach.
Get familiar with Linux. Install it on an old machineor a new one. Download the GUI interfaces and program some applications on it. Install Apache and write a Web application. The world no longer belongs exclusively to Windows, and that trend will probably continue. In contrast, if you're a hard-core Linux developer, drop your antipathy toward Windows and see what you can adopt. There's a reason why Windows is still king of the desktopand it's not just that Microsoft controls the market.
There's no telling when your company may decide to switch from Linux to Windows (or vice versa), or when you might want to switch to a company that uses a different platformor when you might come up with the next killer application ideaso you should try to gain experience on more than one platform.
Although SQL isn't as new as most of the technologies discussed in this article, and it's likely to diminish in importance over the next decade, it's still an essential skilland one that many developers either don't have or understand only well enough to use it inefficiently. Don't rely on GUI-based SQL builders to do the job for you; write your queries by hand until you're comfortable with the basic SQL syntax. Not only will understanding SQL now help you learn XQuery later, but you may find ways to immediately simplify or improve your current development projects.
Finally, (and yes, I realize this is No. 11), the most important skill you can acquire is curiosity. Try things out. That new language or new technology may or not be important to you in your present or future job; but not everything you learn needs to be job-focused. Don't be afraid of failing; it's always difficult to be a beginner at any new technology. Most failures happen because people expect too much of themselves too fast. Be satisfied with small steps, and don't let time (or the absence of it) get in your way. Instead, make time to look at, research, and test new development techniques and tools.
You may never need to become an expert in any of these technologiesand my selections here may be way off-base for your particular situationbut by cultivating curiosity you'll find out the things that you do need to know.
| Editor's Note: Go to the talk.editors.devx discussion group now to assess Russell's picks and to contribute a list of your own.