How to beef up on basic Python/Java and get the skinny on databases?
March 5, 2013 7:02 PM   Subscribe

I'm interested in taking this Coursera course on data science but the description states that "You will need basic programming experience with Java or Python, and some familiarity with databases." I do not have this. How could I get it, preferably online?

I'd be grateful for recommendations for any sites or tools that offer exercises, tutorials, explanations et al. on the relevant languages and on the subject of databases.

I have zero experience in programming aside from some very simple exercises in BASIC decades ago. I have no idea how easy or difficult it is to require "basic programming experience" in either Java or Python, and I have no familiarity with the technical aspects of databases. If you think it's unrealistic to take this course, I would welcome your opinion and/or suggestions for alternatives.
posted by foxy_hedgehog to Technology (14 answers total) 31 users marked this as a favorite
Code Academy

You can learn as you go, just be prepared to spend 4 times as much time on the class as the syllabus tells you.
posted by empath at 7:20 PM on March 5, 2013 [1 favorite]

I think the databases are going to be a bigger barrier to your getting something out of the course than being able to fake it in using a programming language.

That said, I highly, highly recommend taking Dan Grossman's "Programming Languages" course on Coursera. The course is about learning the skill of learning programming languages, rather than learning the particulars of a language (but there is plenty of that too).

Additionally, Dan is one of the best lecturers I've ever heard. The man has a gift for teaching, and the course has been an absolute joy.

If you _really_ want to give it a go, I'd get a subscription to Safari online and work through Head First Python and Head First SQL. It may be pretty painful going, though.
posted by bfranklin at 7:21 PM on March 5, 2013 [6 favorites]

Those are some hefty topics to jump into without any background. You probably want to take at least a databases/sql course and a python 101 or java 101 course. With an emphasis on the databases and sql. They are not terribly hard, but they have many new ideas that take some time.

Now with a fair amount of experience myself, I really want to take that course. It looks tasty. Thanks for bringing it up.
posted by Folk at 7:24 PM on March 5, 2013

I agree that you should take a programming course first.
posted by scose at 7:32 PM on March 5, 2013

If you think it's unrealistic to take this course, I would welcome your opinion and/or suggestions for alternatives.

The course doesn't start for almost two months. If you start learning the prerequisites now you could definitely be ready for this course then. Do one exercise in Learn Python the Hard Way every day. That seems pretty manageable.
posted by grouse at 7:33 PM on March 5, 2013 [1 favorite]

I'd agree with Grouse. The course seems relatively advanced for a beginner, but it's (maybe) doable if you're sufficiently dedicated.

Learn Python the Hard Way assumes little to no prior programming experience, so I'd suggest that too. Java has its uses, but it's rather hopelessly pedantic IMO.

I don't have any databasing resources handy, but if you want a database server to toy around with, XAMPP is a pretty painless way to get MySQL running on your computer. (I'm not 100% sure that it comes with a MySQL console, but I think it does.)
posted by neckro23 at 7:48 PM on March 5, 2013 [1 favorite]

I learned how to use databases from here:

That was kind of a long time ago but it's probably still a decent introduction.
posted by RustyBrooks at 7:49 PM on March 5, 2013 [1 favorite]

Python includes SQLite, which is an SQL database that doesn't require any server installation or configuration. It includes basic SQL features like SELECT and INSERT but won't include all the stuff in Philip Greenspun's tutorial. But you are unlikely to use that stuff in a data science course anyway.
posted by grouse at 8:07 PM on March 5, 2013 [1 favorite]

That's actually a pretty good idea in terms of a platform to use - I like sqlite a lot and it's capable of 95% of what you'll find in any SQL database. Although that's actually kind of a lesson/hump people have to get over - every SQL database is a little different, with different capabilities and ways of doing things. I think there's a lot to learn about relational databases from a tutorial like Greenspun's but using Oracle is a bit more of a learning curve than some folks want (although, these days, getting going on linux is pretty easy, with distros like Debian having the oracle-xe package)
posted by RustyBrooks at 8:12 PM on March 5, 2013

This NY Times article about ways for kids to learn programming might have some relevant information for you.
posted by Dansaman at 9:35 PM on March 5, 2013

Since we are talking about databases, it's useful to note that you will be using Amazon AWS stuff according to the site description.
The free tier of AWS includes a RDS micro instance of MySQL. It can be useful to have a full server accessible, and it's nice and easy to set up, and you dont have to worry about installing it. Plus you get a little familiarity with AWS.
If you do go that route, watch out for these things called security groups. It's an Amazon tool to help you limit who can access your resources. Initially it means you wont be able to access your database until you set those up. Quick to do, but not exactly intuitive.(msg me, of course, if you get stuck on this route).
posted by Folk at 9:36 PM on March 5, 2013

Response by poster: This is great- happy to hear more suggestions but wanted to show my love to those who have weighed in already.
posted by foxy_hedgehog at 9:55 PM on March 5, 2013

GalaXQL is a fun, space-themed introduction to databases. It's not super deep, but will hopefully give you what you need for the class. (At least, I'm counting on it to... I'm signed up for that course also.)
posted by CutaneousRabbit at 3:14 AM on March 6, 2013 [1 favorite]

Introduction to Computer Science at Udacity and Computer science at Khan Academy both use Python to teach programming to the absolute beginner.

But it does sound a bit unrealistic to do a data science course less than two months from now unless you're motivated enough and have spare time enough to learn programming and databases in the next few weeks.

I suggest that you try to learn programming and databases, then take the course, watch the videos, read the readings, try the homework, and expect to maybe get frustrated and quietly un-enroll. But if that happens, so what? Just take the course again the next time it comes around (I think they plan to keep offering these courses).
posted by pracowity at 7:50 AM on March 6, 2013 [1 favorite]

« Older Calling all idiom savants.   |   What Xbox games would a sneak enjoy? Newer »
This thread is closed to new comments.