2022 Review: Programming and Self-Discovery

2022 Review: Programming and Self-Discovery

Year 2022 marked a momentous occasion in my career as a programmer, as I experienced a personal and professional growth and realization.

In this introspective blog post, I will reflect upon my developer journey this year and what’s next.

From Data to Web

Specializing into Data

Top 10 Tech Jobs of 2022

Data is still among the hottest careers

Years ago, when I was still a newbie programmer, everyone was and is still discussing data: Data Boom, Data is the New Gold, Data Revolution, etc.

Naturally, my mind told me this, “Hey Shen Yien, you like programming and Math, and Data Science was about programming and Math (Stats), so you must love Data Science”, and looking at the trend, I was convinced, not to mention the prospect of the jobs 🤑

That was the story of how I registered for Asia Pacific University’s Data Analytics course.

Reality vs Expectation

Before registering myself, I took Andrew Ng’s Introduction to Machine Learning (I couldn't find the link again) and CS50ai, and they gave me high expectations about the course.

Machine Learning course by Andrew Ng

However, after two years of learning in the field, I realized that it might be far from expectations. Yes, there are a lot of numbers in it, but there were many aspects that I dislike too:

  1. Data Visualization with Tableau and PowerBI, those are definitely great tools, but I personally prefer visualizing with R or Python, which as far as I know, weren’t the standard in the field

  2. Presentation and Reporting, well, I guess it’s just not a thing everyone likes to do, I personally especially dislike doing PPT slides

  3. Black box, imagine spending hours tuning a parameter to improve the model's accuracy, but you simply can’t explain why is it better

so yeah, I ended up not liking it.

Crack of Dawn

Crack of Dawn

Being in dilemma, I still applied for roles as Data Analyst for my internship. At the same time, I didn’t know what strike me, but I felt like trying to apply for Software Engineering roles.

And… my opportunity came! I received my first reply from SupplyCart, a Malaysia-based procurement software start-up. There was a simple take-home assessment, I did it, and reached the interview phase.

It was during the interview that I realized this is the environment and they are the kind of people I want to work with. Enthusiastic in tech, friendly and down to earth in person 🥰

Not long later, I accepted their internship offer and began my journey in web development.

First Taste of Web Developer

My GitHub skyline during my internship

My GitHub skyline during my internship

Throughout the year 2022, I have done 2 web developer roles. Both are in different fields using different stacks.

Programming for personal projects and established projects are different.

This was the time when I first learned about Linting, CI/CD, Pull Requests and Test Driven Development.

Clearing the Doubt

As I program every day, I eventually cleared my doubt about my career path. I was certain that fullstack developer is what I'm looking for. I enjoyed the process of fixing bugs, building features from requirements, and solving real-world issues.

Over time, I began to take ownership of the project and grew proud of what I built. I have never had the same feeling from doing dashboards, analysis and training models. Plus, it turns out that I was pretty good at what I’m doing 🤩

Within a short time, I was offered a permanent role from my first internship. What more can I look for right? Doing something I’m good at and I’m interested in.

Growth in Mind

In the beginning, I felt unconfident of the implementation (impostor syndrome?), and doubtful towards my codes. I kept on thinking there’ll be better ways of doing it, hence asking more.

However, over time, I became confident that I was implementing the requirements correctly in the right way and shifting the focus gradually from codes to requirements.

I believe that there can be many correct ways to implement the feature correctly, but there’s only one set of requirements that I need to follow. Of course, I guess becoming more familiar with the codebase was another contributing factor.

Shift in Perspective

Viewing things in different pespective

Before my first job, I thought language / framework is everything. I know x languages and y frameworks, which makes me a good programmer.

I was absolutely wrong.

Eventually, I realized that fundamental principles and concepts matter more. It doesn’t matter what the backend framework is, there’s always a controller, and route, OAuth2 works the same everywhere. Likewise, regardless of the frontend framework, there’s always the same component with props, onMounted method, reactive data, etc.

Yes, it’ll still take time to migrate or learn a new framework / language, but give anyone a week or two working on the project, he’ll grasp the syntax quickly.

Especially nowadays with ChatGPT 🤖, it’s pretty easy to implement anything basic like this, what distinguishes us from ChatGPT is the knowledge that we understand, which will not change from language to framework.

ChatGPT implementing a controller class

Who is Senior

Yet another important experience is learning the difference between a senior and a junior developer. Long story short, you’ll know it when you meet one.

Now the long story, from my perspective, I see a senior developer as someone who

  1. knows the entire project well, they might not be familiar with the details of each module, but they are familiar with the large picture

  2. can provide helpful guidance to others

  3. is able to identify risks and issues early before or from code reviews

  4. is reliable

  5. has experience in the whole project lifecycle, from planning to execution

  6. has great domain knowledge

After knowing what a great senior developer looks like, I now aspire to become one!

Continuous Learning

I did not stop learning this year. Throughout the year, I have been picking up new skills mostly related to web development.

Reading

Early this year, I set a goal to read a book a month, and guess what? I did it!

I’ve in fact read a total of 16 books this year, and I think that this would have easily been one of my best decisions this year.

Initially, I wanted to put my focus on programming / UX related books, nonetheless, it quickly expanded into other categories, including those that I won’t read in the past. I think it’s a good thing too, as reading the same genre for too long might get fatiguing, and a mix worked well for me.

Lithium app

I’d usually be reading e-books on my phone, using this great app called Lithium. Of course, the experience wasn’t as good as a physical book, but I can read it anywhere and anytime I wish, which is very convenient.

That was also how I tried to maximize my reading time by utilizing these time segments while I am free (though half of the time I spent on social media / other stuff still).

But yes, reading has really been a big help to my learning this year! I came across a lot of new ideas and knowledge that wouldn’t come to me otherwise.

Programming

This year has really been a bloom in my web development knowledge this year!

As I am progressing in my internships, I’ve learned quite a number of frameworks:

  1. Django

  2. Angular (I know many said it’s dead, but it’s still popular though)

    Rankings of frontend framework over time

    Angular still remains the second most popular among frontend frameworks

  3. Nest.js

  4. tRPC

  5. React Native

Oh, and earlier this year, when I was reading The Pragmatic Programmer, I was inspired to pick up a new programming language, and I ended up picking two of them:

  1. Rust

  2. Golang

Though after a few months, I have lost quite some memory of using them, those were some modern C-style languages and it was fun learning them 🤓

Life Beyond Codes

My life isn’t bound exactly to coding alone, there had been quite a lot of things this year too! (skip ahead if you’re not into this)

University Life

Asia Pacific University

The first half of this year was mostly spent online on my university. Honestly, my second year went on pretty well, and I guess my CGPA of 3.91 was quite decent for the year.

While it was still online, I did meet quite a few cool people from my university too.

The only complaint? Well, the courses at my university were never relevant, but yeah, it’s not a top university, and I guess it’s pretty normal.

Asia Pacific Analytics Club

This was the club I joined at end of year 1. By chance, I became the president. While it was a relatively minor and small club, I did get to host a few events this year.

This is my club profile

This club was the place where I met most of my friends from university, and quite some effort has been put into it. Nevertheless, as I’m going into my senior year, I will retire from the club in March of next year.

First time Champion

(not exactly beyond codes, but yeah)

Honestly, I am not a very hackathon-ish person, but I do feel like joining some when it comes.

So there came a hackathon some time ago, and somehow, my team won! It was quite a standard mobile solution hackathon, with some prototypes, business proposals, pitching and development.

But yeah, it was quite a cruel period because I was having both a part-time and a full-time internship while doing the hackathon. However, the result was super satisfying and it was certainly a fond memory 😎

I’m still very grateful for teaming up with my awesome teammates, @Rui Jun and @Nicole. I wouldn’t have made it without them.

Miscellaneous

Here are some other interesting things that happened this year:

  1. I was offered a full scholarship for the remaining degree, but I rejected it. (probably a story for some other days)

  2. I got into dating, but it didn’t go well and ended within 6 months.

  3. I seem to be getting balder 👩‍🦲

  4. I started blogging more this year (old blogs)

2023 and Beyond

To infinity and beyond

So what’s ahead of me? Honestly, I don’t know. However, the main direction will be toward completing (and acing, hopefully) my degree, broadening my knowledge and skill, as well as seeking an optimal job.

While being confident in my skills, I still feel uncertain about the exact direction. On one end, I love using new technologies like tRPC & Next.js combo, while on the other end, I felt like doing the more traditional Spring / Dotnet development. I really am uncertain.

Nonetheless, my upcoming focus would be learning one or two more frameworks (probably Dotnet and Ruby on Rails) to enrich my backend knowledge. For Frontend, I think I’m doing quite well, especially in React now.

However, as I shifted my focus to development, I think my Leetcoding skill became worse, not exactly sure if it’s gonna be useful in the future, but since it built my foundation, I should probably pick it up a bit too.

Aside from that, I would also like to improve my domain knowledge, primarily in business / finance area, so I’d probably pick up a few books on it.

I guess that’s a wrap! Look forward to my next year, and I hope it’ll be better than this year 😆