I'm Back! + On Learning Software Engineering and Managing Failure
Tags: programming, community, motivation
Published: 2023-04-29 03:30:54

Hi again!
It has been almost 3 years since my last post here, my profile has been accumulating dust, and it's time to shake it off.

I used to write mostly about my learning experiences and how I managed to be productive during the early days of the pandemic, which were also the early days of my Computer Science bachelors' journey. Now that I'm approaching the end of my first 5 years studying CS, new opportunities have appeared, and I'm excited to show you every one of them in small articles like this one.

From late 2021 to 2022, I have gone into (kind of) a slump. I (thought I) couldn't write articles or learn code like I did on my first days anymore, and it demotivated me to horrendous levels. I tried everything: sleeping more, trying to be more active in the gym, establishing a routine, but none of it actually worked until I found my current therapist. If you're procrastinating going to therapy in 2023 just because everyone seems to be doing it, _stop right now_ and schedule your session!

In 2023, I decided to turn my situation upside down and to start looking for jobs in the areas I've identified with the most. After leaving my first scientific initiation due to said crisis, I've found myself since September '22 researching on Computer Vision, but since it's a voluntary position, it's not really doing anything for me, but I found interest in the area and started going after related Master's programs and internships.

_Now, to the actual subject of this post!_

I had two Software Engineering subjects at uni for the last year, and I have to admit: it was a very difficult time for me. I liked planning and all the tools to do it, but when faced with real-world projects such as [Plague.me](https://github.com/ES2-UFPI/Plague.me), in which I helped by being the "front-end and design lead", I saw all the possible failing scenarios you could imagine. In the end, though, I was able to obtain a 9+ for presentation.

_Here are some things I practiced for this project:_

## Number One: The Documentation Nightmare
I thought I liked to write docs in Markdown, up until this point. One of the first tasks we had to do for Software Engineering II (I'm going to skip SWE I because it was mostly planning work I didn't even get to actually use) was to [write a tutorial](https://github.com/ES2-UFPI/Plague.me/wiki/Tutorial-5:-Comunicação-com-HTTP) (and record a video version) related to the project in any way. I thought it was a good idea to write about HTTP and how to do server communication with it, since the project was going to be a website.

I think the final product is pretty nice visually, but in the end it hasn't helped me as much as I thought it would.

## Number Two: Scrum-Leading my Way to Hell (probably)
I also thought it would be _very nice_ to be the first Scrum leader in the project. We had a total of three professor-supervised iterations, and I knew nothing about Scrum besides what was given in class. I liked the approach, though, and might learn more about agile development in the future.

As a [leader](https://github.com/ES2-UFPI/Plague.me/wiki/Planejamento-das-Itera%C3%A7%C3%B5es#1%C2%BA-itera%C3%A7%C3%A3o), my responsibilities were to report my group's progress to the professor and in the wiki. I might have done a goodish job at managing the group and planning the iteration, but I forgot to complete some data and that cost me some points.

One of my biggest difficulties in this part was to understand the point system that was being used in the planned story of the sprint, but on later iterations I was able to kind of pick that up.  I didn't struggle that much managing both being the project leader for two weeks and my front-end/design role, but it got harder when exam season started for all 6 subjects I picked for the semester.

## Number Three: (Actually) Doing some Front-end Work! Yay!
As a kid, I loved to have customized Tumblr and Blogger accounts. I'd really be waked up until midnight tinkering with the HTML/CSS file of both and sleep soundly after with no regrets. That's almost how I felt on the first days of trying to create a cute interface for the gamer social media website. Then the self-doubt and the project deadlines came and destroyed it once again.

I would love to play with web design, but not on that level of pressure! In a good note, I learned to deal better with deadlines. Not that I was a big procrastinator, but my mind couldn't revolve around the idea of some things having to be done in less than two weeks.

On this project, I mostly used HTML and CSS with low to no JS code. As an absolute child in Ruby on Rails, I'd edit the layout on [Codepen](https://codepen.io) and ask my colleagues (mostly my boyfriend) to help me "translate" it into embedded Ruby, which seemed  to work partially for the time frame in question.

## Dealing with Self-Doubt and Imposter Syndrome
A lot of resources available on the Internet helped me get through this subject with little damage, and most of it was free:

- [Free Ruby on Rails courses at Udemy](https://www.udemy.com/courses/search/?price=price-free&q=ruby+on+rails&sort=relevance&src=ukw)
- [HTML](https://htmlcheatsheet.com) and [CSS](https://htmlcheatsheet.com/css/) cheat sheets!
- [Youtube](https://youtube.com) tutorials

But nothing seemed to help me with the horrifying vision that, no matter how hard I tried, I wouldn't get anything better than simple and newbie results. _I comforted myself at the time thinking that as an actual newbie on programming, that was the most I could do and, eventually, I would overcome this feeling._

## In the End, Maybe it Mattered a Little
_As I said, it became._ During my vacation month (this April), I was able to start building side web projects more confidently and more consistently (I haven't finished none yet as I write this, but I'm _really_ committed!) and I'm thinking of starting some freelance work to help me study for my dream career and graduation plans.

> I think the most valuable lesson I was able to get was that real progress is slow, but very rewarding if you do it the right way.

Later I was also able to find resources such as the article ["Why Learning to Code is So Damn Hard"](https://www.thinkful.com/blog/why-learning-to-code-is-so-damn-hard/), by Erik Trautman, which explained a little bit more about how/why could I be in such a slump while learning. I identified myself a lot with the "Desert of Despair" step, but I'm happy it is very close to the "Upswing of Awesome". I hope I can show you my transition into it in the next posts.

## Conclusion
I decided to dedicate a lot of time on this post talking about the effects of mental health on my productivity because it really became a part of me during these last years and I hope it wasn't much of a hassle to keep reading. I also want to advocate for the end of hustle culture in programming and studying communities by starting to normalize these struggles on my posts.

If you liked this post format and want me to delve more into it or give me some suggestions, feel free to use the comment section and give me a like! <3

See you soon!