I just completed the third week of my internship with Outreachy. So far, it’s been a lot of new experiences but more importantly, pushing me out of my comfort zone. I’ve faced a few challenges along the way that required me to change the way I usually do things and approach problems a bit differently.
My project is to extend Ansible modules. I know what your first question might be, what are Ansible modules? Yh you know great questions, I’ll let you know when I figure it out!
OK just joking …. actually partially joking! But to be honest, for the first week, I can’t say I truly understood what Ansible was exactly. There were resources and docs to look into but it just didn’t seem to hit the mark with me. When it started to make sense, at least when I finally got the purpose of Ansible, was when I watched this great YouTube video where the tutor broke it down from the problem to the solution. I’m still trying to figure out how to develop Ansible modules and undersand some technical terms but at least I get the foundation of it all!
The second challenge I faced was submitting my first change. OpenStack has this automated test your code has to pass through before it’s finally submitted for reviews from other developers. My first submit was a FAIL, I skimmed through the error logs but didn’t find the problem. Now before submitting at first, I had asked my mentor about testing locally but she advised me to just submit and let the automated test take care of it. At least for now, till I get to understand things more later on. But after the automated test reported a FAIL and I couldn’t figure out the problem, I tried to set up an environment locally against her advice … I spent my entire weekend on this and it did not work!
Eventually, I went back to the error logs from the automated test and this time read properly and guess what? The problem was right there! I solved it in about 5 minutes. I just wasted a lot of time on a problem that simply required me to pay a bit more attention to details.
So what have I learnt so far?
- Think within the box first: It’s great to ‘think outside the box’, that’s where innovations come from but before doing this, you need to complete all tasks within the box and even understand the box first!
- Do your own research: In understanding a problem, before asking for help, you should have your own understanding of the foundation first. Read docs and articles properly, watch videos and pay attention. My first meeting with my mentor could have gone a lot better than it did if I had understood a number of things properly first and gotten my questions right.
- Ask the right questions: As much of a genius as your mentor is, they still can’t read your mind. You have to communicate properly with them. I got a small book where I wrote every question that came to mind while doing my research. When I was done studying, I could already answer half of my questions and I was very clear on what I needed to ask my mentor or the community.
- You can’t figure it all out at once: My mentor made me understand that there might not always be that ‘light-bulb-moment’ when everything suddenly makes sense, but as you go further, everything begins to come together and you can just keep getting better.
- No one thinks you’re dumb! I felt some of my questions on the community chat weren’t well put and didn’t use the right technical terms, but after simply asking to the best of my knowledge, I was corrected where I needed to and guess what? Turns out I even found a bug they didn’t know of.
Above all, I’ve learnt that no problem is bigger than me. I just need to pay better attention (certainly) and take things one step at a time.