Last week we started a new series titled “Professional Development for Professional Developers” where I outline some traits of awesome web developers and offer advice for those new (or not-so-new) to the field.
Keep Up with the Industry…
…but not everything going on. If you want to be on the bleeding edge and always using the latest-and-greatest software, by all means go for it, but realize that your projects’ codebase will be scattered across languages, frameworks, and platforms. There’s a certain level of technical debt that a company takes on when building a project using new tools. Just like stress, it’s important to achieve a balance between using new technologies and keeping the development team on the same page.
I’ve found that Twitter is a great way to stay up to date. I find people/groups regularly tweeting useful links and save what looks interesting to Pocket (formerly Read It Later). Really useful information that I want to hold onto long-term goes into neatly-organized notes in Evernote. If you do a lot of work with a particular language, framework, or tool, you should seek out good resources on that topic and subscribe/follow/circle/other-verb.
To get you started I’ve put together a public list with some of my favorite development resources on Twitter.
Never Stop Learning
Over the course of my career I’ve built dozens of WordPress sites. It didn’t matter if it was a complex site with lots of moving parts or a quick-turn microsite I made a point to improve with each site I turned out. It could be a new way of marking up your templates or a new plugin that changes your workflow, but the point is to always keep growing. This can be difficult to handle in a corporate environment where you’re only working on one or two apps but you can’t afford to let a stagnant workload cause you to stall – find an open-source project in need of help or start something of your own and keep your mind sharp.
In philosophy there’s a saying referred to as the Socratic Paradox that states: “I know that I know nothing.” A more common take on it would be “you don’t know what you don’t know.” Good ideas conceived in one language often influence other languages but that proliferation can only happen when developers learn about other areas of programming. For example, the Active Record pattern was popularized by Ruby on Rails. Its influence can now be found in non-Ruby frameworks including Laravel, CakePHP, and ActiveJDBC.
When I began programming I was doing a lot of custom content management systems. I took pride in how flexible (I thought) the system was and scoffed at the idea of using a third-party CMS. “They’re too inflexible,” I thought, “I’ll just end up having to build around it all.” After completing my first project that required a custom WordPress theme, I had to step back and realize that rolling my own content management systems was largely unnecessary. Here’s this beautiful, powerful, and free system with a vibrant ecosystem of third-party themes and plugins. How many hours had I spent writing and re-writing user authentication systems, page editors, and file upload utilities?
If you want to write your own CMS then by all means do so (in fact I’d recommend that everyone write one at least once as it’s a good ego check), but realize that building on top of existing systems that offer security patches, third-party extensions, and data import/export workflows will save you time, money, and headaches in the long run. As an added bonus learning popular systems like WordPress or Drupal will also make you more valuable to clients and employers. If you do build something custom, learn from the successes and failures of others; adopt what works well and find solutions to what doesn’t.
To be continued…