Learning to code after a Masters in CS

Learning to code after a Masters in CS

My coding journey

The concept of coding seemed so complex, and even in this seemingly complex form, I had a deep yearning to learn it and simplify it for myself. It is, after all, a subject matter that is taught, so I could learn and eventually master it, and build tools that could revolutionize some aspect of society….right?

My earliest encounter with programming

When I took a compulsory course in C programming during my 2nd year of university as an undergrad Electronic Information Engineering major (2013), this thought came back to me again, only this time…it was in Mandarin. Prior to this moment, I had no interest in learning to code. There were so many forms and depths to circuit design and calculus, I was just trying to keep up with!

As our class took practical labs for this C programming course, I can still remember the feeling I had. Initially, most of us didn't understand the concepts, but as the course progressed, I noticed the excitement that would come with executing a simple program, and the realization that this is how software is built and I too could create something this way, sparked my interest and curiosity to learn more.

It wasn't until I earned my Master's in Computer Science in 2019 that my coding journey really began. As with most people who want to learn how to code, I did a lot of research on where to start, which tech stack to learn first based on my career goals, etc. In addition to tons of online information, there are just as many resources out there to get started with coding. My specialization in Digital Media and Human-Computer Interaction and my enjoyment of the courses led me to want to enhance my technical knowledge based on the potential use of my programming skills in this field. With this in mind, my focus turned to learning front-end and server-side technologies first.

Coding journey year one (2020-2021)

Through freeCodeCamp and online tutorials, I dedicated the first year to learning HTML5/CSS, JavaScript, and React.js. I used the learn-by-building method since I wasn't sure which one would work best at first. In doing so, I was able to learn the fundamentals of the above technologies while building a number of web-based applications. Additionally, I learned how to use tools such as BitBucket, GitHub, and Git.

The above image is an illustration of some of the tools in my stack.

Coding journey year two (2022)

A course I took in early 2022 taught by Dr. Angela Yu, called the Web Development Bootcamp, provided me with additional knowledge of Fullstack development and back-end tools such as Firebase, MySQL, Express, and MongoDB. All the while applying for internships and junior developer positions. I learned what companies were using as their tech stack and also got a chance to experience what kinds of projects they worked on through the coding challenges they would assign to me prior to or after an initial interview.

Note ✍🏼: Having a GitHub portfolio is a great way to showcase your unique projects to the hiring team when applying for developer roles.

If I hadn't interviewed with so many companies, I wouldn't have been familiar with some of these products and the technologies behind them. The preparation for interviews involves researching, learning about the company, the product, and the community, but even when my interviews didn't result in an offer, I was still grateful for the opportunity to learn more about another product and the tools used to make it a leader in its niche.

I found the interviewing process to be tough, especially as a recent graduate just starting to build on my coding skills and the realization that the application pool might possibly be filled with candidates who had a few more years of developer experience or a foundation in software development acquired from a bachelor's in Computer Science or a similar degree motivated me to keep honing my coding skills.

In the process of interviewing with a hiring manager for a junior developer role, I learned about the n8n tool. A tool that I used as part of an open-source project for a Decentralized Autonomous Organization (DAO), whose team I met at a hackathon. In my interview for a junior developer role at Campunda, I learned about Business Process Models and Notations (BPMN) and their real-world applications. I learned a lot about fascinating tools and concepts that not only expanded my awareness but also showed me how programming can be used in many different industries to solve and automate solutions.

As I became more knowledgeable about programming and was more involved in the developer community, the more I realized that almost every developer I encountered and who shared their stories had a different journey into software engineering and development. Some of these developers are self-taught (perhaps from an industry other than tech) while others acquired their training from coding bootcamps and built on their knowledge to establish themselves as experts in their field. Since many programmers have learned how to code this way, my personal challenge in this domain has been to figure out how I could become a professional self-taught programmer and gain a full-time position in software development/engineering where I could apply those skills and acquire new ones as well.

In addition to participating in a few virtual hackathons, I also acquired internships that helped me develop my coding skills in a professional environment. Hackathons are an awesome way to demonstrate one's skills while having a blast developing a prototype over a 48-hour weekend of little sleep (that might turn into a real-world product). At the end of the weekend, the project is submitted for review, and the winners' results are announced. Having your team's project win is rewarding, however, I also think that just participating and contributing one's skills in a challenge of this type is equally rewarding, because you get to learn new skills, add to the ones you already have, and network with and learn from designers and developers from all around the world.

The journey continues…

It's about 2 weeks until the dawn of 2023... what's my progression to becoming a well-rounded coder and developer like? Well, I'm dedicated to mastering the fundamentals of the programming languages and frameworks I've been learning, as well as advancing my knowledge in one high-level programming language.

Takeway (๑ᵔ⤙ᵔ๑): Every developer/engineer's path to becoming an advanced programmer looks different. Tech stacks are continuously evolving - what's been most helpful starting out has simply been picking a stack that interests me and choosing to be committed to developing those skills long-term.

Computer Science is a broad area with numerous subdomains, and programming is simply one of its many facets, which is why I enjoy studying it. Maybe someday I'll combine my education in Electronics Information Engineering ⏚📟, and Computer Science 👨🏾‍💻 (with my one-and-a-half years studying for a bachelor's degree in Microbiology 🔬🧪 which I refer to as my "gap year" after high school), to work on a project that might advance a scientific subject.

Thank you for reading. Happy coding!