If you want a job in media, technology or a related field, make learning basic computer language your goal this summer. There are plenty of services—some free and others affordable—that will set you on your way. Teach yourself just enough of the grammar and the logic of computer languages to be able to see the big picture. Get acquainted with APIs. Dabble in a bit of Python. For most employers, that would be more than enough. Once you can claim familiarity with at least two programming languages, start sending out those resumes.
Posted on .
If you want a job in media, technology or a related field, make learning basic computer language your goal this summer. There are plenty of services—some free and others affordable—that will set you on your way. Teach yourself just enough of the grammar and the logic of computer languages to be able to see the big picture. Get acquainted with APIs. Dabble in a bit of Python. For most employers, that would be more than enough. Once you can claim familiarity with at least two programming languages, start sending out those resumes.
—
Kirk McDonald: Sorry, College Grads, I Probably Won’t Hire You - WSJ.com
This is great advice. I know it’s great advice because I’ve heard it half a bazillion times in the past year. I’d love to teach my journalism students some of these skills, but first I have to learn them.
If you know what McDonald means by “the grammar and logic of computer languages” (I do not), I could use your help. Got any specific recommendations? Where should I start?
(via kimlisagor)
Hi, Kim, awesome question. I disagree a little with what McDonald is saying here, specifically that knowing a little bit about programing makes one better prepared to allocate resources (I’d say the exact opposite is just as likely true) or that dabbling dilettantism for its own sake is necessarily a good thing.
However! I’m certainly a proponent of code literacy and that journalists should learn more about all aspects of the business, whether it’s how the CMS works or how ads are sold.
The highest bang/buck ratio for your students would be to learn HTML and CSS. They are going to be publishing on the web, they need to know what that means and why the CMS is throwing in stray tags or why copying and pasting from Word is probably going to get screwed up. Here’s what I’d consider a basic level of understanding:
- How HTML tags work, including attributes and nesting.
- Basic semantics and hierarchy (the difference between an h1, h2, and p tag)
- What HTML entities are, why they matter, where to look them up
- The difference between an ‘id’ and a ‘class’ and when to use them
- How to reference external media, like images
- How CSS syntax works and how to reference external stylesheets
- How to use CSS selectors
- Basic styling - color, borders, backgrounds
- What “box model” means and how this affects the width, height, padding, borders, and margins of an element
- How floats and clears work
A more intermediate to advanced level of understand would include:
- Understanding doctypes and why they matter
- Getting up to speed on the new semantic HTML5 elements like header, footer, section, article, and aside and when to use them properly
- What the DOM is
- CSS positioning
- CSS psuedo classes and elements
- How different browsers render pages
- Building fluid and adaptive layouts
- What responsive design is and how to use media queries
There are certainly plenty of things I’ve left out or forgotten but this should keep just about anyone busy for the summer.
As for programming (btw, the difference between markup, styling, and programming is another good thing to figure out), it’s tempting to think Javascript is a good language to start with. It’s ubiquitous, native to the web, and looks good on a resume, especially alongside its more comely cousin jQuery.
There are a few problems with Javascript as a starter programming language. First, you really need to understand how web pages and browsers work to really get what Javascript is doing, otherwise, it just feels like magic; a pretty intimate understanding of the DOM really helps. Javascript, as a language, has a few truly bad parts that are easy to avoid if you understand programming concepts more broadly but can be hard to get over if you’re learning the fundamentals of programming at the same time.
I’d recommend starting with a high-level, interpreted language like Python or Ruby first. They’ll run on any computer, are easy to start with, you can see the results of your programs immediately, and they don’t require anything more than a text editor. My personal preference is Python.
These days, there’s no shortage of places, many of them free and online, to learn all of this stuff. And, true to Sturgeon’s Law, most of it is crap. There are a few bright spots, some of them requiring a little bit of money.
- Treehouse is a really intriguing technology-focused learning site. They’ve got courses on building websites, building responsive websites, programming with Ruby on Rails (a web framework built on Ruby) and Javascript, even building iOS apps.
- Zed Shaw’s Learn Python the Hard Way is as excellent as it is irreverent. He starts at the very beginning and insists readers type in every line of code themselves so they can also learn how to debug and deal with syntax errors. He’s written versions for Ruby, C, SQL, and regular expressions, too.
- The Mozilla Developer’s Network is a great syntax reference for HTML, CSS, and Javascript.
- Our own Steven Frank (of Panic fame) wrote “How to Count”, it’s a great, high-level, language-agnostic overview of some of the more basic math concepts that govern computer science.
- Think Python is a wonderful introduction to programming using Python as the example language. It really does help you understand how to think like a programmer.
- For Journalism hasn’t launched just yet but promises to teach some more intermediate and advanced level programming, visualization, and data management, aimed specifically at the needs of journalists.
I hope this helps. Happy to add more or answer any questions I can.
Your pal in nerdy journalism,
Jim