What technologies, other than ColdFusion, should a developer know?

Fusion Authority recently ran an article called What's Hot? What's Not? Where Do We Go From Here? subtitled "What technologies, other than ColdFusion, should a developer know?". Mike Henke followed up the theme with a post called "What's Hot & Where do we go from here?".

I'm pretty sure I don't have the insight that other people have who have already written on the subject. But it seemed like a fun exercise, so I thought I would toss in my two cents with:

What technologies, other than ColdFusion, am I learning?

I'm not sure what technologies you should learn, but here are the ones that I am learning:

Automated Testing

In November, I started having "New Month's Resolutions". New Year's resolutions are apparently too broad for my small and lazy brain. I inevitably procrastinate.

Anyway, for November, it was "Write automated tests for all new code". That means that any time I write new code or change existing code, I write automated tests for it.

This meant that the start of November was a bit painful, but it forced me to learn or improve at some technologies that I had long been intending to give some attention. For me, these were MXUnit and Selenium (via CFSelenium).

I have been trying my best to follow TDD. Overall, I have found this very rewarding. I have found that not every piece of code that I write is worthy of having an automated test (small visual changes, for example), but most of the code I write could and should have a test associated with it.

This has really helped with subsequent changes to the same code and allowed more comfortable refactoring (in fact, it isn't really "refactoring" unless you have tests in place). Another big benefit is that it has made it easier to subcontract some work - very nice since I am a bit busy lately!

I was doing some TDD before, but I am doing it more consistently now and I love it.

Git

My New Month's Resolution for December was to put every project that I work on in Git. So far, I like this much better than Subversion. Like November, December started with some headaches. But I think the results will be worthwhile.

I don't like using command lines myself, so I downloaded SmartGit. Overall I really like it. It makes easy things in Git fast and easy and keeps me from making mistakes that I would be certain to make with out it. For example, I can just check a box to automatically do a push after a commit. I would likely forget without this.

For now, however, it doesn't look like even a newcomer to Git can use SmartGit for everything. It doesn't have a "checkout" feature which seems pretty essential. SmartGit seems to work very well if you never have conflicts. Hopefully it will improve in that regard (or I will figure it out better).

HTML5

I don't have a New Month's Resolution for this, but I think HTML5 is definitely something to learn. I just finished a bunch of work on integrating video with HTML5 (for which I plan to release an OS project soon) and I think HTML5 can be useful right now, today.

One tool that I have found particularly helpful in working with HTML5 is HTML5 Boilerplate. You will need to delete plenty of code from it as you adjust it to your personal needs, but it is a great starting point for getting into HTML5 in a way that you can take advantage of today.

jQuery

The more I use jQuery, the more I love jQuery. One month soon, I am really going to dedicate myself to learning it better so that I can take advantage of it even more.

ANT

I haven't used ANT, but one month soon it will be the subject of a New Month's Resolution. I'm eager to get started on it.

Mobile

One month soon, I will require myself to test everything on Mobile platforms.

Other Stuff

  • SQL: Always more to learn here.
  • Mylyn: Dear Mylyn, I haven't forgotten about. One day soon, you and I are going to start seeing a whole lot of each other...

That's it for me, what about you? Have I missed anything major?

Comments
Might want to mention how beneficial having at least a basic understanding of Java or C# .NET can be (choice depends on the CFML engine you're using).
# Posted By MikeZ | 12/21/11 11:35 AM
Mike,

That is probably a good point, but I am not the one to make it. I can barely understand the simplest of Java and even less of .NET stuff. Someday...
# Posted By Steve Bryant | 12/21/11 4:05 PM
Great list - very close match to my own! We're still using VSS at work for sourcecode control (*gasp*), and I've been wrestling with whether a switch to Git or SVN would be better. Opinion? I'm also toying with boning up on .php, but the more I learn it the less I'm a fan.
# Posted By Doug | 1/24/12 8:12 AM
Doug,

I am far from an expert on source control and I know almost nothing about VSS. That being said, nearly every time that I use SVN I feel like it is fighting against me somehow. It is hard to explain, but that is my experience.

When I use Git, on the other hand, I feel like it is a little impatient with me because I am using it wrong. Although that still has its unpleasantness, I feel like I can learn to use it better and in the meantime it is working much better for me that SVN ever did.

I am putting all of my new projects on Git and I plan to start migrating SVN ones to Git soon.
# Posted By Steve Bryant | 1/24/12 11:08 AM
BlogCFC was created by Raymond Camden. This blog is running version 5.8.001.