Resources for Learning to Program in Ruby or Python
Learning to program can be very difficult, but there are a large number of resources out there that can make learning a programming language much easier.
There are many books and guides on the market that show how to write code in a new language. Many of these books are not suitable for newbies because they assume that the reader already knows how to program. These books use methodologies and lingo that programmers already understand, but is stuff that can be hard to grasp if you've not programmed before.
As a beginner, it can be difficult finding the perfect book or tutorial for learning a programming language. I compiled this list of resources and guides written for programming newbies.
Choosing a Language
Choosing a language isn't particularly important for beginners as once you learn a language, it's much easier to learn other languages. A lot of the real learning is in the principles of programming and that's why it's more important to find the perfect guide to learning a programming language versus finding the perfect language.
There are a large number of books and online guides written for beginners that teach the basics of computer programming in both the Ruby programming language and in Python. Because of this, I highly recommend selecting one of those languages to learn first. You can read some of the debates between Python and Ruby or you can do the cool thing and throw caution into the wind. Once you've made your decision, you can download either Ruby or Python for free.
There is a ton of information on the Internet for those learning to program. I mean, the Internet is made up of the work programmers have done (well that and a series of tubes.)
If you're like me, you think free stuff is awesome. There are several free guides on this list, but some are only available in print, and those will likely come at a price (unless your library is bigger than my local library and actually has programming books.)
Python or Ruby?
Learn Programming with Ruby
Learn to Program by Chris Pine
This book is the first programming book I read and it really helped me grasp a lot of concepts when I later read some of the beginner's resources for Python. This book is also available for free in PDF form. If you're like me and prefer books in hard copy, this can be purchased. The book has been expanded so it contains more information than the free guide, but the free guide contains enough information to properly learn the concepts. Because I prefer a hard copy, what I did was download the PDF and print off a few chapters at a time.
The Ruby Programming Wikibook
The thing that makes this great is that it teaches EVERYTHING about Ruby. Readers can start off at the beginner's level and then go on ahead to learn even more. Those who eventually become professional Ruby programmers (or just really know their stuff) can even contribute to the Wikibook. It's all free, too... you can't argue with that!
Yup! You guessed it! It's a forum. You can join these forums, for free, and ask any Ruby question you like. It's a good way to not only get help with questions you may have, but to get to know some of the folks in the Ruby community.
The Little Book of Ruby
You can download this free PDF and learn the fundamentals of Ruby programming. This is great for those times when you don't have an Internet connection, because nothing gets me motivated to learn programming like not being able to waste time on the Internet. SapphireSteel Software, the company that created this handy eBook, also has a forum on their website where users can discuss learning Ruby.
Why's (Poignant) Guide to Ruby
This is perhaps the strangest computer book I have ever seen. This hilarious book teaches beginner-level Ruby programming with the aid of cartoon foxes. Really, you MUST take a look at this free book even if you've chosen to learn Python over Ruby.
Learn Programming with Python
How to Think Like a Computer Scientist
This book has been made available on the Internet for free, but those who wish to own a physical copy of it, can purchase it. From this book, you can learn the basics of computer programming with the aid of Python. The book starts readers off at a basic level, which was good for me, but it gets quite challenging in the later chapters.
This is a turtle themed game, or rather a "learning resource" that can be downloaded. The idea is that users input Python functions in order to move the turtle around the screen. It's meant for children, but adults can use it too. It's a free download, a quick installation process, and it's virus-free so it's a win-win situation.
Hello World! Computer Programming for Kids and Other Beginners
This book has rave reviews and I've been staring at it at the bookstore for months. I've thumbed through the pages on this one and it definitely starts out at a low level, but trust me, it gets challenging. It's written for kids, but I definitely would recommend it for anyone my age with an interest in learning to program.
Learn to Program Using Python
This book assumes readers have some basic computer knowledge, so this isn't a book I would recommend to my mother. That being said, it starts out at a beginner's level. This book also received high reviews so I recommend giving it a look-see.
Invent Your Own Computer Games with Python
In a low blow against the Ruby community, the Python community offer this free and unfairly awesome book that teaches programming by having readers make computer games. I have not yet seen the Ruby community answer to this, but then again Ruby has "Why's (Poignant) Guide to Ruby." "Invent Your Own Computer Games with Python" includes the source codes for different games in each chapter and then uses these source codes to teach concepts.
Non-Programmer's Tutorial for Python 3 Wikibook
This is another Wikibook that is worth checking out. This is a free beginner's guide to Python that can be edited. While it teaches beginner level concepts, it does show resources that users can check out to further their Python education.
Here are some resources that are aimed for those who wish to learn programming languages other than Python or Ruby or those who would just like to learn more!
Eclipse & Java for Total Beginners
This is a free, downloadable video tutorial that teaches how to new programmers Java using Eclipse. It also comes with a companion guide in the form of a PDF. With over 3 hours of video teaching the many aspects of programming, including test-driven development, this is a great way to learn.
A large number of free courses are available here. It is important to be on the lookout for courses that are for those who have never programmed before as many of these courses are for more seasoned programmers. This is, however, a great resource for those who are ready to move on after learning the basics. There are also some beginner courses in here.
While this is technically part of the whole Open Courseware category, I wanted to give iTunes its own section. If you have an iPhone or an iPod (or even just iTunes), you can download free courses from major universities in the form of podcasts.
One podcast I highly recommend (and am using now) is through MIT and is called "Introduction to Computer Science and Programming" with Eric Grimson and John Guttag. While this doesn't teach a programming language, it does teach the major fundamentals of computer programming and computer science in general which is a huge help in learning any programming language. This course is aimed at beginners, which makes it perfect. You can get this on iTunes, by clicking "iTunes U," and then clicking MIT engineering.