Looking for someone to teach me a few things about programming

So I know next to nothing about programming computers but I’d really like to learn more. I have a bunch of ideas for what I would do with it, but here’s a simple (hopefully) task that I came up with tonight. I was on this permaculture page that lists a bunch of plant species and each links to an article about that species. I would love to learn how to write a script to click each of the links, save the page(s) as a PDF, and then assemble all the pages into one document. It’s possible something like this exists but I think the process of writing it myself would be really cool.

Here’s the page I’m talking about: http://tcpermaculture.com/site/plant-index/

Anyone available for some paid tutoring? Happy to negotiate the rate

First you will want to pick a language you want to learn. Being that you are parsing a web page (also known as web crawling) and creating a PDF you will probably want to use a scripting language like python or ruby. There are others but those two are really popular, work on any platform and are free. It doesn’t matter which one you pick but the main difference (at least for me) is python has more structure in its syntax and ruby is more free form. So if you like order and if you are sciency then Python might be best however, if you are more creative or just want to bang something out then ruby maybe your choice.

There are things that can do what you are saying but I agree, this is a good first learning experiment. Start by looking at some examples of both Python and Ruby and pick one then let us know which on you pick.

Udacity has a Intro to computer science course that teaches you Python and has you build a webcrawler.

After posting this I discovered that Udacity is no longer free, there is a 2 week free trial if you want to try to do the course at break neck balls to the wall speed but 14 days of sleep deprivation would not be healthy.

Also, the hardest part is probably saving the pages as PDF. You will want to use a library (a reusable piece of software that you can incorporate into your own code) like wkhtmltopdf [1], which conveniently has a Python binding (which lets you use the library from Python code) [2].

[1] http://wkhtmltopdf.org/
[2] https://pypi.python.org/pypi/wkhtmltopdf (with some example code)

Cheers,

Jim

Awesome, thanks for the advice guys. I guess from a totally ignorant point of view Ruby would be more up my alley. I dunno all of this is greek to me.

Personally, I’ve just learned bits and pieces as needed, but I don’t really recommend this method if you really want to learn programming. There are lots of free courses out there if you know where to look. For example, you can take Harvard’s CS50 on edx.org, or jump into MIT’s Intro to computer science and programming here:

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-computer-science-and-programming-spring-2011/index.htm

More information on free courses can be found here:

http://lifehacker.com/get-a-college-level-computer-science-education-with-the-1573535378?utm_campaign=socialflow_lifehacker_facebook&utm_source=lifehacker_facebook&utm_medium=socialflow

for some basic basic background you could checkout cs50.net. its the introduction to computer programming put on by Harvard. all the lessons are online. its informative.

It’s whatever your learning style is. Classrooms are too slow for my tastes and tend to have outdated info, but then again I’ve been programming since I was a kid. Although I blame my ADHD more than my experience level. I prefer goal oriented learning (like you suggested) but I used to be book based. I would try a little of all, since most are free and see what feels the best. Here are some ruby links you may find useful.

20-minute quickstart - https://www.ruby-lang.org/en/documentation/quickstart/

Nice interactive intro http://tryruby.org/levels/1/challenges/0
There was a more intermediate interactive tutorial I did once where you had to program a warrior to go through a dungeon and kill things. It was really cool because it taught ruby and a bit of AI. Unfortunately I can’t find the link anymore.

web crawler example - http://www.skorks.com/2009/07/how-to-write-a-web-crawler-in-ruby/
demos for using pdf::writer http://ruby-pdf.rubyforge.org/pdf-writer/demos/

There are also what is called gems in ruby. They are modules/libraries that you can easily add to do additional functionality for you. This honestly is how most ruby devs seem to work now-a-days. They call it “craftsmanship”. It’s basically the art of downloading as much pre-done code as possible until your product works. I would stick with the basics first then start checking out gems.

Good luck!