Group coding project

berry120

Fully Optimized
Messages
3,434
Location
UK
Here's a random idea I came up with the other day - may or may not happen depending on a number of things (including how many people are interested!) but I thought I'd throw it out there.

The idea is some form of group programming project that's aimed at giving beginners as well as more seasoned coders a chance to work on something. Once some kind of framework is off the ground we'd deliberately create tasks with a variety of different difficulty levels, leaving the guys with more experience to tackle the hard bits and letting people that haven't been coding very long start with some small changes. It'd be different from a lot of other projects in that we'd deliberately create and leave small tasks so that beginners can solve and learn from them - and also that we'd do everything "properly" in terms of code conventions, trac, documentation and suchlike. Nothing too heavyweight, but no sloppy coding either.

Hopefully this way everyone can get stuck in on one level or another and build up their coding experience in a fun, useful way. I'm sure there will be lots of problems for experienced people to tackle and it'll give beginners a chance to start out on a project from the offset. They'd also have an experienced coding base to call on if they got stuck.

Yes / no / ideas for projects / languages if yes? I have a few ideas but it'd be cool to get some input first :)
 
YES! This is the perfect motivation for me to get into coding. No idea for any projects though.
 
I would be very interested in this and if you go ahead with it, I would contribute in some way if I could. For the language choice, my suggestion would be something current that is widely-used and has a lot of possible applications in the real world, to maintain some relevance. I'm not particularly experienced and my knowledge of the languages I know is not great, but I understand the principles and would be willing to learn a language in order to contribute in necessary. That would be of benefit to me as well as others.

Languages for consideration could include Java and C#, though if I had to choose between those I would vote for Java purely because it is cross-platform (yeah, I know, there's Mono but still...). Alternatively, maybe Python? It's not as 'heavy' in my opinion and by that I mean it's suitable for smaller projects at home, little scripts that will help you out on a daily basis etc. I know none of the above, but would like to.

Things I do know (bits of) are C, Perl and VBS. Would I recommend any of them? C probably isn't a good choice. Perl is very useful and I find it quite versatile, it's also good for those who don't use Windows systems as VBS is restricted to the Windows platform. But I also find that it can be hard to get modules working (I've been having trouble installing Win32::GuiTest on my Windows box for months now) and sometimes it is impossible to do a project without them. VBS is a horrible language, but it has plenty of real world uses. I have to deal with it at work as a network administrator and, whilst I'd rather use something else, it gets the job done. Whether or not a scripting language, like the two mentioned, would be good for this is something you would be able to give a better answer to than I, though.

I think that it would be an unwise move to select any languages that are older and less-used, or really complex like C++ (which, whilst powerful, causes people a lot of problems when learning it, so I am told). All in all, I really like your idea and see a lot of merit in it provided you can get the people together. :)
 
Good points guys, thanks! As for language choice, my vote would be for Java (here's why) but if there's a good reason someone wants to do it in another language then I'm open to suggestions.

Couple of points on languages that you've mentioned - perl's really designed as a hacky scripting language rather than something for developing full blown applications. I really wouldn't recommend you use it for things like that (sure it's possible but as you point out you can get into all sorts of interesting problems.) Python I really don't like as a language - it aims to be a lot of things and IMO pretty much fails to hit the mark on any of them. Again, see the above link for more information.

I'll probably need a few more people if this is going to go ahead - and it might be a while until it starts / might start slowly because I'm a bit busy at the moment. No harm in thinking possibilities through though!

On the admin side, I'm thinking let's definitely go ahead with this as an open source project - and hopefully if we can think of a good enough idea I can create a sourceforge project / google code project for it. All code goes in subversion, we use the tracking system there - it gives everyone experience with using the sorts of systems you'll find in the real world. Unless anyone has any alternative suggestions?

In short then so far we've got the following (though feel free to comment or object, this isn't a dead cert yet!)

Language: Java
License: Open source (GPL?)
Server: Sourceforge / google code

The next logical big step of course is deciding what project we should work on. I see this working similar to the following - I'll whack out a few ideas here that people can discuss (feel free to add to the list!) and then if this goes ahead I'll post the most popular / most feasible ideas in a poll for people to choose between.

- Some form of game. I'm talking creating a 2D arcade style game, possibly a remake of battleships, jewels or similar. 3D would eally be too complicated and there wouldn't be many beginner tasks in there!
- Some form of IM program with heightened security
- Some form of PVR software (this could be interesting - but would be a big project)

Thoughts?
 
I like the sound of the IM program and making a 2D game. I'd love do contribute with this project. I'm asking round today to see if there's anybody else who wants to help :)


It's a great idea, we just need to get it started :)
 
Hey!

Sounds like a great idea. I'd like to throw a few things in there!

What about HTML / XHTML (perhaps coupled with css) - for some sort of associated website / web page, then the IM Program / 2d game can be held on the webpage, and be interacted with dynamically.

I was just wondering if you are sticking with 1 language. Maybe if theres going to be a few guys on, then the newbies / new learners can branch off into various areas / help others, the experienced guys can do conversion of languages, and the trickier aspecs.

Just thinking of more tasks that all levels could help with - the more debate the better!

Note: I know HTML isnt a 'language' but as you said 'project' I would throw it in there!
 
Wow. Been a while since I was here, because of all the work I've had to do, but I completely agree with berry120 on both Java and open source licensing. I think developing an IM application would be interesting - would this just be the client, though, or would it be the protocol as well for the complete package?

I've decided to learn Java regardless and have ordered a book on it which should be here tomorrow, so if this does go ahead then by the time it does I will have at least a little experience with the language :)
 
Note: I know HTML isnt a 'language' but as you said 'project' I would throw it in there!
HTML is a language. It's a markup language, not a programming language though ;)

Sure, if we go for this then a bunch of guys can design the site to go with it, I've not got a problem with that. On the whole though I think sticking to one language for the application would be a wise choice, whatever it is. If we can feasibly stick with one language then I see no reason why we shouldn't - and if we can't then I'd seriously suggest a rethink on the complexity of the project we were undertaking!

If we were going with the IM side of things then I'd suggest we developed the lot rather than just developing a client to tie into an existing protocol - but we'd abstract the protocol completely away from the client so we could theoretically tie another protocol into it later with the minimum of fuss (I'm going to do my utmost to ensure good OO design on this one - no picking up sloppy coding standards while I'm around ;))
 
If we were going with the IM side of things then I'd suggest we developed the lot rather than just developing a client to tie into an existing protocol - but we'd abstract the protocol completely away from the client so we could theoretically tie another protocol into it later with the minimum of fuss (I'm going to do my utmost to ensure good OO design on this one - no picking up sloppy coding standards while I'm around ;))

That sounds good to me. I actually would love the challenge of developing the protocol as well as the client. Additionally, since you mentioned security when you suggested the IM thing, how about having it able to send PGP/GPG-encrypted messages as one of the security features? I'm not sure if this is something that could be easily done, however.

And as for sloppy coding standards...I don't think I've developed any so far, but you may well disagree when you see something I put together. I don't plan on developing any, though, and I will be quite happy to follow your example :)
 
That sounds good to me. I actually would love the challenge of developing the protocol as well as the client. Additionally, since you mentioned security when you suggested the IM thing, how about having it able to send PGP/GPG-encrypted messages as one of the security features? I'm not sure if this is something that could be easily done, however.
I agree with the idea of encryption, definitely - the exact algorithm / implementation though isn't really worth discussing at this point! That will only come after we've got a stable, fully working plain text version...:)
 
Back
Top Bottom