A Journalist Codes: 4 Lessons Learned - InformationWeek

InformationWeek is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

IoT
IoT
IT Life
Commentary
12/23/2014
02:21 PM
David F Carr
David F Carr
Commentary
Connect Directly
LinkedIn
Google+
Twitter
RSS
100%
0%

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
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.
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 Bio
We welcome your comments on this topic on our social media channels, or [contact us directly] with questions about the site.
Previous
1 of 2
Next
Comment  | 
Print  | 
More Insights
Comments
Newest First  |  Oldest First  |  Threaded View
Page 1 / 2   >   >>
dried_squid
IW Pick
100%
0%
dried_squid,
User Rank: Moderator
12/29/2014 | 1:50:36 PM
coding - self or others
    A good title, caught my interest. I presumed the writer was new to coding, not a writer who became a coder. And more code and broader experience than me.

    I'm not a coder. I do it for myself, and not others. Like preparing a meal for myself, so I'm not a cook.

    Like some people pay iTunes, and others play their guitar, but not because they're a musician.

    Like some people use the camera program modes, and other shoot manual.

    I don't think everyone should do DIY everything, but I do think more people should make time to do DIY something for the long term.

    My personal devotion is to reusing files in different applications, so I fiddle with perl for folder listings, and more use of plain text, and HTML wordprocessing, to allow more use of regexes.

    I don't consider this primitive or old-fashioned, I'm just lazy, and suffer a disdain for redoing the same thing to fit each and every new app.

    In 2015, I hope to try Haskell. Happy New Year all.

   Thanks for the column, tweeked my psyche.

kstaron
50%
50%
kstaron,
User Rank: Ninja
12/29/2014 | 12:30:10 PM
A nod to renaissance learning
You never really understand how complicated something is until you try to describe it to a third grader so they understand it. Simple isn't easy. After a dismal programming course in college I leave the programming proper to professionals perfering to grasp the major concepts as opposed to the nitty gritty of slinging code. It's always a good thing as a journalist to have some skills in the area, if nothing else so you can describe it to the masses. Everyone should learn something other than their main discipline, it help the brain to be a renaissance man.
David F. Carr
50%
50%
David F. Carr,
User Rank: Author
12/29/2014 | 9:44:31 AM
Re: Happy users
@jfeldman, what are the "good old days" in your book? I read it as a throwback to a time when you were experimenting with tech hands-on, rather than directing other people to do so -- but not sure if that's what you meant.

Anyway, thanks for your note.
asksqn
50%
50%
asksqn,
User Rank: Ninja
12/27/2014 | 5:01:47 PM
Conversion imminent
Bravo, a writer who understands tech.  It sounds like Open Source can you use your skill sets.  Come over to the Linux side...we have cookies.
Somedude8
IW Pick
100%
0%
Somedude8,
User Rank: Ninja
12/27/2014 | 12:45:21 PM
Simple
Its hard to explain to folks that the hardest thing to do in software development is "simple". From good naming all the way up to arhcitecture, its almost like we have some massive OCD instinct driving us to complicate things. There is a story on TheDailyWTF called "The Complicator's Gloves" that probably explains it the best I have heard. I try to keep it in mind at all times, but on occasion still end with something that could have just been gloves.

zerox203
100%
0%
zerox203,
User Rank: Ninja
12/25/2014 | 5:42:44 AM
Re: A Journalist Codes: 4 Lessons Learned
As someone who's in the exact same boat, David, this is ringing an awful lot of bells and rounding out my end-of-year retrospecting quite nicely. I have no formal programming training either, but for some reason, I decided to embark on my own journey to learn this year. Software design is certainly a lucrative career, but not often for those without degrees. It's a lot like picking up an instrument (and the reasons are similar, too), except much more time consuming and not nearly as immediately satisfying. To say I have a new appreciation for people who do this daily is an understatement, but you're right - those daily lessons scale up to the enterprise level quite easily, and the benefits are always forthcoming (not the monetary ones, the other kind).

APIs are a godsend, but one does wonder if we're losing something from the days of yore. It's great to just plug something in and see immediate results, but it almost ends up being a case of too many cooks spoiling the soup. In other words, when things become too extensible, portable, and customizable, we end up with feature creep out the wazoo and tons of redundant software that does the same thing as something else, or that fills a niche that doesn't exist. Competition with 'because that's the way it is' is definitely an unforseen hurdle that I'm feeling hugely. I suppose musicians, artists, etc. experience this too, but you can't get the  same immediate 'this looks/sounds nice' as easily with software. It's very easy to create something and have it literally have 0 clicks or downloads. That's rough, and another good lesson at the enterprise level. This was a refreshing holiday read.
PedroGonzales
100%
0%
PedroGonzales,
User Rank: Ninja
12/24/2014 | 5:39:27 PM
Re: Happy users
this is a great article.   There is no better experience in developing software than your own.  This goes to show you that there are many unexpected challenges for a developer that, you as a programmer, couldn't even imagine.  But, as time progress, we get better and better.
jfeldman
100%
0%
jfeldman,
User Rank: Ninja
12/24/2014 | 2:29:22 PM
Re: Happy users
I really enjoyed reading this, Dave. Reminds me of the good old days. Happy holidays!
David F. Carr
100%
0%
David F. Carr,
User Rank: Author
12/24/2014 | 10:59:51 AM
Re: Happy users
BTW, because this is an insider thing I should explain that @ChrisMurphy is referring to a screen scraper app that pulls in headlines and links from InformationWeek.com and sister sites like Dark Reading and formats them as suggested tweets, with the headlines and the author's @handle if we have it. Connects to the HootSuite API so social posts can be tracked and broadcast to multiple networks.
David F. Carr
100%
0%
David F. Carr,
User Rank: Author
12/24/2014 | 10:00:40 AM
Re: Happy users
Thanks, Chris. That's a perfect example of a pattern: I cook up something that makes life easier for me and works the way I want it to work, then look for opportunities to share it. I'm in good company there. When I saw him at Gartner, Woz said the early Apple computers were designed the way they were because that was the computer he wanted to own. A lot of good tech is created for selfish purposes.
Page 1 / 2   >   >>
Slideshows
IT Careers: 12 Job Skills in Demand for 2020
Cynthia Harvey, Freelance Journalist, InformationWeek,  10/1/2019
Commentary
Enterprise Guide to Multi-Cloud Adoption
Cathleen Gagne, Managing Editor, InformationWeek,  9/27/2019
Commentary
5 Ways CIOs Can Better Compete to Recruit Top Tech Talent
Guest Commentary, Guest Commentary,  10/2/2019
White Papers
Register for InformationWeek Newsletters
State of the Cloud
State of the Cloud
Cloud has drastically changed how IT organizations consume and deploy services in the digital age. This research report will delve into public, private and hybrid cloud adoption trends, with a special focus on infrastructure as a service and its role in the enterprise. Find out the challenges organizations are experiencing, and the technologies and strategies they are using to manage and mitigate those challenges today.
Video
Current Issue
Data Science and AI in the Fast Lane
This IT Trend Report will help you gain insight into how quickly and dramatically data science is influencing how enterprises are managed and where they will derive business success. Read the report today!
Slideshows
Flash Poll