Since September 2016, I’ve been contributing to Servo.
As with most good things in life, it happened by chance. I met someone in a coffeeshop, that person was writing code and I couldn’t make out the language used. I asked, and the answer was Rust.
We ended-up sharing that coffeeshop for remote work for a while. Eventually I cloned Servo, and tried building it for the first time. It was surprisingly easy, well-documented, and supported by wonderful tools.
My first commit was a one line code change which resulted in updated test expectations for 25 test files! Wow, so much work with so little code! ;)
For my second commit, I returned to the comfort of Python, and made some changes related to the tooling of the project.
In the following winter months, I really got going with Rust with changes to the code handling incoming scroll events in the related project Webrender. That was a wonderfully ‘visual’ type of work which I could easily test on my own by scrolling the page. It was a good beginning.
In March, I went down the rabbit hole with work on my first issue labelled “hard”. It felt a little like first learning to program all over again. While in those days I had to wrap my head around new concepts like ‘variables’ and ‘functions’, this time it was about understanding parts of a large system.
Let’s just say that it’s only since then that I understood those memes about programmers not wanting to be interrupted while working. It was the first time working on a system large enough that indeed one had to make enormous efforts to just load the relevant concepts into one’s “working memory”.
It took about a month to get that PR merged, and with all that feedback, I probably learned more than I would have had otherwise in a year.
I was hooked, and have been pursuing those “hard” issues ever since. It’s fun, and while it starts slow, you end up making giant leaps.
Regarding the Servo community, well, while I often wonder how the core maintainers know so much, I am also amazed how they never make it seem like they “have all the answers”.
As someone who has received code reviews many times, I can vouch that it indeed feels like being coached, as described here(I think of it as “my free system programming bootcamp”).
Or maybe the above doesn’t describe you at all?
And if you like it, which I have no doubt you will, take your pick at a “hard” one after a few months.
A whole new world in programming awaits you…