From History Academia to Programming: My 180° Journey to Software development

From History Academia to Programming: My 180° Journey to Software development

Introduction and Background story

As far as I'd known, I've always had a computer handy at home. I would play Agatha Christie or Cake Mania on my brother's laptop. I tried Mavis Beacon to improve my writing skills. And other times, I experimented with Corel draw feeling like a badass designer.

I got exposed to using Google as early as 11 years old. I remember my brother always encouraged my sister and I to browse songs, actors and information on Google.

However, for some reason I never mustered the courage to research what programming really entailed and that's because I was nursing some preconceptions about programming subconsciously.

First, I didn't deduce the difference between software and hardware in computers. I thought programmers were responsible for repairing laptops and computers which wasn't my forte.

Then, I thought they were those who work at cyber cafes, and handle printing, scanning, laminating, etc. So I didn't focus much on it.

I don't think I can be specific with what I felt about moving from the arts to STEM, but I concluded that I didn't have the smarts to attempt programming.

So, I was exploring every other skill path. I tried my hands on content writing, fiction writing, scriptwriting, copywriting, and even academic writing.

Exploring Writing Paths:

Academic Writing

My journey with academic writing was because I was so frustrated with my course of study that I emailed my lecturer for a viable career path in History and International studies. She introduced me to academic writing, and I published in two international journals and spoke at a few academic conferences.

My goal was thus limited to this:

  1. Finish up my History degree.

  2. Get a masters in history

  3. Proceed to a PhD.

But I wasn't particularly enthusiastic about being in academia. I get more excited about a new feature on WhatsApp or a newly released A.I tool, like Krisp.ai for background sound removal.

Fiction Writing

Then, I considered fiction writing. I eventually got my work published in an international journal, Kalahari review here.

Screenwriting

After my stint with fiction writing, I tried my hands at screenwriting. I'd been a huge fan of movies and TV shows, so it felt like a natural progression. So, I submitted some of my scripts to projects, but nothing came out of it.

I also started a podcast on anchor - "Navigating adulthood as a Nigerian undergraduate." You can check out some episodes here.

Copywriting

It was around this time that I stumbled upon copywriting. I loved the idea of crafting a message that would resonate with someone, persuade them to take action, and then seeing the conversion rates go up.

It was through copywriting that I discovered email marketing. Then I saw that most email marketing jobs weren't looking for "just" a copywriter. They required one with HTML and CSS knowledge. And since I realized they're part of programming, I figured I should finally give programming a shot.

Discovery of HTML and CSS and learning more about programming

I officially started learning programming by watching a computer science introductory video by freecodecamp and taking a Harvard cs50 course on YouTube taught by David Halan in December 2021. Then I also learned from other channels like Colt Steele, and Brad Traversy.

As I learned more about HTML and CSS, I found myself more intrigued by programming as a whole. And since then, I've started learning other languages, starting with JavaScript and related libraries like react.

When I first started learning front-end development, I was excited to discover the mechanisms behind building a website. I learned about the different components, such as the layout, content, and functionality, that all worked together seamlessly to provide a great user experience.

For example, If you've ever visited a web page and it requires you to sign in, with options of either email and password sign in, or other sign options like Google and Apple, it is made possible by Authentication.

This is the process of verifying a user's identity before allowing them to access certain parts of a website. This is important for ensuring security and protecting users' sensitive information. I was excited to learn how to implement the above features.

I also learned about routing, which is the process of determining which page should be displayed based on the user's interaction with the website. This is what enables navigation and allows users to move between different pages or sections of a website.

Additionally, I learned about fetching user data, which involves retrieving information from a server and displaying it on a website. This feature retrieves your information whenever you log into your social media accounts to personalize your user experience.

Another important concept I learned about was lazy loading, which is a technique used to improve website performance by only loading the parts of a page that the user needs at a given time. Noone likes a website that takes too long to load. Hence why this concept is amazing in modern web development.

Learning about these concepts gave me a greater appreciation for the complex inner workings of a website that seems mundane on the surface level.

Working on projects in frontend development

I had this cool experience contributing to a possible Nairaland revamp project where I had to work with a CSS framework (tailwind) and version control system (git) which I had no clue about. But I took on the challenge and learned it, and before I knew it, I became the top contributor to the project on GitHub! It was amazing to see how much I could achieve when I pushed myself out of my comfort zone.

Later on, I got involved with Outreachy, which was such an awesome opportunity to contribute to open-source projects while being mentored. Outreachy is a program that provides internships to people from underrepresented groups in tech, intending to promote diversity and inclusivity in the industry.

Unfortunately, there was a bit of a hitch when the 2022 strike got called off in Nigeria, and that meant ongoing Nigerian students were disqualified from continuing for the October batch.

Current journey: Balancing technical writing and software development

Along the way, I eventually discovered technical writing which has been a great experience so far. I created a blog on Hashnode and started writing articles on concepts I've learned and bugs I've encountered while programming.

Then I decided to take on the Hashnode badges challenge.

First, I had the #2Articles1week challenge which one had to do for 4 consecutive weeks to earn the badge, which I succeeded.

After that, I proceeded with another tougher challenge to earn The crazy blogger badge. This required me to write one article every day for 7 days consecutively.

I decided to focus majorly on bugs I'd experienced while coding for the articles, and I completed the challenge.

I even participated in the 2023 February debugging writeathon on Hashnode. You can read my entry here.

It's been a journey filled with surprises and challenges, but I'm so glad I took the leap and followed my curiosity. Just last month, I got an offer for a 6-month software developer internship role. And I'm looking forward to learning and contributing in my new role.

Advice and final thoughts

Honestly, if you had told me I'd be a software developer 2 years ago, I definitely wouldn't believe you. I vehemently disagreed with learning programming in one of the episodes on my podcast.

So, if you're wondering if you have what it takes to learn programming or tech in general, my advice to you is to take on the challenge.

One thing I'll emphasize is to seek transferable skills from your previous roles and interests to find the right tech niche to pursue.

For instance, learning copywriting not only helped me to develop a strong understanding of user behavior and psychology but also allowed me to understand the importance of creating compelling and engaging content for users.

As a front-end developer, I've been able to incorporate these skills into my work, ensuring that the websites and applications I create are both functional and user-friendly. I now approach each project from the perspective of the end-user, keeping in mind their needs, desires, and pain points. This has allowed me to implement designs that are not only visually appealing but also intuitive and easy to use.

Screenwriting also played a key role. Even though I didn't achieve much success in terms of getting my script gigs, I realized that screenwriting had helped me become a better software developer.

Screenwriting taught me the importance of storytelling, character development, and creating compelling narratives. As a front-end developer, I use these skills to create user experiences that are intuitive, engaging, and memorable.

More so, academic writing was instrumental in helping me improve my technical writing skills. In academic writing, you have to be precise, clear, and articulate in presenting your ideas and arguments. You also need to research other works on your intended topics and come to a comprehensive thesis.

This has taught me to be more deliberate and thoughtful in my writing. In technical writing, it is essential to communicate complex information in a way that's easy to understand for non-technical readers. Academic writing has given me the ability to break down complicated concepts into simpler language, making it easier for me to communicate technical information better.

So, you never know where your current journey may be leading you, and how the skills you've learned can be applied in unexpected ways. For me, copywriting, academic writing and screenwriting were steps in a series of twists and turns before transitioning into tech.

Wishing you the best of luck.