Resources for Journalists Who Want To Learn To Code #JIConf
I’m at Journalism Interactive today, and this is a post with resources mentioned in our session on creating coder/journalists.
First, The Journalist’s Learn To Code Resource Guide has 100+ free beginner resources.
The two big ideas I mention in my session are The Three Skills and The Four Tests.
The Three Skills
The fact is, much of the coding that journalism needs is not rocket science — you don’t need a computer science degree to learn them. You can pick them up yourself. You can get a very long way with the following three skills:
- Map It. Learn how to use MapBox and Google Fusion Tables and mesh that with the dataset of your choice.
- Scrape It. Learn how to write simple scripts to extract data from web pages and reformat it into something useful and surprising.
- Grab It. Learn how to write simple scripts to fetch data from the thousands of APIs (many sites, such as The New York Times, or services such as Twitter, have APIs that allow you to write simple scripts to make requests and get data without scraping).
The most important question you can ask about learning to code is: “Why bother?” I learned to code because a lot of things really piss me off.
The Four Tests
There are always lots of projects and startups. How do you pick one you won’t regret choosing? Here are my four tests:
- What can I do without anyone’s assistance or permission? If I can’t even get started without lots of money or help, it might be a great project idea, but it’s probably not a great project idea FOR ME.
- Everything about something. The web rewards “narrow comprehensiveness,” or “everything about something.” A site with a few restaurant reviews is nice; a site with all of them is Yelp. What will you corner the market on, however small, or for however short a time?
- Don’t do anything for free that you wouldn’t do for free indefinitely. Startups are hard. If your thought process is, “This will be really hard and unpleasant for awhile but then something magical will happen and it’ll be great and I’ll be rich,” stop right there. You don’t love it enough. Find something you really do love.
- Relationships first. I don’t take any job/project/startup if it dents even a minor relationship in a minor way. My dad lived in an era where someone could work someplace thirty years and get a gold watch. That era is gone. Now, companies are like pets: we outlive them. Your relationships should outlive (and be more valuable to you) than any job, project, or startup. When it ends, it’s your friends and family who you go back to.
Here’s a little bit more on The Four Tests.
So good. Read it now.
When I decided to learn web development, it was for business reasons. I was sick of not knowing what I was talking about.
Now, I realize that it’s become much more than that. It goes beyond the new languages, concepts, and opportunities. Coding has changed the way I think - both for building…
For those wanting an introduction to hacking– what it is all about, this video provides a great overview! Obviously hacking is not something you should do, this is not a how to! This video is for informational purposes only!
I’ve been learning to build websites and write code using HTML, CSS, PHP and bits of jQuery. My education was sparked at Treehouse in November 2011 and they have an amazing education program that I’m happy to pay for (really). However, they have limited resources and a lot of large projects…
I started with PHP too. I really like Larry Ullman’s books. But since PHP isn’t a cool-kids’ language, there aren’t many Codecademy or Khan style online learning options.
Last day to apply to Coderise! :) We’re looking for youth in Medellin, Colombia currently in their last three years of high school that are highly interested in computer programming. We’re especially still looking for more girls to join us this October, so please, please if you know of anyone, send them our way! This is a great opportunity and it is 100% free!
Treehouse offers free education to 2500 college students as ‘giveback’
I am absolutely thrilled at Treehouse’s decision to offer 2500 college students FREE courses to help them learn the necessary skills required of them to code.
Okay, only a few pages into Mike Dewar’s Getting Started with D3 and I hit the first sentence that’s complete gibberish to me.
Excellent! I can tell I’m gonna learn a lot from this book :)
Larry Wall Explains the Basics of Computer Programming…In Five Minutes
"Learn to Program With Move The Turtle," Wired.
It took me some twenty-plus years to really learn how to program. It wasn’t for a lack of trying either, it was just that I was trying the wrong way. I tried to learn to program by following tutorials that created programs I didn’t have the slightest interest in keeping. I was trying to learn for the sake of learning.
What made it click for me was programming in anger. Programming because I needed to. Programming because I gave a damn about what I was writing and I wanted it done sooner rather than later."
Ben Joven, 37 Signals. I also learned to code because a lot of things pissed me off.
This morning before work, I made a Ruby program that sings ‘99 bottles of beer on the wall’, until, once there are zero bottles left on the wall, proclaims “You’re drunk!”. Then I made another, “Deaf Grandma” that shouts “NO NOT SINCE (random year)!!” at everything you say until you tell her “bye!”. I used Ruby to calculate how many seconds I’ve been alive, and the number of minutes in a decade (only 5.256 million, am I the only one that seems low to?). None of these programs have much utility beyond their immediate answer or entertainment, but these exercises are the most useful thing I’ve done in terms of learning to program so far.
Chris Pine’s book “Learn to Program” is written with the non-developer in mind, which is a near-rarity for most of the programming tutorials I’ve found so far. Even Michael Hartl’s much heralded Rails tutorial assumes the reader has a fair bit of knowledge- or that they don’t mind that half the material will go right over their heads. The only comparable platform is Codecademy, and although the lessons are designed with beginners in mind, the lack of a glossary of programming terms, or even better a theoretical introduction to programming, the lessons can often feel more like typing practice than acquisition of coding concepts and knowledge.
The brilliance of “Learn to Program” is that Chris not only teaches you how to use the most basic functions of Ruby- critically important and totally basic methods like to_s or to_i, upcase, center, etc- but also the theoretical and structural concepts of programming. It’s the only tutorial so far that I’ve encountered the word “Branching” (i.e If-Else) or “Flow Control”, and even better, a section titled “The Art of Programming” that honors DRY (don’t repeat yourself!) and gives the student a sense that there is an aesthetic quality of beauty to code, beauty in both functionality and simplicity of the best and most fluid way to accomplish a task.
For those of you just starting out, I can’t recommend this book highly enough as an introduction. Many of the tutorials out there never stop to explain the most fundamental concepts of programming or give any sense of the big picture- they focus completely on the syntax, building up a vocabulary of methods and terms instead of focusing on the grammar and theory behind the language. “Learn to Program” builds your knowledge from the ground up, giving you a sense of how a larger, more complicated, and maybe even profitable (! not that that’s what it’s all about…) program would be made.
Helarious did two approaches to learning Ruby, and reviews both.
I’ve been putting my geeky hat on the past month where I’ve been able to find the time to do so, and learning Ruby. For those who aren’t familiar with what that is, it’s one of the many computer programming languages out there.. you may have heard of others ones like Python, Java, PHP etc.
Ruby is one that has an extremely helpful and welcoming online (and offline) community to help you learn and advance your skills. There are many websites that explain it in various lessons and depth, from beginner to advanced. I think it will be a very interesting journey and I always love a challenge, so I’ll be documenting my progress on and off for those that are interested themselves. Plus, it’ll give me an extra spur on whenever I’m stuck, as I’ll feel guilty if too long a time has gone by and I haven’t blogged about it! ;)
So after some initial research a month ago to work out which were online sources suited me best, I went with these two:
Pine’s Learn to Program was extremely well written in my opinion. It takes you through twelve written tutorials, covering most basics and a lot of programming-core fundamentals such as what arrays are, variables, methods etc. I would highly recommend this tutorial for any complete beginner. Pine writes in a way that makes you feel like he’s just chatting to you about something interesting in plain english. He also provides several problems to do after each main tutorial, to help you practise and test what you’ve just read and learnt. I had a lot of fun doing them and managed to do most of the problems which is an awesome feeling!
Code School’s Try Ruby is a completely different experience. Instead of written examples and tutorials - it’s an interactive learning experience in itself! One part of the page is the tutorial and instructions, whilst the other is an actual interface that allows you to type Ruby into the page as you’re learn and follow the tutorials. I would seriously recommend this tutorial for those who like learning by doing, it’s very effective. I just finished this tonight and comparing it to Pine’s tutorials, it’s great but a bit different in content and obviously interaction. Try Ruby explains the more basic fundamentals in slightly less detail, but I think any beginner could still get by using this one too.
Having now gone through both tutorials, I must say that I’m very glad that I did do both. It has consolidated the basics a bit more, and I’ve also picked up new things in one that the other didn’t cover.
Obviously I haven’t conquered Ruby yet, but I want to try actually writing an app so I’m going to move onto Ruby on Rails (aka RoR or just simply ‘Rails’) next. Rails is a web framework for Ruby… which means when you actually build an application/webiste, you write it using Rails - think of it as like using a blog’s layout template compared to starting the template from scratch. I hope that analogy makes sense?
I’ve got some good sources for learning Rails that I’ve noted down, but I’m always open to suggestions so feel free to comment and let me know :)
In my previous post, Getting Started Building Apps: Concrete Steps For Beginners, I described a path for starting to learn how to program. It is a guide to online resources and books that a motivated beginner can follow to get up and running.
As much as I wish I had this guide when I was trying to get started, I have a confession to make: it wouldn’t have been enough for me to get to where I am today as a developer.
I tried for years to teach myself to code using books and online tutorials, even college courses, but always failed to gain a critical mass of useful skills. It was like my Spanish courses in school: after class was out, I was back to worrying about other things, and I had no way of knowing which parts of what I was learning were actually useful.
Programming languages are just like any other language, so, unsurprisingly, it took total immersion to finally get me usable, practical fluency. I found this immersion at Code Academy.
Code Academy is a physical school in downtown Chicago that teaches passionate and persistent beginners how to make their ideas real through code."