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.
Regarding the GSoC
Moderator: ScummVM Team
- DrMcCoy
- ScummVM Developer
- Posts: 595
- Joined: Sat Dec 17, 2005 1:33 pm
- Location: Braunschweig, Germany
- Contact:
Re: Regarding the GSoC
If nothing else, having the student repeat the project proposal in their own words should show you whether they understood it.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.
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..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?
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.
Quoth the ideas page:LunaVorax wrote:Finally, I don't understand why having no knowledge in C++ is okay to participate
"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.
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.LunaVorax wrote:This sounds like you must have to be a regular contributor to the project in order to pretend for the GSoC.
Re: Regarding the GSoC
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).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?.
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/
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.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.
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).
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.LunaVorax wrote:This sounds like you must have to be a regular contributor to the project in order to pretend for the GSoC.
Re: Regarding the GSoC
That makes sense.DrMcCoy wrote:If nothing else, having the student repeat the project proposal in their own words should show you whether they understood it.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.
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.DrMcCoy wrote: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..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?
This clearly is a skill I don't have yet.
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.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.
Still, I would gladly see some exemples.
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
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
- Strangerke
- ScummVM Developer
- Posts: 335
- Joined: Wed Sep 06, 2006 8:39 am
- Location: Belgium
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.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.
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...