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:
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.
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).
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.
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.
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.
One month soon, I will require myself to test everything on Mobile platforms.
- 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?