A Journalist Codes: 4 Lessons Learned
A journalist who writes about software writes his own and finds out coding is not easy. In fact, easy is particularly hard.
8 Quiet Firsts In Tech In 2014
(Click image for larger view and slideshow.)
This is the story of a writer who wandered into software development with no formal training in the craft. I like to think I have an edge as a journalist writing about software and systems because I have made all the mistakes, on a smaller scale, that enterprises have to avoid.
Once upon a time, I created my own content management system with PHP, MySQL, spit, and baling wire -- because, you know, how hard could it be?
I was smart enough to see that hand-coding HTML was a poor way to keep a website up to date, but all I really needed was a password-protected web form with one blank for the headline, a text area box for the body of the post, a submit button, and script on the web server to catch those submissions and write them to a database. Of course, I soon discovered the need for features for updating those posts, categorizing them, and composing them more easily. When I was creating a website for someone else, I would show them this wonderful thing I had created: see how easy this is! Often, they didn't seem to think it was easy. Easy turns out to be hard.
I plugged in a WYSWIG editor from a JavaScript library created by Yahoo and then had to write a bunch of data cleanup subroutines for the special characters that would be injected when someone copied and pasted from Microsoft Word. Eventually, it occurred to me that I had created something that was a nightmare to maintain. In the jargon of enterprise IT, I had created my own legacy system. Although my custom code behaved exactly the way I wanted it to, I was doing a lot of unnecessary heavy lifting, recreating things others had done better.
Banner image from the RSVPMaker download page.
That's how I found my way to greater happiness as a WordPress plugin author, creating little bits of custom functionality layered on top of software people smarter than I have created. The one that has shown the most staying power is RSVPMaker for event management on WordPress. My latest is an RSVPMaker extension for Toastmasters clubs, which also has a software-as-a-service sort of incarnation as WordPress for Toastmasters.
I was a terrible computer science student in high school and college because the programs they wanted us to write for practice didn't do anything useful. I probably didn't give the college course a fair chance -- add/drop was my favorite part of college, and I bailed early.
The first computer program I wrote that did something useful was a text filtering utility I dreamed up while working as a reporter for the Waterbury Republican-American, which had drafted me as its network administrator when it first began to bring PCs and Macs into into the newsroom. With the help of a consultant, we managed to kludge together a TCP/IP connection between the Novell LAN to the DEC in the back room that drove the typesetting equipment. I got a book on C programming and came up with a tool for translating the typesetting machine codes into a markup language that could be imported into Quark Express, the desktop publishing program the editors and art department were just starting to use for page layout. I had an OS/2 batch script run in a loop, checking the edit queue on the DEC every few minutes and piping any new copy into that C program, which would write a translated version to a network folder. Crude, but it worked.
As someone who has been writing about the web since it began to emerge as a mass-market phenomenon in the mid-1990s, I soon discovered a new playground. For a self-taught programmer, the glory of the web is that everything you need to know about programming the web is on the web. Most of what I've learned has started by finding a tutorial with some example code and modifying it to suit my needs. Eventually, I began to understand the basics well enough to have some original thoughts. Publishing software as open source also provided some good learning experiences, as when users flagged security flaws in early versions of RSVPMaker.
Here are four things I have learned (and in many cases, still need to learn better):
Easy is Hard
I pride myself on my ability to communicate technical concepts clearly to both technical and non-technical readers, but when trying to explain my own software I often struggle to remember that how it works is not as obvious to everyone as it is to me. Of course, the goal these days especially is to create software that is intuitive, as in easy to use without documentation or training. That's why the programmers at Apple get paid the big bucks, right?
Mythic status aside, are you so sure Apple products are always easy and intuitive? I love my iPad but I'm sometimes mystified about how to perform any but the most routine tasks on it. Is Facebook easy, or do we put up with the ways that it is hard and confusing (and always changing) because our friends are there, and that makes it worth the effort?
I think WordPress itself is easy, but when I set up a website for other people and tell them they can administer it for themselves, often that doesn't go well. Instead of finding it easy, they are overwhelmed by the number of options on the administrator's menu and don't know where to start. A lot of things are easy, once you learn them.
Making things easy or easier is a worthwhile and never-ending quest. To the extent that people must invest some effort in learning something that's not easy, make sure the payoff is there for them.
APIs Simplify Life (Until They Change)
One of the benefits of building on a standard platform or tapping into common web services is all the code you don't have to write. I've spent many hours browsing the WordPress developer's documentation and every once in a while diving into the source code to see how some undocumented or
Next Page
David F. Carr oversees InformationWeek's coverage of government and healthcare IT. He previously led coverage of social business and education technologies and continues to contribute in those areas. He is the editor of Social Collaboration for Dummies (Wiley, Oct. 2013) and ... View Full BioWe welcome your comments on this topic on our social media channels, or
[contact us directly] with questions about the site.

1 of 2

More Insights