views:

160

answers:

4

Is there a resource where I can find reliably good programmers to read my code and tell me what I can do better? I would like to know if I can design my programs better, whether there are best practices that I'm not following, and whether I'm using the ideal tools for the task at hand. I would like more consistent and intensive mentoring than is available via forums. I'm willing to compensate for the person's time, but haven't been able to identify a truly good mentor. Are there programmer consulting groups that review code? I am self-taught and learn well from books and documentation and Google. However, some answers are impossible to search for (problem is too generalized), and things that would be obvious to an experienced programmer (global variables are much slower than local variables in Python) took me many hours to troubleshoot.

Edit I recently located this resource, which links to many freelance/professional consultants and trainers for Python.

+1  A: 

The #python channel on FreeNode. (irc://chat.freenode.net/#python because SO doesn't like the "irc" protocol)

Ignacio Vazquez-Abrams
+5  A: 

I'm self-taught, too, and I find the best way to get feedback on code is to contribute to open-source projects. You'll get lots of feedback from them, and you'll be contributing to a good cause, too.

You'll also be able to get in contact with experienced programmers, as you put it, to help you in the future.

Try having a search on Github for any open-source projects you like the look of, and get coding!

Ink-Jet
Coding along with others it's the best way to learn. Also, I recommend you to read http://suckless.org/manifest/ They have some interesting ideas on how software should be written. I'd follow some of their ideas when design/coding software.
masterLoki
+1  A: 

I know you will learn more with an actual person helping but tools can augment your learning. May I suggest using pylint to check your code. Also sticking to PEP8 with the help of PEP8.py may be educational in the area of style.

Paul Hildebrandt
+1  A: 

What's awesome is that one day recently I stumbled on RefactorMyCode, which seemed like it had a whole lot of promise, albeit Ruby-focused. That sounds like precisely what you're looking for. What is not awesome is that there appears to be less than one post per day on the site.

But hey, while we're on SO talking about Python, I do recommend this snippet Peter Norvig wrote, creating a spelling checker in something like 20 lines in the language (which was covered at many of the SO DevDays conferences). Apologies if you've already seen it.

Marc Bollinger
+1 for the spelling checker link. Awesome.
pi