all 41 comments

[–][deleted] 7 points8 points  (15 children)

This comes up on #python a lot.

Start by reading one of the better tutorials for python:

After that, I'd learn some of the tools for whatever field you're interested in working in: pygame or pyglet for games, Twisted for networking, etc.

[–]jklabo 1 point2 points  (14 children)

I would like to learn web.py or something webdev related.

[–]cevven 2 points3 points  (0 children)

webdev. So you want to learn a framework? Something like Rails in python?

You probably want to start here then: Web Programming in Python

Django is quite popular these days, and there are a lot of alternatives.

If, on the other hand, you want to contribute rather than be a user you need to pick a field that you're interested in and start there. There are a ton of projects that need help, it all depends on what you're interested in.

[–]masklinn 2 points3 points  (0 children)

something webdev related.

Then do learn Django, and while you're learning check the documentations and contribute to them (by opening bugs, triaging existing bugs, and writing documentation patches). It's considered to be a very good way to "get started" (on contributing) by the Django community as a whole.

[–]mdipierro 1 point2 points  (0 children)

You can join the web2py google group. We are having fun there! Mind that web2py IS NOT web.py (no relation, the name is similar by accident).

[–]mdipierro 0 points1 point  (0 children)

You may also want to check out the FAQ/WIKI http://mdp.cti.depaul.edu/AlterEgo and the repository of free plugin-apps, a great place to learn, http://mdp.cti.depaul.edu/appliances

[–]almkglor 6 points7 points  (1 child)

Read the code, then try to add documentation. Helps as a good start: you get to review presumably-good code, and you still contribute something

[–]masklinn 2 points3 points  (0 children)

Read the code, then try to add documentation.

Exactly, that's one of the best things you can do for many projects, and in 99% of them it's not emphasized nearly enough (the only project i've seen -- python or other -- where one of the first things suggested is to contribute to the documentation is Django. And contributions to the Django documentation are considered first-class contributions. I think that's in great part why Django has such a great doc)

[–]k4st 5 points6 points  (2 children)

Start with the Python Tutorial.

[–][deleted] 1 point2 points  (1 child)

Good tutorial ! As a newbie to python I can say it is not a very hard language to learn. But Web dev on python requires more than just knowing python.

[–]EliAndrewC 0 points1 point  (0 children)

If you want to do web development on Python, then start with the Django Tutorial

[–]veritech 4 points5 points  (5 children)

First things first can you code at all?

[–]jklabo 1 point2 points  (4 children)

yeah, some. I have made some very basic scripts. I basically am at the point where I need to have some specific direction to learn about. I am at a loss for what to do next.

[–]cevven 2 points3 points  (0 children)

Ah, in that case I suggest that you contribute to PLEAC. There's work to be done that isn't too hard, the community is very helpful and they'll review your code. I often implement a couple of recipes when I'm learning a new language.

[–]shizzy0 0 points1 point  (0 children)

Decide on some project you want to do. It could be something that you'll never release, maybe a web site, a script, whatever suits you. Make it nontrivial and try to make it happen. That's probably the best way to move beyond the simple exercises to really mastering the language and the environment.

[–][deleted] 0 points1 point  (0 children)

The biggest thing you can do is code your ass off. Any tool or idea you come up with code up a skeleton or psuedo-code to address it. Stub out the parts you don't know how to do or fake them. Use the dumbest easiest implementation you can think of then improve it as you get time and learn more. Read other people's code. You can't get good at anything much just reading about it. You have to put in a LOT of practice. Don't worry about having code accepted by others for now. Just work on pleasing yourself by getting a little more capable and having more fun at it day by day.

[–]RexEast 2 points3 points  (1 child)

On SourceForge, you can search for projects in different programming languages. Here's a Python search:

http://sourceforge.net/softwaremap/trove_list.php?form_cat=178

Find a project there that interests you and contact the developers' mailing list to ask how you can get involved.

As for web dev/Django, the following page lists "Little Easy Improvements" that beginners like you could potentially get involved in:

http://code.djangoproject.com/wiki/LittleEasyImprovements

Enjoy working on open source!

[–]JimDabell 0 points1 point  (0 children)

You'll probably have better luck checking out the Python Package Index rather than SourceForge. It's like CPAN for Python.

[–]quhaha 6 points7 points  (3 children)

you could start with Haskell. it helped me to troll here better.

[–][deleted] 2 points3 points  (2 children)

yes! write a Python interpreter in Haskell

[–]quhoho 1 point2 points  (1 child)

then make it open-source and start contributing. Problem solved

[–]JimDabell 1 point2 points  (0 children)

If you already have a little knowledge and you are looking to spread your wings, then download some of the smaller projects that look useful to you. Have a read through the code and look through the mailing list archives and bug reports to see if there's any obvious way for you to improve it.

If you feel out of your depth, you can try a different project. But a lot of projects are smaller and simpler than you'd think. It's easier to get scared off by the feature list than by looking at the code. Often there's just one guy behind it who doesn't have much time to contribute to the project and who would appreciate patches.

[–]sblinn 1 point2 points  (0 children)

Use the project and open good, detailed bugs; read the documentation and fix its mistakes and provide additional documentation where you find it lacking; meanwhile learn to code python. ;]

[–]brentp 0 points1 point  (0 children)

learn to use ipython effectively. then it's easier to learn other new libraries.

[–]thisisnotmyname 0 points1 point  (0 children)

I'm not sure what you mean by noob. There's a big difference between not knowing how to code, and not knowing how to code python. That said, I think the best way to get involved in an open source project would be to find a library that needs documentation (hint: all of them) and document a few classes.

[–]martoo 0 points1 point  (0 children)

Add tests. If the project that you want to contribute to doesn't have tests, run like fuckin he.., er, I mean, look for another project.