Thanks for who posted this, I'm ashamed to say that it is in need of an update/typo-fixing that hasn't been done yet (as you can tell by the winter seasonal photo).
The main complaint I've heard from people who go through Codecademy/Khan any of the other "easy-to-interactively-learn" options out there is that they don't know what to do with their knowledge of loops/conditionals/variables beyond passing the tests. I wanted something focused on applied tasks, whether it be web scraping/API-fetching or even something as simple as batch concatenating/editing text files.
That's how I myself learned, anyway, so just wanted to point out to other authors the value of simple real-world-data projects as a way to keep readers interested.
This is an excellent initiative. Believe me I know exactly what you are talking about. I have gone over countless numbers of exercises In the past where I put my name and then do some selection statements but beyond that I don't know where to go. Working with APIs can provide a needed sense of practicality. I had few ideas just reading some lines of your first chapter. Keep up the good work.
Your's is a fantastic book. Downloading Wikipedia pages, counting the images on the NYT homepage, reading xml files, all within a few hours represented some extremely good learning.
It's a very refreshing approach to loops and if statements as you say.
This looks fantastic. I'm currently writing my first practical Rails app and using APIs for the first time (the Tumblr API specifically). The app works, but I need to move the API calls to a background process and I haven't been able to get that to work yet. Does your book cover background processes?
Also, I wanted to let you know about my detailed and thorough tutorial for installing Xcode, Homebrew, Git, RVM and Ruby on a Mac. I think your readers will find it helpful. It covers a lot of steps that are missing from your instructions.
http://moncefbelyamani.com/how-to-install-xcode-homebrew-git...
I'm a CIS major about to enter my junior year, I still have the same problem that many of codeacademy's students do. I've done a couple of programming classes (which I aced) and dozens of tutorials but I don't have a clue where to begin when it comes to actually designing a useful program.
So think of something simple but fun and useful that you'd like to put together.
For example...this isn't a "first project" for me but it showed me how something simple, to a coder, could be very popular to others; this list of free museums/attractions and their free hours:
The data-gathering part, I did it in the painful old-fashioned visit-every-webpage fashion...but only because I needed to figure out the domain of the issue.
If I were to do this again, I would start with the list of Facebook pages, throw that into Google Spreadsheets.
Then, I'd write the script that would read the spreadsheet for the Facebook IDs, use the Facebook Graph API to scrape the address/hours/summary info, and from there, move to batch geocoding (the Google Geocoder API exercise) and maybe some simple text-processing to auto-figure out if a museum has listed free hours (i.e. search for the div that contains a day/hours listing and the word "free")
And you could also use the Facebook API to get a list of events from each place, though that varies widely by organization and if they have a social media maintainer.
As you get better at coding, you'll find that the hardest step is the first step, collecting the Facebook ID (or whatever piece of data that you start out with)
I agree with what envex said, but would add that if you don't start doing something withing a few weeks of going through these courses, you'll forget almost everything. As they say "use it or lose it".
Perfect timing for me, I'm helping a friend learn to program (in Ruby) with the goal of using his new found knowledge for data collection/analysis. It's like you wrote the book just for us. :)
The main complaint I've heard from people who go through Codecademy/Khan any of the other "easy-to-interactively-learn" options out there is that they don't know what to do with their knowledge of loops/conditionals/variables beyond passing the tests. I wanted something focused on applied tasks, whether it be web scraping/API-fetching or even something as simple as batch concatenating/editing text files.
That's how I myself learned, anyway, so just wanted to point out to other authors the value of simple real-world-data projects as a way to keep readers interested.