Well everybody struggles, or at least get stuck at some point.
Imagine a task you are endeavouring to complete. It can be building an application from scratch, learning and practicing a tool or simply adding a feature to an open source project. Any task you do you may have got stuck at some point. It happens with everyone. To me, getting stuck is like a checkpoint for ourselves. It is a means to improve ourselves.
When I first introduced myself as Outreachy applicant to the fsharp community I was a complete noob. In order to understand the codebase of FsAutoComplete (in short, FSAC) I had to have knowledge of F# (pronounced as fsharp). The community was very welcoming. I got amazing beginner’s resources to learn fsharp from the community. If one is new to a programming language it is best to read articles and blogs first before getting into the technical details of it. The blogs help in understanding the language’s style, design, need and usage. Once the basic idea is set one can now get into the programming details without getting bored.
The next step was to understand the workings of FSAC. It was great I found help from my mentor, Enrico Sada, who guided me through the codebase and explained to me how a feature needs to be implemented according to the needs of the task. One needs patience to go through huge codebases step wise step. And it is always best to reach out when stuck. After understanding and getting a hold of the codebase it’s time for contributions. The best way to start is to provide solution to one of the issues from the repository. If you are new then check for issues with labels such as beginner’s issue or good first issue. Make conversations with the repository maintainers to discuss the details about approaching towards the solution. I had collaborated with my mentor to solve one of the issues. I had reached out to the community through their Slack channel when I require any further help.
While contributing to the first issue I had solved I came across an error that the Project files failed to parse. I tried hard to figure out what had happened by searching through GitHub repositories, previous issues which mentioned solution about the error, documentations and blogs. At first, I thought I had to update and/or reinstall the supporting softwares, dotnet core and mono, to match their specified versions for the project. But after doing that the issue was still the same. I had even reached out to the repository maintainers and my mentor and that is when I found the solution. Many may feel hesitant to reach out to community or individuals in order to ask for solutions and would spend hours over trying to find solutions themselves. It is always a good idea to first try to solve the issues by our own it helps in learning and builds confidence once we find the solution. But if you are stuck on it for a few hours it is better to reach out to mentors and the community.
Everybody struggles but there are ways to get out of that state to improve and not remain static. ;)