Posted on March 15, 2013
Get started with Web coding. Part 4: Software and CMSs
This post deals with two common assumptions:
- You need to learn particular software programs (e.g. Dreamweaver) so you can make things for the Web.
- Journalists work inside corporate content management systems (CMSs), so there’s no need for them to know Web coding.
Both of those are incorrect. Let’s proceed.
Software for Web work
Dreamweaver is a nice program. I’ve used it for many years. But you don’t need it, and what’s more, too many people unknowingly make a lot of very bad code because they are using Dreamweaver. This last is the basis for my strongest objection to Dreamweaver: It does not help you learn how to use code correctly.
Another reason to ignore Dreamweaver: You’re not likely to find Dreamweaver in most professional newsrooms.
The software a Web coder needs:
- A text editing program, for writing code. Windows Notepad and Mac TextEdit are not — repeat NOT — recommended. The best entry-level (free) programs are TextWrangler (Mac) and Notepad++ (Windows). People who code recommend TextMate (Mac) or Sublime Text (Windows or Mac).
- An FTP program, for uploading files to a Web server. There are many options. FireFTP is a free Firefox plugin. FireZilla is a free stand-alone program (Mac, Windows, Linux).
- An image editing program, for photo sizing and optimization, as well as creating graphics. I use Adobe Photoshop; there are numerous options.
In teaching journalism students, I think it’s worthwhile to spend some time teaching an image editing program, because serious ethical issues are involved in photo editing.
The text editing programs require no instruction. Every student can download and use those programs without help.
A demonstration of FTP might be helpful. Students can be surprisingly clueless about how the Web works. What happens when you type a URL into your Web browser? Where are those files that the browser downloads for you? They are on a Web server. How does the Web server interact with the Web browser on your computer? If you don’t understand how to manage files and folders on your own computer, and on your server, you’re going to run into problems.
No time should be spent teaching Dreamweaver.
‘Infect the CMS’
That was the title of a session at the 2013 NICAR conference, presented by Heather Billings, Jacob Harris and Al Shaw. The gist of the idea: Coders cannot build news apps, or data apps, inside the CMS — the content management system.
The CMS is built for handling articles, text, and photos. Maybe it handles video well, or maybe not. The CMS is not flexible. It expects articles, and pages that are like a big table of contents, with links to articles. The CMS does not expect an interactive animated feature with multiple options. The CMS does not expect a map that allows interactions.
So innovative features, interactive features, must be built (by coders) outside the CMS. And then (as explained in “Infect the CMS”) the coders must build new hooks into the system that allow those features to be discoverable — to be found by the CMS search engine, to be visible in the CMS archives, to show up in the “related items” sidebars of related stories in the CMS.
So when you hear someone say, “Journalism students don’t need to learn code, because they will always work inside a CMS,” you need to remember that every CMS has limitations. The limitations prevent innovation inside the CMS — so all the innovation must take place outside.
Those who cannot work outside the CMS are trapped in the CMS.
WordPress and hosted Web templates
A writer who wants only to write does not need to learn any code at all to have a website. Anyone can start a free blog at WordPress.com and write to her heart’s content.
So the person who says, “I want to learn to code,” really needs to think, first, what he or she wants to do online. What does he want to build? If all he wants is to display old media works — photos, illustrations, text, videos — then code is not required.
If you want to design the future, these readymade templated sites will not help you do that.
If you want to design the future, learn to code.