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.
- 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 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.
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.