Photo by Iluha Zavaley on Unsplash
10 Months of Mental Turmoil: My Journey into Tech! (Part One)
A Compelling Account of my Personal Growth in tech!
Writing an article about my tech journey since I started exploring the world of technology 10 months ago has been on my mind for a while. Throughout this period, I have made mistakes, experienced progress, and learned valuable lessons. I believe that sharing my story can both inspire others and invite them to contribute their own experiences. This article is the first part of my ongoing journey into tech, and I plan to provide regular updates every 10 months.
First things first... Let's take a trip back in time to where it all began.
Growing up, like most kids, I had a deep love for games. Playing them was exciting and enjoyable, but I didn't have my own phone. Instead, I relied on my family members' phones, which essentially became "our phone." Understandably, they frequently changed their passwords, effectively locking me out from using them. Looking back, I can't blame them for their actions. After all, imagine having a 9-year-old constantly draining your battery playing games!
Nevertheless, I became determined to find a way to play those games. I began attempting to guess their passwords, spending long hours contemplating different possibilities. It took me days for some passwords, while others only took a few hours. I would consider everything I knew about the person, such as their likes, dislikes, date of birth, and their characteristics, to determine whether they would use a personal or random password. I persisted until I successfully discovered their passwords and gained access to play my beloved games.
However, as time went on, the focus shifted from the games themselves to the challenge of cracking passwords. This became my new game.
Now, let's return to the present.
Throughout my life, I have possessed an overactive imagination, leading to both creative and crazy ideas. Even before I knew anything about programming and development, I constantly envisioned bringing applications to life that could solve real-world problems. For instance, if I found myself dissatisfied with the circle of friends I surrounded myself with, I would think, "What if there was an application to help me find the best-suited person to be my friend, so I don't have to struggle with compatibility?" Naturally, I would rush to the Play Store and search for my "what if" app. If it existed, I would download it immediately.
Someone close to me noticed this pattern and introduced me to the idea of Software Engineering. He explained how I could channel my eagerness to learn, creativity, and adventurous spirit into a profession where I could turn my ideas into reality. At first, I found it difficult to believe that such a job existed. "How could this be a real career?" I wondered.
The fact that it had "software" in its name further intrigued me(crazy? I know!) Based on my computer science classes, I understood that software was an intangible part of a system, something you couldn't see or touch. That idea fascinated me, and I quickly changed my career aspirations from wanting to become a TV presenter to aspiring to be a software engineer.
I embarked on a B.Sc. degree in Computer Science (currently in my third year) to gain a foundational understanding of computers, applications, and obtain a degree in the field. While I enjoyed the course and performed well academically, I felt that what I was learning was mostly theoretical. I yearned for an opportunity to unleash my creativity.
I can't recall the exact date, but in July 2022, I began my journey of learning HTML and CSS. It was a fun experience, and I spent four months immersed in learning and practicing these languages. However, there was a disappointing twist to my story. You see, until that point in my journey, I had no knowledge of resources or where to start in the tech world. I relied on a book I found at home called "Introduction to Web Development," which only covered HTML and CSS. Little did I know that everything in that book was outdated(we'll get to that in a bit...)
I spent four months learning concepts and techniques that were no longer widely used!! Despite enjoying the process and investing countless nights and free days in building webpages, I felt a sense of incompleteness. I questioned, "How can I bring my 'what if' ideas to life with just HTML and CSS?" While I wasn't particularly skilled in colors and designs, I still enjoyed what I was doing, but it wasn't quite "IT" for me.
Frustrated by my lack of progress, I began researching and discovered that learning JavaScript alongside HTML and CSS was essential. However, finding suitable JavaScript resources proved challenging. Many tutorials made JavaScript appear complex, and the ones that seemed interesting required payment. This further fueled my frustration.
Fast forward to December 2022.
By this time, I had realized that the HTML and CSS I had learned were outdated, which was a painful realization(I told you we'd get back to it...) I had dedicated four months to learning versions of HTML and CSS that had been replaced by more modern standards. However, during this period, my tech vocabulary expanded greatly thanks to endless research on the internet. I also discovered excellent resources to get started in different programming languages.
It was during this search that I stumbled upon Python, and I instantly fell in love with it! I adored the language's syntax and relished everything I learned about it. I could accomplish simple tasks and, most importantly, use my creativity to bring my ideas to life. However, I developed a fear—a fear of learning any language other than Python. I recognized that this was a bad mindset, especially if I wanted to incorporate other languages into my future projects.
I battled this internal struggle until March 1st, 2023 when I began my industrial training program as an intern in an organization. I was assigned a supervisor who patiently listened to my concerns. Based on our discussions, he suggested that I start Harvard CS50x, Harvard University's introductory course to the intellectual enterprises of computer science and the art of programming. This course is designed for both majors and non-majors and caters to those with or without prior programming experience. Taught by David J. Malan, it teaches students how to think algorithmically, and solve problems efficiently, and covers various topics such as abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. The languages covered include C, Python, SQL, JavaScript, CSS, and HTML. The problem sets are inspired by real-world domains, including biology, cryptography, finance, forensics, and gaming. You can find more information about the course here.
I have been on this journey for four months now, and the growth I have experienced is astounding! I no longer fear languages other than Python, and my problem-solving and analytical skills have undergone a transformation I didn't think was possible. Although my progress in the course hasn't been lightning-fast (currently working on the problem set of week four), I am content with the pace I am maintaining. I firmly believe that grasping the basics is crucial.
As I reflect on my journey, I'm uncertain if it's fair to say that it has just begun or if it started when I first learned HTML and CSS. Regardless, one thing is clear: I aspire to become a software engineer. I am driven by the desire to bring my "what if" ideas to life and solve problems, no matter how insignificant they may seem.
If you enjoyed reading about my journey, I invite you to follow me on Twitter for daily updates. And please stay tuned for more updates here as well!
Thank you for taking the time to read my story!