Everyone Struggles
As a Linux kernel Outreachy intern, some things I struggle with are knowing when to ask for help and being afraid of making mistakes. I am very shy, which is one of the main reasons that I hesitate to ask for help. I also don’t like wasting other people’s time on something petty that I could easily figure out myself. Knowing where to draw the line between something petty and something worth asking for help with can sometimes be tricky.
Another reason I hesitate to ask for help is that I prefer to figure things out myself. Even in high school, I preferred reading the textbook to listening to lectures. But when I ask for help, not only will it save me time, but I will likely learn something I wouldn’t have if I had figured it out myself. Even when I can figure something out myself, sometimes asking for help might be better. Occasionally, the process of writing out my questions helps me figure out the answer on my own.
I have always been a perfectionist, which makes me afraid of making mistakes. Being a perfectionist means it’s hard to know when a patch is ready to submit. I am more worried about missing careless mistakes where “I should have known better” than making a mistake because I actually didn’t know about sometime. I’m okay with the latter because I can learn something useful from those types of mistakes. With the careless mistakes, I feel a bit embarrassed, but I make note of it so I am more aware of it next time. One solution I came up with to help streamline the process of checking my patches is a list of commands that I should run on my program to ensure that it works for various conditions and combinations of parameters. That way, I can at least be sure that I have caught all the mistakes that would crash the program on my own system.
I didn’t understand what ‘acked’ meant during the Outreachy application process. I understood that it was some sort of approval for a patch, but I didn’t understand where the term came from. Why not ‘oked’? The search engine wasn’t very helpful, so I just shrugged it off. I actually didn’t learn what it meant until today. I discovered it by accident when I was reading Submitting patches: the essential guide to getting your code into the kernel. It means acknowledged.
Some things I am just beginning to understand are function-like macros, inline functions, and various types of function attributes. I had seen those things before applying to Outreachy but didn’t understand why one would use them and how function-like macros and inline functions are different from regular functions.