ScummVM logo Forum Index - ScummVM website - Contact us - Buy Supported Games: GOG.com Rules - Search - Register - Login curved edge
Folder Forum Index > General Discussion > Regarding the GSoC
Regarding the GSoC
  Author    Thread Reply to topic
LunaVorax



Joined: 27 Jun 2007
Posts: 22
Regarding the GSoC 

Hello,

For some years now, Strangerke kepts pushing me to apply on ScummVM GSoC.
I wanted to do so this year, but a lot of things in the application process seems absurd to me.
I would like to know what I don't understand correctly or what justify all of this.

First of all, regarding the informations you must give in order to apply, I don't understand why you should provides informations about "Benefits to the ScummVM Community" and "Deliverables" if you apply to an idea already listed and described in the GSoC Ideas page.

Second of all, how are you supposed to give a "Project Schedule" and "prepare a comprehensive and detailed plan for all 12 weeks of your project" if you are a student and if you are new to the project?
This looks like you must have a pretty deep understanding of the massive codebase of ScummVM ; and if so, such a project shouldn't be advertised for any student to join.

Finally, I don't understand why having no knowledge in C++ is okay to participate if "you are expected to submit a patch against our source code via a pull request from your own git repo fork" in order to be accepted.
This sounds like you must have to be a regular contributor to the project in order to pretend for the GSoC.
On the other hand, I assume this requirement ensure ScummVM only gets talented students to participate to the GSoC which is a good point.

 Reply with quote  
Post Tue Mar 18, 2014 3:35 pm 
 View user's profile Send private message
DrMcCoy
ScummVM Developer


Joined: 17 Dec 2005
Posts: 596
Location: Braunschweig, Germany
Re: Regarding the GSoC 

quote:
Originally posted by LunaVorax
First of all, regarding the informations you must give in order to apply, I don't understand why you should provides informations about "Benefits to the ScummVM Community" and "Deliverables" if you apply to an idea already listed and described in the GSoC Ideas page.

If nothing else, having the student repeat the project proposal in their own words should show you whether they understood it.

quote:
Originally posted by LunaVorax
Second of all, how are you supposed to give a "Project Schedule" and "prepare a comprehensive and detailed plan for all 12 weeks of your project" if you are a student and if you are new to the project?

You can often estimate that quite well by having a cursory look on the codebase. You don't need indepth knowledge to break down an idea into several steps and see, roundabout, which of those probably takes the longest, etc..

Also shows the potential mentors whether the student can be arsed to think a few minutes about the project. And if they're dead wrong and under-/overestimates tasks, we can always correct them. That's why you should submit your proposal as soon as possible and then edit it to incorporate the feedback you get from the mentors.

quote:
Originally posted by LunaVorax
Finally, I don't understand why having no knowledge in C++ is okay to participate

Quoth the ideas page:
"accessible to newcomers with good C++ knowledge"
"All code, unless stated differently (for example, platform-specific code), must be written in clean and portable C++"
"What experience do you have with C++ or other languages required in your project?"

We're pretty upfront that ScummVM is written in C++ and you general need to have knowledge of C++ and C. We don't use the STL, though, or exceptions.

I don't know where you got the "No C++ knowledge is required" from. However, you should probably be able to get by without any prior C++ experience if you can program, and did C and, say, Java in the past, and think you can pick up the C++ syntax quickly.

That's also the reason we have the requirement for the patch, to see if you're capable to do that. If you're not, you will be rejected, of course. That's still better than being accepted and then kicked out for the mid-term evaluation, no? At least this way, you can still apply to a different mentoring organization.

quote:
Originally posted by LunaVorax
This sounds like you must have to be a regular contributor to the project in order to pretend for the GSoC.

Funnily, in the past 6 years, this has not been necessary; this was not a problem at all. Most if not all GSoC students ScummVM had never had any commits to the ScummVM repository beforehand.
 Reply with quote  
Post Tue Mar 18, 2014 5:09 pm 
 View user's profile Send private message Visit poster's website ICQ Number
fuzzie
ScummVM Developer


Joined: 24 May 2010
Posts: 178
Re: Regarding the GSoC 

quote:
Originally posted by LunaVorax
First of all, regarding the informations you must give in order to apply, I don't understand why you should provides informations about "Benefits to the ScummVM Community" and "Deliverables" if you apply to an idea already listed and described in the GSoC Ideas page.

Second of all, how are you supposed to give a "Project Schedule" and "prepare a comprehensive and detailed plan for all 12 weeks of your project" if you are a student and if you are new to the project?.


The intention is that students have to show that they've actually thought about the task they're applying for, and how they intend to spend their time. As we say on our wiki page, "A good example of what we do not want to see in your application is a copy of our version of an idea's description". Often students will talk to several team members when trying to develop a schedule, but in the end, it is expected that students sit down and think about what they're going to do (even if it ends up happening completely differently in the summer).

