My name is Justin Du, and I’d like to share my experience with the Google Code In 2015.
Life is like a garden. There are so many things to explore, so many things to do, so many things to learn. This year, I decided to branch out of my introverted shell and delve into the world of free and open source software. What better way to do that then join the Wikimedia community? Coming from a family who works hard to provide and support everything for me, I understand the need and benefit of receiving a good education. I strongly believe in the Wikimedia Foundation’s statement.
“…To bring about a world in which every single human being can freely share in the sum of all knowledge.”
Let me just say, if it weren’t for the warm, wonderful, and welcoming Wikimedia community, I probably wouldn’t be contributing to Open Source. Before I started, I was completely lost. Sure, I knew the ABCs of programming, but hardly anything more. I didn’t know what IRC,or vagrant, or gerrit, or many other things were. (Not even command prompt commands!) I remember the first time when I went on IRC and posted my first message, something to the effect of
“Hi. I’m participating in GCI this year and need help setting up a vagrant environment.”
and people immediately flooding me with messages, links, and documentation. Although it took a while, once I set up my dev environment, with vagrant, gerrit, and a text editor, everything started to run smoother. I eventually created a Google Doc titled “helpful stuff” which contained useful hints regarding setting things up and git commands.
The help I received meant all the more to me when I found out that most of these people were just volunteers contributing to a global project. These people would answer my questions very quickly, and they never said “You’re stupid” or “Go figure it out yourself” on purpose. They held my hand when I needed it, and threw me in the open when I needed to learn. They are dedicated and passionate, and I am very fortunate to say that I have been able to build a deeper relationship with some of them. This all has kindled a fire to me, which, to this day, is only growing bigger.
Wikimedia has taught me so many things, be it code wise, documentation wise, communication wise, or character wise. A few weeks into the competition, I realized that some of the tasks were a bit too hard for me at the time. (Looking back on it, I find they weren’t too bad at all!) I was quite depressed for a short period of time, and then I found some motivation, evident on my talk page.
“Start where you are. Use what you have. Do what you can.” – Arthur Ashe
I realized that everyone in the Wikimedia Foundation is essential to its success. It’s kind of like a jigsaw puzzle. Everyone has their own skillsets, their own talents, their own idiosyncrasies. That’s what makes Wikimedia special. Everyone is awesome, and everyone has something to begin with, and it’s up to them to decide what to do with that. I am glad to say I did that, and it’s made me a stronger person.
As Bill Gates says, “It’s fine to celebrate success but it is more important to heed the lessons of failure.”
I’ve learned an extraordinary amount of code and tricks. I have learned to think outside the box more often, approaching a problem with multiple perspectives. That’s what makes Phabricator, the website which handles all tasks for the Wikimedia Foundation, so special. It allows any user to “subscribe” to a task, and allows them to comment and reply to others. This allows different approaches to a problem to be put on the table, which ultimately results in the best, most efficient solution. I found that many times, my patches would be cut in half when someone would point out, “You don’t need to do this. Foo technique does this already.” It made me shrink away at first, but then I realized that code can also be beautiful and elegant. When you solve a problem, it usually requires X amount of code. Code becomes elegant when you are able to solve that same problem using significantly fewer lines of code.
Through these past few weeks, I’ve tried to expose myself to a whole variety of different projects. I had no prior coding experience, so I felt that gave me a broader start, allowing me to branch off more. I tried to do everything that there was, be it documentation, i18n, TWN, a variety of extensions, core, pywikibot, and code in multiple languages. Many times I spent hours upon hours on tasks, and all I could see was a thin light at the end of the tunnel. I will never forget staying up till 2 am talking to mentors or waking up early to check my phone for gerrit notifications, or staring at something, wondering what was wrong. But I also will never forget the moments where I had a lightbulb go off, or when I received a successful output from a test. At the end of the day, I am proud of what I have accomplished, because I know I gave my very best, used what I had, and did what I could.
Wikimedia has also taught me much through communication. Talking on IRC is a whole different world. Anyone can see what you are saying, and anyone can reply. This can be a good and a bad thing. However, the concept of respect still applies. These users have lives and bugging them only invokes irritation. I have learned to be concise and efficient in word use in order to respect both others’ and my time, especially for volunteers. I’ve learned to be patient while waiting for a response, and that there’s always something else to work on while I wait.
I have seen the question “Are you going to keep on contributing” a few times already. The answer for me is, of course! The reason is that I strongly believe in the goals of the Wikimedia Foundation and will do everything I can to help every person in the world be able to learn faster and more efficiently.
I’ve started to run a marathon, and I’m only just getting started.
Before I go on, I’d like to write a few words to some people:
To Vivek Ghaisas (Polybuildr),
Thanks for creating tasks for me to work on in SmiteSpam. I really enjoyed them. You taught me to think about my solutions and how to make them simpler. Most important of all, you got me started on my journey in open source.
To Moriel Schottlender (Mooeypoo),
You and Roan are doing some awesome work for Echo, keep it up! Although I had only one GCI task mentored by you, we have collaborated on many more outside of that. You have taught me to back my arguments, when I had to find the documentation for GENDER parameters using the MW log formatter. You encouraged me to keep programming, to keep contributing. Thank you so much for your constant encouragement.
To Roan Kattouw (Catrope),
You are one smart guy. It’s not easy to get a masters from Stanford. Although I never had you as a mentor, I was lucky enough to work with you in Echo. With your help, I was able to contribute changes which all users over the world are able to see. Updating a dozen or so icons in Echo and Flow. Thanks for teaching me along the way, dropping hints here and there.
To Gergő Tisza (Tgr),
You are a hardcore, intelligent developer, and an amazing mentor. I think I’ve crowded you with praise and thanks already. You taught me to do what I could with what I knew, and to learn by doing. Thank you for making me do things myself, for refusing to help too much. Although it was a real struggle at times, I have to say, it worked. You taught me that it’s ok to not know something, as long as you have the motivation to learn it later. You’ve made me a better person, and I can’t say enough words to thank you.
You are a jack of all trades, mentoring a wide variety of tasks. I will never forget your constant love in your comments. I never feel bad when I read one of your messages. There’s either always a smiley face in it, or it’s something good. You are always available to help, and you are extremely dedicated to this project. I admire that. Thank you for teaching me, accepting me, and walking with me through these past few weeks. Keep up your good work!
To Kunal Mehta (Legoktm),
You are valiant in debugging despite facing constant setbacks. You got me started with developing for Wikimedia. I remember the week before GCI started, you spent hours and hours helping me until I set up my vagrant environment. I remember that moment when I was converting OAI to use the new extension registration system and you constantly tried to debug my error until I could successfully push a patch. Without your help, I’d probably have given up. Thank you for your patience and kindness.
Thanks for showing me how useful documenting installation processes are.
To This, That, and the Other (TTO),
You are wonderful. Thank you for your warmness and welcoming tone on IRC. Multiple times, you helped me with coding problems, and multiple times you were encouraging to me. I wish I could have done a task with you as a mentor. Speaking of which, I’ve been eyeing https://phabricator.wikimedia.org/T97720. I’ll need some help, but I look forward to contributing to that and many more!
To John Vandenburg (Jayvdb),
This past week has been all Pywikibot, and I’ve enjoyed every moment. You have molded me into a better programmer and person. I remember when you said “No hints. You’ll have to debug yourself.” and my heart dropping. I have to say, although it took a while, it was fun and it felt really good when I found the problem. Thanks for always being there, posting meaningful comments. Thank you for teaching me to be patient in communication and improving them overall. Most importantly, thank you for making me do things on my own, which taught me more than I could have imagined.
To Federico Leva (Nemobis),
It’s been a pleasure, to say the least. I’ve enjoyed every moment of working with you. You’ve taught me much in the area of documentation, and more specifically, to use my imagination instead of just rewriting a message per someone’s request. I’ll never forget this quote. “non ti corre dietro un treno” It’s on my wall. Thank you for being an org admin. I can’t imagine the extra workload that brings to you.
To Andre Klapper (Aklapper),
I knew you were dedicated to Wikimedia when I sent you that e-mail a week before GCI started, asking you for help setting up vagrant. Even though I had never talked to you before, you responded warmly, with detail, and hints for future communication. You have done so much for me in the past few weeks, be it chatting, commenting, or publishing, and that’s just for me! Every task I look at, you’re subscribed to it. Thank you for being an org admin and for your tremendous work ethic and devotion.
To Petr Bena (petan),
I never really had a chance to work with you, but on those few occasions where you posted comments on my code, I felt great. Thanks for being a helpful person and being an org admin.
Last of all, I’d like to thank Google.
Without Google’s support and belief in the next generation of tech enthusiasts and engineers, I probably wouldn’t have written anything more than a function that told you if a number was even or odd. Without Google, I never would have gotten to meet all these wonderful mentors and volunteers. And without Google, I never would have been this eager to complete bugs. Thank you Google for your full fledged support and passion to expose teenagers like me to Open Source. It’s a great idea, and I hope you all will continue to host this every year.
It’s been a wild, wonderful, wicked ride Wikimedia. No words will be enough to describe the things you have done for me in the past few weeks.
Thank you for getting me started on my journey into open source, code that matters.
My Walk With Wikimedia by Justin Du is licensed under a Creative Commons Attribution 4.0 International License.