Going into unknown
Tags: opensource
Published: 2021-12-02 08:11:34

I have been having a tough time IRL these weeks. The course load doesn't help. 

## Choosing a project ##
My big problem was selecting a new project that would be good enough that it would be a challenge to me, but still doable so I could complete it. I only had one idea of what I could work on - I really care to learn Go and I'm always up to checking out a Go project - seeing if I can help with anything. However, Go is a *special* language (just like me, lol. *special*). It's not that widespread as opposed to, let's say JS, or C#. Meaning people that are just starting coding wouldn't start with Go. Meaning that most of Go projects, even the simpler ones are made by people that already know some things about coding. So the baseline of a project complexity is simply higher. Go is designed to make life easier for programmers. A noob would not even know what that means in the first place. At least I would imagine. Finally, there's just not as many projects overall. All those things made it finding a solid project to work on really difficult. Many of them looked too advanced to even know what was going on and what the issue was in the first place. 

## Buut... Go's kinda cool ##
I looked for Go because if anything - it would be a challenge. I would learn new things, I would learn things I care about and things that I want to learn. The only task I had in mind as a candidate was the previous project that I tackled. I wrote unit tests to simple functions, which expected a simple input and output. After completing the easy ones, I tried to handle something more difficult. And I just couldn't. In any case, just learning how testing works in Go was enough progress for me. However, I still had a lot to learn that was unconquered. Yes, you know it if you have been following - mocking. Mocking in Go. It seems so specific.. that I struggle to find a good guide. This task is really something that I don't know if I can solve. However, it would be cool if I did. It's not like I can find anything else, given my time running out.

## Asking for help ##
When I struggle with something, whenever I'm lost - I try to find a person that knows that unknown thing to share their knowledge. I tried that before. There is a serious developer I know from a project I helped out with. I asked him to show me one day, tell me how mocking works. Unfortunately, he was too advanced. He explained things using terminology that he probably expected me to know. More than that, explaining the actual concept was so fast paced - I couldn't follow at all. It seemed like he was a busy person, I already asked a lot. At the time I, again had enough done to be happy with my progress. I didn't ask again.  

As I recently decided to actually take on the task of mocking, I tried asking for help again. I searched for communities in Go. I expected to find more, honestly. I have found a somewhat active discord server. 
<img src="https://cdn.discordapp.com/attachments/353432193730871296/915871255549321246/Screenshot_220.png" />

<img src="https://cdn.discordapp.com/attachments/353432193730871296/915870982135242753/Screenshot_218.png" />
<img src="https://cdn.discordapp.com/attachments/353432193730871296/915870982344937532/Screenshot_219.png" />

The person tried their best which was really nice of them. [The resource](https://quii.gitbook.io/learn-go-with-tests/go-fundamentals/mocking) they shared had a bunch of practical examples which is what I needed the most. I'm not done going through it, but it will at least give me a direction to start. 

I might not have enough time, or help available. At the very least I'm using Go, and that is just cool. That is just enough to me. After all, you learn through failure, not success.

### Unlikely future ###
*You can stop reading now honestly*

So this is stupid, buuut... I'm gonna share a secret. I've been browsing jobs and stumbled upon [something cool](https://www.linkedin.com/jobs/search/?currentJobId=2692894442&f_C=4976061&geoId=92000000). Let me tell you why it's cool.

- It's in Go. That's just cool by definition.

- It looks doable. I might have an actual chance.

- It is in Montreal. I have this unreasonable wish to live, at least try for a little in Montreal. Be it that I'd get to improve my french, or that it seems to just be an interesting place to exist in. 

- It's MindGeek. You know what they do? Yeeeea... They're the company behind PornHub. If that's not cool - I don't know what is. Just imagine telling someone - *I work at PornHub*. Wait. I now see how that might sound wrong... Ok, one more try. *I code at PornHub*. A person I tell this to would either be impressed, or repulsed :D

So in a way, choosing this specific task might help me getting there. And I know it's unrealistic - the position should still be available either when I go for my coop in summer, (even if they can accept it a as coop position), or after I graduate - exactly in a year. I would have to actually move to Montreal. Just moving some place far sounds like a lot of work. Might not work with my current relationships, might just be too much of a hassle. And finally, I would have to be accepted. I would have to be good enough. I just doubt it's realistic. But at least for now I have a small thing to strive for. Even if unrealistic.