Welcome to Google Code-In 2018 and CCExtractor!
Questions? You can email us at code-in@ccextractor.org or join our Slack group! But please make sure you read the whole page first.
This is going to be another absolutely amazing GCI year! We have a long and proud history of taking part in the Google Summer of Code with university students, and are excited to participate in GCI again for 3rd year with pre-university students! We have tasks that are: fun, useful, educational... and for all levels and interests - coding, design, documentation, UI, research and much more!
While it is completely optional, it is highly recommended that you join our Slack group. All the mentors, org admins, contributors and fellow GCI participants hang out in that group. That's the best place to get quick answers to any query or problem you might have. Go to the end of this page to invite yourself to the group.
Can't join the Slack group? It's no problem! We try to be super fast to respond to all comments and submissions in the GCI website. If you prefer email, you can email us at code-in@ccextractor.org. There's also a mailing list/Google group for CCExtractor : https://groups.google.com/forum/#!forum/ccextractor-dev if that's how you sail!
Things to know! ✅
For tasks that require some resources in general we will provide them for you, including access to videos, system accounts, etc.
This year we are going to have some system administration tasks. We will provide you with root access (Yes! We're that cool) to a small server for interested students to play with. Check out our sysadmin tasks.
We can't stress this enough: Winners are those that do the hard tasks. Amount of tasks is not so important.
Collaboration is much better than competition.
Mentors love it when a student comes up with a better idea than their own, really. Do not just do as told. If something doesn't feel right either argue against it (politely of course) or work on a different area.
If you want to do something that is 90% or so implemented in any other open source project just take it, complete it, send the maintainers of that project whatever changes you did so they can use them if they want, and integrate with our code. Always remember to leave all license and credits intact (you can add your own name).
Mentors are there to help but they're people too, not bots. So they sleep from time to time, may also have other things going on, can get sick, etc. They will reciprocate when they think of students.
Whatever you do, we want to integrate. This means that your work will be public and will be around for a long time. In a few years you will find your own code again (code tends to follow you). Try to leave it in a condition that the future you will be proud of.
Be mindful of your own privacy. Yes, we're a friendly bunch and you'll get to know us and we'll get to know you in our community. That's different from posting your real name publicly everywhere.
Perks
Remember that the absolute best way to get invited by an organization to participate in Google Summer of Code is by being part of the community before GSoC is even announced. If we, as an organization, are invited to GSoC 2019 the applications from successful Code-in students will go to the top of pile.
We also give back to our students in any way we can, including writing recommendation letters that can help to apply to universities, visas, jobs and so on.
In short - don't think that the reward for participating this year may be limited to a t-shirt :-)
Code-in for Designers 👩🎨
If you're passionate about becoming a great designer and willing to do some serious work, look for the tasks labelled [Harddesign]. Hard means that they are going to take time and talent to produce the quality results we want and to bring up design tasks at par with coding. At least one of the students that does a great job on those will be a finalist, and maybe a winner.
We are doing this to prevent the design tasks being treated just as an easy way to complete beginner tasks. For example, you can create a T-Shirt design in 10 minutes, but that's very unlikely to be good and usable to well, actually make T-Shirts with it.
We did this last year as well and got some amazing results. One of our winners from last year did some major design tasks including the organization logo.
Remember though that hard means hard. Don't expect us to approve the first design you come up with. We will give you feedback and work with you until you produce something that you can be proud of for years and that we can use.
Get familiar with Tags 🏷
We'll do our best to keep consistent tasks that help you find out good things to do. If you think we could use better tags please get in touch, with examples, and we'll improve. For some some tags you might want to look out for:
- winnerstrack: The hardest and/or more valuable tasks go here. If you are really serious about winning, work on those. To be realistic we don't think they will be solved, but it wouldn't be the first time a GCI student productivity is better than the mentors :-) So we're putting a few of these out there (not at the same time).
- hardtask: Difficult tasks but doable, with effort, patience, and mentor support. That's what we're here for!
- githubissue: The task has a related GitHub issue, so by doing this task you will be actually fixing a bug or adding a requested feature.
- anylanguage: Tasks that you can do in any programming language you want, usually because they are about writing a new (small) program so you would start from scratch.
- googleassistant: Tasks related to Google Assistant. We'll have a few of them every week, and they don't have to be related to our organization primary focus at all - they can be anything, because we want you (and us) to explore this new technology.
- bonus: Tasks that come with a special prize, such as a software license (that we will buy for the student) or a book. We will publish one of these tasks every week or so, so make sure to look for them often!
FAQ: Why is CCExtractor written in C? Are you from the past? ⏱
Yes, we get this from time to time :-) We know there's lots of cool languages out there, many really easy to start with, and well, C is not one of them. But the thing is, the most performance critical tools are written in C, such as the Linux kernel, or FFmpeg, or... you get the idea. A tool that needs to process lots of data (such as video) just needs to be as efficient as possible.
We do have auxiliary tools written in different languages, for example the Windows GUI is written in C#, and we have lots of Python as well. But the core CCExtractor tool is in C. Should you learn C then? Well, depends on how serious you are with IT in general. By learning it you will learn a lot of how things really work - without using all the magic that higher level languages provide.
Video from previous winners
We think that the best way to let you know how cool Code-In is is to show you a video of previous winners. This was at Google's office in San Francisco in 2016, where Evgeny and Alexandru (which are of course now core developers at CCExtractor) presented what they did during GCI 2016!
And Aadi and Shiyuan (also core team members now as well as GCI mentors) in 2017
Matej and Ivan, 2018
Slack
Slack is a great communication tool. Most CCExtractor developers hang out in a slack team. You're welcome to request an invitation here