Learning programming on the second attempt, four years after the first one

Programming was a foreign concept to me. I was into computers, at the hardware level, but that was about it. I knew there was this things called a RAM. I had no idea what it did, but I knew it was important cause the computer would not turn on otherwise. I only knew that because occasionally I would have to open up the CPU to jam it back in. I did not even know what programming was. All I knew was there is this black screen called the terminal, and that it was the coolest thing ever. I remember watching movies, with hackers typing into a terminal. The closest I came to programming was, I would open the windows terminal and type something I saw on the Internet and text appeared on the screen. I even had Fedora running, although I had no idea what the point of it was. All I knew was that my old computer ran much faster when I switched to it.

Based on all the above, I thought I could learn Computer Science after school. The only programming language I learned was C, there were others that were taught, but after two years, I did not really care. The problem, looking back is clear. I did not see the point of it all. How it made a difference in the real world. I tried some HTML and CSS but had no understanding of the concept of servers and databases. The funny thing was I did understand SQL, I could create tables, query stuff etc. I don't blame anyone, I just did not put the time and energy needed to try things out on my own. After university, I had no interest in being a software engineer, so decided to be a Scuba diving instructor. Although, I remember a conversation I was listening on between my friends. We had a programming genius among us, and one of our friends was talking about pilots and that it sounded cool. I thought so too. But what the he said kinda shocked me. Programming genius:"I could never work as a pilot, I'd get bored, you do the same thing over and over. But with programming you there is so much to know that you can never know it all." Somehow that very statement bought me back to programming six years later.

So fast forward six years, I was really bored with diving. Even though I was really good at it. But I saw all my options around me, and it turned out I did not like any of them. I wanted something a bit more challenging. I knew a programmer here, so I started talking to him about it, and he sent me a PDF version of a book on C#. To my surprise, I was really into it, on the boat ride to the dive site, which was about two hours each way I would read the book, come back home and then try out what I had read about that day on my computer. But after a while of learning C#, I got tired of it, I remember why too, it was the whole .NET thing. There were so many files and I had no idea what I was doing. So I went to Codecademy and fiddled with JavaScript for a few months, and for the first time ever programming made sense to me. I could write a few lines of code and things would happen on the screen. I still remember that time, for the first time ever I felt like I could do this thing.

But still something was missing, I couldn't really build anything, because of all the hand holding in Codecademy and tutorials. Then one morning a coincidence would change my trajectory in programming for ever. I saw this link on hacker news for c0d3.com. When I saw the title of the page, "Become a Software Engineer the Hard Way", I knew I was at the right place. At first I was skeptical, because I would have to start again. But I did it anyway. The first module felt super easy, so I did not bother to read the chapter and just started solving the solutions. I'd solved the first module in a couple of hours and felt pretty good about myself. It was until I learned that, a challenge was only completed once it was approved by someone. I was shocked to see that, all my solutions were wrong. When I saw the comments, I was happy, because for the first time I could know if I was doing the right thing, instead of just wondering. To be honest, c0d3 and the mentors I met there shaped me as a programmer, and still do to this day.

I think the only reason I was able to learn programming the second time was that, I really wanted to, and was willing to put as much time as it was necessary. I still remember, coming back from work and going straight to the computer, starting over three times before it actually stuck. But when I got it, it was all worth it. Somehow, I've fulfilled my childhood dream of working with the terminal. Probably why, I still spend the most amount of time there. Tmux, Neovim, in Pop OS by the way.

I love programming.