Hacker News new | past | comments | ask | show | jobs | submit login
Python Practice Projects (pythonpracticeprojects.com)
142 points by watermel0n on Dec 24, 2013 | hide | past | favorite | 24 comments



Very nice idea. Congrats!

One thing that I've always thought it's missing is a list of projects in domains other than programming for motivating people that don't have an interest in programming per se.

That means no Lisp interpreters, no command-line palindrome detectors, no reverse polish calculators, no Collatz sequence generators, etc., but things like card game emulators, embroidery pattern creators, guitar tablature generators, etc. Thing that could pick the interest of people that have very specific interests, and that don't see how programming could be of any use to them.

When I was learning to code, I wrote a program for computing the standings table for soccer league tournaments. It was very rudimentary, but it kept me motivated since it did something useful for me, and I could tweak it ad infinitum.

Year later I taught programming to first-year university students, and a big problem was keeping them motivated. Every one of them had different interests, and computing large Mersenne primes was certainly not one of them.


Author here. Great idea! The problem is that I would be hard pressed to come up with projects that are universally appealing. Crowd sourcing for ideas seems like a good option here. If you have a list of ideas please reach out. My contact can be found on the page :)


I love this idea! It would be nice if the suggestions went into more detail, including, say, a test suite to measure success ….

Are there any similar resources for other languages?


There's no reason this can't be done with any language, as long as there are good reference implementations to be found.

But as long as you can read Python there's no reason you couldn't do these in your preferred language with the Python references.


> But as long as you can read Python there's no reason you couldn't do these in your preferred language with the Python references.

That's a good point, but surely, just as an expert user would want to use the appropriate tool for his problem, also a learning user would want to use the appropriate problem for his tool? By which I mean, an exercise that is a good way to learn Python is likely to be a terrible way to learn, say, R.


Author here. JadeNB you've hit the nail on the head! I have found that each language is better suited towards certain problems. This was a key motivation for making a set of problems specific yo Python. Sounds like you have some great ideas. Hit me up (contact is on the page), we should chat!


Thanks for the invitation! I don't have any concrete ideas, just hopes, but, sure, maybe we could chat. Unfortunately, I failed the Turing test: I can't find your contact information on the Python Practice Projects page.


louie [at] pythonpracticeprojects dot com


Great idea. Thanks for sharing!

A test suite would be great (as mentioned by JadeNB) but is the end of this something along the lines of a MOOC or a programming community?


Yes, looks cool. I'd suggest adding web and desktop versions of a little CRUD app - maybe a contact manager.

Test suites would definitely be a good addition.

There are interesting MOOC elements to this. it'd be very cool to collect all the implementations and analyze the different ways people solve the problem. Stanford had dinner some interesting work like this:

http://strata.oreilly.com/2013/10/semi-automatic-method-for-...

Finally, it'd be great to open-source this. Set up a repo with assignments and test suites, then students fork the repo and code up the exercises. This would allow you to easily see how people are solving the problems, and make it easy for people to propose new projects and tests.


Author here. Adding a community aspect is definitely an end goal. Right now I'm trying to create a reasonable project list and perhaps a few sample solutions. I'm toying with the idea of test suites but that really adds constraints on the final solution.



For the regex matcher, I outlined a practice project at https://github.com/darius/regexercise


Why not add something that doesn't sound like a project for a college CS class? Build a Google App Engine app in Python, for example.


Thanks for your idea. I am aiming for very specific boundef problems with quality references. A Google app engine app is much too broad. Do you have more specific suggestions?


Find an API-for example, a public transit related API-and build a GAE app with a python back end that fetches real time arrival times and displays them.


I'd like something that involves a GUI, perhaps using QT unless you know something you think is better.


If is python that you are gonna use, i would prefer to you use Kivy for GUI


Looks interesting. Thanks for the tip. Need to verify that it's also good for "non-natural" or traditional point and click GUI's.


good idea. Can you add a forum to the site for people to discuss particulars of the project they're working on? It would be nice to see other people working on the same thing and how they go about it. This feature works great on Coursera.


So can others give their ideas as well? How about giving voting options?


At some point I'll be doing these. This is super cool, thanks!


I keep meaning to use project Euler for this purpose


Project Euler is great--it's how I first dove into Python too--but it will lead you down a very different path than these practice projects. I like to think of it as a constructivist curriculum in algorithms and data structures, whereas these practice projects seem to take much more of a "just write code that works" philosophy.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: