“Everybody Struggles” topic, which is suggested by Outreachy organizers, is a very practical and useful theme to discuss, in my opinion. I don’t know whether the problems described in this blog are considered “struggles”, but I will list some difficulties I faced and how I got out of them. The first problem relates to a technical issue, but I also list some other problems that are non-technical in the last paragraph. Even I passed by some and still struggle with others, I believe that it is very common and I always can learn from it.
My current project is working with Active Data Recipe. Last week, I faced a problem while working with the issue “Define recipe queries and arguments in a structured manner“. My mentor and I had worked during some weeks to develop a new design which helps writing recipes be easier and clearer. At that time, this new design was implemented successfully in one recipe, and my task was to apply it to other recipes. To be honest, at the beginning I thought it wouldn’t be a difficult task, but then it turned out that it was.
Firstly, I realized that I didn’t understand the “meaning” of each recipe, so I didn’t know what should be modified, what should be kept. So I debug every lines of some recipes, which took too much time. But after some recipes, I realized (again) that I didn’t have to understand the “meaning” of each recipe. If I understand the pattern, I can modify the recipes without “understand” them.
Then, another problem is this design seemed not work with some recipes. I was a little disappointed when I found out that, even I knew that this design may need to be updated several times. I thought this way and that way, tried my best to see how I could make it works with not so much modification. I also took time, too. Finally, I couldn’t, so I decided to ask for help from my mentor, as you can see in this PR. I described the problem, and said that I have no solution for it. And, after reading his comments, talking on IRC, I saw the problem in a new way, and by some simple modifications, I could apply the new design for these recipes. Of course it was not perfect at that time, but I think that it was good enough, and didn’t require too many changes in the design. I thought I should asked him sooner, however I encouraged myself that getting stuck helps me to understand more about these recipes.
Now, I want to tell you about another non-technical problem. I am not a native English speaker and afraid that using wrong words may offend other people. This is also the first time I work in an international software team, so I am also not sure about what to talk and what not to talk, even everybody is friendly (my manager also reminds me that they are all “human beings, not robots” lol. I guess that feeling came to me because of my previous working experience. I have worked in an international cooperation group in a government organization for more than 2 years. Most discussions were done through emails and “delegation meetings”, most documents were checked multiple time by some people to reduce confusion & ensure correction, so it was kind of more official and formal communication than software industry environment. Therefore, at first, I often asked my mentor about what should I say in group, and he often helped me to be more confident and relax. I feel more comfortable chatting in IRC group channel now and think this problem will be solved after a while, when I have more experience and “feeling” about company culture.
And this is the story of my mentor: “I struggle with focus, I find it difficult to work on the same thing for long periods of time. My mind tends to drift and lose interest if the project takes too long to finish, probably around a month.” After talking with him, I realized that I also have problem with focus, but in another way. When doing a task, I often think about many things I can do to improve it, so it takes me too much time for low-priority things related to this task. I think I should set a “deadline” for each task and change to another task when time runs out.