Tips & tools for journalists who want to learn programming skills

So you want to become a developer, journo-coder or hired geek and you’re wondering where to begin. Maybe you’ve coded a bit before and you’re wondering what languages to choose, or maybe you’ve never seen a piece of code and are starting from the beginning.

It can be overwhelming to think about all the programming, markup and data languages in the Web application world. So, let’s make it easier by breaking them up into front-end code, back-end code and data manipulation code.

Front-end code

The three primary languages that help build front-end design code are JavaScript, HTML and CSS. Here’s what they do:

  • JavaScript: A scripting language to manipulate data between the server and the Web page. It can also alter the page based on user or server communication.
  • CSS: A style language to tell the website how the layout, fonts and colors should look.
  • HTML: A markup language to outline the structure and content of the page.

There are several tutorials to help you write these languages. One great JavaScript tutorial is a badge-earning adventure into JavaScript via Code Academy. A quick go-through of CSS is available at CSS Basics, but I recommend grabbing “Designing with Web Standards” by Jeffrey Zeldman. HTML and CSS are rapidly changing with CSS3- and HTML5-supported browsers, and if you’re just starting to learn, you should become familiar with them as well as the older versions. For a great book on learning the powerful capabilities of HTML5, check out “Dive into HTML5.”

Back-end code

There are many scripting languages that operate server-side to help send data to Web applications. Two of the most prominent ones in journalism news applications are Ruby and Python. Many Web applications are built using Web frameworks that allow for easier access and manipulation of data by writing wrapper code for database transactions, template rendering and object sorting/filtering/referencing.

The prominent Web framework for Ruby developers is Rails (often called Ruby on Rails). One of the most prominent Web frameworks for Python developers is Django. In addition to Ruby and Python, many blogging platforms use PHP as a language and WordPress as a Web framework.

One great introduction to Rails is the interactive website “Rails for Zombies.” The Python Software Foundation offers an interactive introduction to Python, and here’s a (somewhat advanced) Django tutorial.

Data manipulation

Sometimes you just need a database and a way to sort, organize and display it. MySQL is a fairly simple-to-use relational database that has several admin interfaces that allow you to import data from simple files such as a CSV.

One popular way to have this running on your machine is to use something like phpMyAdmin. Here’s a basic tutorial on how to use it. With the admin interface, you can sort records, import files into your database and put together basic data reports. In addition, if you learn some SQL (a database language), you’ll have a powerful set of tools that you can use in back-end development. You can practice SQL here.

If you just want to sort data and don’t need a database, consider using Microsoft Excel. Lynda.com, a site for online tutorials on many different programs, has a great introduction on the power of Excel.

Some tips, words of wisdom

To get the most out of your leap into programming, consider these tips:

  • Keep your first session short and sweet. I know coding can quickly become addictive, but it’s also easy to get burnt out and forget what you’ve learned the next time you sit down. I recommend keeping first sessions to less than an hour.
  • Focus on one language at a time. Once you reach the intermediate level of a language, learning another will be easier.
  • Ask questions and go easy on yourself. Learning a new code language is not unlike learning a foreign language. It’s easier with others. And, just because you don’t get something the first time, doesn’t mean you won’t get it with practice.

There are many different types of languages that you may find useful. If you take time to learn one (or a few), you’ll find they can be remarkably helpful for reporting, storytelling and creating news interactives.

Most of the languages mentioned in this story are part of the open-source community — a set of communities that thrive on passionate developers who spend time improving the languages and sharing skills and knowledge with one another. If you enter these communities, you’ll likely find many intelligent developers who will help you along the way.

And once you’ve mastered your first set of skills, you might even be able to introduce a new person to the languages you’ve learned.

This story is part of a Poynter Hacks/Hackers series featuring How To’s that focus on what journalists can learn from emerging trends in technology and new tech tools.

We have made it easy to comment on posts, however we require civility and encourage full names to that end (first initial, last name is OK). Please read our guidelines here before commenting.

  • http://twitter.com/DigitalDionne Dionne N. Walker

    Very useful!

  • http://profiles.google.com/asweigart Albert Sweigart

    Also would like to point out a free book also aimed at people completely new to programming: “Invent Your Own Computer Games with Python” http://inventwithpython.com