Contributing to Open Source : Week 3

(This story is part of the weekly assignments for my internship at Nearsoft. I hope that some of the insights I learned this week can help others in their learning journey. Previously: Contributing to Open Source : Week 2.)

Golang’s Gopher

Learning a second language

During their careers, most software developers (if not all) will use more than one programming language. For me, I started to learn programming with Javascript and, these past few months, I have used some other languages, like Java and SQL, for a short time. Now, it’s time to learn a second programming language in depth and I have chosen Go.

It’s an interesting process to learn a programming language when you already have programming foundations on another one. Just like Dave Hoover and Adelwale Oshyneye explain in Apprenticeship’s Patterns, your First Programming Language will be “the default skill you hone whenever you are practicing” other languages. And, now that I’m learning Golang I can notice that my perception of Javascript (and programming for that matter) has changed for the better because now I am acquiring more examples of programming that help me build my mental representation of it’s concepts.

Progress on my Contributions

This week, I continued working with an issue on Javascript + React. The project’s name is graffana and to put it into perspective, the size of the project is about 3GB and it has had around 1,357 contributors so as a consequence, it has thorough documentation and clear processes to contribute, as well as documentation about the architecture of the project and how each feature works. On the other hand, this project uses Typescript and Redux, which I haven’t used before. So, before continuing with the issue I had to take a step back to fill the gaps in my knowledge so I could understand the code base and be able to work on the issue more efficiently and effectively.

Also, during this week I started to look for an issue in Golang and first I dove into and as soon I filtered the search I noticed that, even though Golang is used for a variety of projects, most of the open-source one’s are used with or for Kubernetes, Docker, Cloud tools, Microservices and so on. So, in order to contribute to one project I will also have to learn about these other tools. However, I will try to narrow my study and “let the drive toward the solution direct my learning.”

26 yo. Self-Taught Software Developer. I write about Career Change, Women in Tech and anything exciting I’m working on.