None of this is specific to ScummVM, though. The GSoC student guide has a couple of pages about this, at http://en.flossmanuals.net/GSoCStudentGuide/ch007_finding-the-right-project/ and http://en.flossmanuals.net/GSoCStudentGuide/ch008_writing-a-proposal/

quote:
Originally posted by LunaVorax
Finally, I don't understand why having no knowledge in C++ is okay to participate if "you are expected to submit a patch against our source code via a pull request from your own git repo fork" in order to be accepted.


It very much depends on the task, but if you're going to be paid to work on our codebase for three months, then you need to be able to quickly get to a point where you can write code. That means you *do* need some knowledge of C++ (not necessarily much; we don't use many C++ features, and some students in previous years have done well despite only really knowing C), and you need to learn how to use git enough to make pull requests work.

I think usually the most difficult part is for students to find some small bugfix/change to make, rather than the programming language. That is not great, but you can ask in our IRC channel and usually people have suggestions (and if not, the mailing list).

quote:
Originally posted by LunaVorax
This sounds like you must have to be a regular contributor to the project in order to pretend for the GSoC.


I think it's extremely unusual for people to have contributed to the project at all before they started talking to us about GSoC (there are of course a few people who did so, such as somaen). I would discourage any existing team member from applying, honestly; they'd probably learn a lot more if they applied for a different project, and we'd expect a very large amount of work to be done if they worked on ScummVM, since they don't have to spend any of the summer learning the codebase.
 Reply with quote  
Post Tue Mar 18, 2014 5:43 pm 
 View user's profile Send private message
LunaVorax



Joined: 27 Jun 2007
Posts: 22
Re: Regarding the GSoC 

quote:
Originally posted by DrMcCoy
quote:
Originally posted by LunaVorax
First of all, regarding the informations you must give in order to apply, I don't understand why you should provides informations about "Benefits to the ScummVM Community" and "Deliverables" if you apply to an idea already listed and described in the GSoC Ideas page.

If nothing else, having the student repeat the project proposal in their own words should show you whether they understood it.

That makes sense.

quote:
Originally posted by DrMcCoy
quote:
Originally posted by LunaVorax
Second of all, how are you supposed to give a "Project Schedule" and "prepare a comprehensive and detailed plan for all 12 weeks of your project" if you are a student and if you are new to the project?

You can often estimate that quite well by having a cursory look on the codebase. You don't need indepth knowledge to break down an idea into several steps and see, roundabout, which of those probably takes the longest, etc..

This should probably be stated as a required skill then. While I do have C programming experience, this isn't something I know how to do. Also, I aready had a cursory look on the codebase and this isn't something I could or can do.
This clearly is a skill I don't have yet.

quote:
Originally posted by DrMcCoy
Also shows the potential mentors whether the student can be arsed to think a few minutes about the project. And if they're dead wrong and under-/overestimates tasks, we can always correct them. That's why you should submit your proposal as soon as possible and then edit it to incorporate the feedback you get from the mentors.

I understand the logic but submitting an idea is highly unrealistic only by having a cursory look and not having a good understanding of the codebase.
Still, I would gladly see some exemples.
 Reply with quote  
Post Tue Mar 18, 2014 5:46 pm 
 View user's profile Send private message
digitall
ScummVM Developer


Joined: 02 Aug 2012
Posts: 943
 

LunaVorax: In many ways, we are much more of a Software Archaeology project than most, so understanding existing codebases and refactoring are skills that are needed:
https://en.wikipedia.org/wiki/Software_archaeology

But these are skills that you learn partly by experience, rather than being taught directly... Part of being a student
is learning in this way, so we don't expect students to be experts in this, but it will be required to learn "on the job".

Though even more traditional Software Engineering of a new project with the Waterfall model requires Requirements Analysis and various other "soft" planning skills which tend to be learnt by experience as it is hard to impossible to teach in a formal way as they are very open ended:
https://en.wikipedia.org/wiki/Software_engineering_process#Software_development_activities

 Reply with quote  
Post Tue Mar 18, 2014 5:57 pm 
 View user's profile Send private message
Strangerke
ScummVM Developer


Joined: 06 Sep 2006
Posts: 329
Location: Belgium
 


quote:
I don't know where you got the "No C++ knowledge is required" from. However, you should probably be able to get by without any prior C++ experience if you can program, and did C and, say, Java in the past, and think you can pick up the C++ syntax quickly.


I think I may be behind that. I still think (and I'm pretty sure LordHoto will agree with me) that I have no real knowledge of C++. I had to code in various exotic languages for my work in the past, I don't really focus on the language I'm using but more on the algorithms I'm implementing.

Also, as fuzzie mentioned, we have several past experiences of successful GSoC students who didn't have C++ knowledge before starting.

And I confess I pushed in the back several people over the year. Maybe I'm a bit an evangelist...
 Reply with quote  
Post Thu Mar 20, 2014 7:44 am 
 View user's profile Send private message
  Display posts from previous:      
Reply to topic

Forum Jump:
 



Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Powered by phpBB © 2001, 2006 phpBB Group
Forum design by ScummVM team, icons by raina
curved edge   curved edge