View all blogs

    Welcome to my blog

    Published August 23, 2024 (10 months ago) 5 min read

    If you're new here, hi! I'm Dan, and this is the first of many things I plan to share in the future.

    My First Encounter with Programming

    I've always been fascinated by programming ever since I discovered you could write cool .bat files on Windows to create hundreds of directories. It was just a simple for-loop to create a directory, meant as a prank for the next student using the school computer.

    Fast forward to my first job: I was an intern in the asset management department of a company in the Philippines. Handling Excel files was a daily task, which quickly became tedious. My mentor at the time introduced me to some Excel formulas, which eventually led me to discover VBA scripting. This solidified my decision to pursue a computer engineering degree in college.

    College and Work Life

    Life, however, is not a constant stream of success and luck. Due to financial reasons, I had to drop out of college after three years and find a job.

    Using the programming skills I learned in college, I attempted to break into the tech industry. I got my first job but was laid off after two months. It turns out I wasn't as good as I thought. Imposter syndrome and my financial situation extinguished the passion I once had for programming.

    I ended up in a series of customer service jobs, which weren't terrible but weren't what I wanted. I always felt something was missing. I dreaded going to work each day, and the burnout was so severe that I started dreaming of returning to the tech industry. Interacting with customers, especially irate ones, wasn't for me.

    I started learning programming again and gradually became addicted to it. I found myself excited to go home after a long day's work to sit in front of my laptop and learn to code. Eventually, I found a work-from-home job that gave me more time to study and the opportunity to work as a programmer.

    Second Programming Job

    After countless nights of learning and exploring, my efforts finally paid off. As of this writing, I've been at my current job as a frontend developer for nearly two years. Five months ago, I was promoted to senior frontend developer, which was a great opportunity to learn new things. The communication skills I gained from working in customer service have been invaluable, and despite my negative experiences in that industry, I'm grateful for them.

    What I've Learned So Far

    Over the years, I've learned quite a few programming languages:

    • JavaScript/TypeScript - This is where I'm most proficient. I use it in my day-to-day work.
    • Ruby - My second most proficient language. My first programming job used Ruby on Rails.
    • Lua - When I was learning programming, I was introduced to Neovim, which uses Lua for configuration. I became quite familiar with it.
    • Python - While exploring programming, I got hooked on creating games and simulations. Python offers many libraries for this and is an easy language for beginners.
    • C++/Java/PHP - I'm just familiar with these, and I'd probably need to do a lot of Googling to get things done. I mainly used them in college.
    • HTML/CSS - Essential for frontend development, which is my current role.

    I've also learned two frameworks:

    • Ruby on Rails - The first framework I became familiar with. It's great for quickly getting things done. Its philosophy, "Convention over configuration," guides you to do things in a particular way. It also has a mature ecosystem and a large community, making it easier to find learning resources and solutions to problems.
    • Next.js - One thing I didn't like about Ruby on Rails is the lack of types, as Ruby is a dynamically-typed language. Next.js with TypeScript solves this, which is one of the reasons I love it. I also enjoy working with React and building projects one component at a time. I highly recommend it for beginners.

    Besides the technical skills I've acquired over the years, I've found the following to be just as important in my career:

    • Communication - Technical skills are great, but being able to communicate and listen well goes a long way. After all, humans are social beings.
    • Learning to Set Boundaries - Overwork leads to burnout. Set boundaries at work. Focus on tasks within your scope and responsibility. Strive for a healthy work-life balance.
    • Take Things One at a Time - Having multiple responsibilities can be overwhelming. Know your tasks, prioritize them, and focus on one at a time. Don't try to do everything at once.
    • Develop a Learning Habit - Make a habit of learning something new every day. Knowledge is a valuable resource.

    What's Next?

    I've recently finished creating this personal website using Next.js and Sanity.io, and it was a lot of fun learning more about these technologies. I’ll share a step-by-step process on how I implemented some of its key features in upcoming blogs, so stay tuned!

    I also love reading books, so I might share my thoughts on them as well. As of this writing, I’m currently reading the English translation of Cixin Liu's Death’s End, the third book in his Three-Body Problem Trilogy. It's a fascinating read and one of the most intriguing books I've encountered.

    That's it for now. Ciao!