Regarding the GSoC

General chat related to ScummVM, adventure gaming, and so on.

Moderator: ScummVM Team

Post Reply
User avatar
LunaVorax
Posts: 22
Joined: Wed Jun 27, 2007 2:51 pm

Regarding the GSoC

Post by LunaVorax »

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.
User avatar
DrMcCoy
ScummVM Developer
Posts: 595
Joined: Sat Dec 17, 2005 1:33 pm
Location: Braunschweig, Germany
Contact:

Re: Regarding the GSoC

Post by DrMcCoy »

LunaVorax wrote: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.
LunaVorax wrote: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.
LunaVorax wrote: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.
LunaVorax wrote: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.
fuzzie
ScummVM Developer
Posts: 178
Joined: Mon May 24, 2010 3:02 pm

Re: Regarding the GSoC

Post by fuzzie »

LunaVorax wrote: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/GSoCStudentG ... t-project/ and http://en.flossmanuals.net/GSoCStudentG ... -proposal/
LunaVorax wrote: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).
LunaVorax wrote: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.
User avatar
LunaVorax
Posts: 22
Joined: Wed Jun 27, 2007 2:51 pm

Re: Regarding the GSoC

Post by LunaVorax »

DrMcCoy wrote:
LunaVorax wrote: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.
DrMcCoy wrote:
LunaVorax wrote: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.
DrMcCoy wrote: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.
digitall
ScummVM Developer
Posts: 1172
Joined: Thu Aug 02, 2012 1:40 pm

Post by digitall »

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_ ... activities
User avatar
Strangerke
ScummVM Developer
Posts: 335
Joined: Wed Sep 06, 2006 8:39 am
Location: Belgium

Post by Strangerke »

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...
Post Reply