I have no computer science background, coding wasn't “cool” growing up, and I never liked math. If that sounds like you and you're here because you're trying to learn to
code, then my failures might help you!
The first time I was introduced to coding was in Vancouver in the early 2000s, I was about 20 years old. My friend, Pastor Jeff, showed me a website he was building for a local high school basketball team. I wasn't studying at the time and he pitched it as a great career path for me. He told me they paid him 5K for this site and then offered to teach me. I said yes! Then he showed me the
code. It looked too much like math and I immediately said no. I hate math.
In 2006, while living and studying in the Philippines, my aunt needed a website for her flower shop and I asked for the opportunity to do it. I said I'd learn how to do it in exchange for a laptop upfront, she agreed and I hacked together a website using a “How To Use Dreamweaver for Dummies” book and a lot of Coffee for Peace(still Peace Cafe at the time). I chose a template that would work for what the flower shop required. Then I proceeded to delete things in the source code to see if it affected the area I wanted to edit. This method eventually produced a website. My sister helped me purchase a domain and my father taught me to how to deploy my local files to the server using an FTP. It was brilliant. The site had 50+ products, 5 pages, and all the info needed for clients to order flowers.
It took over 6 months before I learned that I wasn't a web developer. I was living in Shanghai in 2007. My cousin's friend Scott owned a commercial photography studio in Shanghai, and he agreed to take me on as an assistant. A few weeks on — after he affirmed my ability to handle cleaning toilets, making coffee, and assisting him on shoots — he decided to offer me the job of updating their website. If I could make the changes he wanted, he'd give me a bonus instead of paying their developer. Confident in my skills I agreed to do the job before he agreed to let me. He invited me over to his iMac and asked to see the website I built for my aunt — brilliant I thought — I pulled it up in the browser without hesitation.
It begins loading. . .after a few seconds he says,
Yeaaaah it's shit mate. I'm sorry. Oh there, it loaded. Yep. It's not good. It's Impressive that you were able to put this all together — and maybe this is okay for your aunt's flower shop, but it doesn't cut it here in Shanghai.
For the next 30 minutes, he rips into everything wrong with the design — the colors, typography, spacing, branding — everything. It hurt — but he was right. He then showed me an example of what he wanted in terms of design and functionality — he wanted a site that looked clean, modern, and fast.
I reflected on his criticism and looked at my website through the lens he gave me. I couldn't un-see it. But I had no idea why it was slow or how to fix the design elements. Because I didn't know what HTML or CSS was.
A few months later, my cousin introduces me to another friend, a serial entrepreneur from Vancouver who owned a digital agency. A few sentences into our introductions I mention web development and Dreamweaver and then he makes a comment about HTML and CSS and I pause, he recognizes the look on my face and says,
He hands me his card, RainCity Studios, but I never follow up. I do however go to w3schools.com to and learn HTML and CSS. Once I passed all the practice exams I started to wonder how I built a website at all. I pulled up my aunt's site and I take a look at the source code. My workaround was elegantly stupid, I used Jpegs. I used images to compensate for not knowing how to create layouts. The entire contact page was made up of images. And that wasn't all, images of text were used as headers because I didn't know how to add a new font. The website I built was brilliantly slow.
This failure caused me to doubt myself and I stopped coding anything for four years. But then I found myself with a lot of free time when I first started working at Coffee for Peace. I used that time to study coding at Team Tree House — a coding tutorial platform. I chose the Web Developer Learning Path because the final project was a blog. The technologies I used while following along with the tutorial were:
After completing the project as instructed, I felt like a web developer again. I showed it to my parents and pitched the idea to update their WordPress site to a modern, clean, and fast web application! They loved it, especially the custom icons I mocked up in Photoshop. When I was done, I looked at the site I designed and built — and I thought this is it, I did it. I pushed it to production without even asking.
The next day my Ama (My Dad) — our main content creator and the person who built the WordPress site I replaced without asking — called me to a meeting and asked me about his blog posts. I showed him how to create a new blog post in Drupal all nonchalant-like, thinking I was teaching him something. Then he says,
Yes, I know we have the ability to create new posts. But we need all of our past blog posts as well. It's the lifeline of our small social enterprise.
That night my dad updates the WordPress site with a fast and responsive theme. Taking inspiration from the design choices I made, he deploys it and replaces mine, then calls me for a meeting the next day and says,
I like what you designed. I added your ideas to our site. But I had to replace what you made with WordPress. This works for us. If your technical solution can't do better or preserve the content, then please don't change the framework. Instead, learn to use it.
This hurt. But he was right. Technical solutions ought to solve business challenges with little or no friction to the current workflow. If I couldn't build something 10X better than what was there, then why change it?
My past failures made me stop coding for four years. Believing I wasn't smart enough to learn how to code professionally, I gave up. Then something happened — an event in my life — that pushed me away from my comfort zone and into a place where I felt I had to do this. I had to learn to code and be hired as a developer. I began looking for a position I could qualify for in tech and soon found work with a Y Combinator-backed education platform called Jumpcut. I was hired as a Customer Service Champion, but they gave me the opportunity I wanted by allowing me to do tasks for the engineering department. It was an eye-opening experience, my first task was to read the requirements of the engineering positions we had open and to source candidates that qualified. It was a surreal experience to be able to work with our COO and CTO directly during the hiring process. Being able to engage with the candidates as I guided them through each stage of the hiring process was a great introduction to engineering. It didn't help my confidence — but it was awesome. I was allowed to sit in and listen to how an engineering team communicates with each other and the rest of the departments. I was overwhelmed. This was a huge step up from following instructions and building a blog. I didn't understand anything.
I began to panic. My wife and I were in our first year of marriage, we were expecting a baby, and here I was overreaching. I should have just stayed in my lane and kept the fact that I was interested in coding to myself. My anxiety started affecting my work, so I called the only friend I had in tech, Kim. She was a Development Practices Coach at Tableau at the time (now she's with a cool gaming company as a Delivery Lead). I asked her what she thought about my decision to switch careers. After listening and hearing me call myself dumb a few times, she gave me a lecture on imposter syndrome, then addressed all my concerns one by one. She helped me build a framework of self-confidence and then reminded me why we were friends. She finished our talk by saying,
Seeking Education in skills you can apply professionally is always a good idea. But timing is equally important.
After my time with Jumpcut, I spent a lot of time preparing myself to be ready. But I never let myself get there. That's part of the reason for this blog.
I need a place to write about what I'm learning to see if I'm understanding it. And I need a space to start sharing my thought process when I begin a project. This way I can have a blog series attached to projects I want to get done. If I don't finish the project, I'll have a bunch of unfinished stories lying around. And finally, I need a place to list the skills and technologies I have experience with.
This post is my first post, an intro of sorts — but it's the third version of it. And locally it's like the 50th version. I forgot how therapeutic writing could be — I've been at this every day for a week now — shutting the world out in the process. In the first two iterations, I wasn't sure what my goals were — I was on the fence between looking for work or starting a business. But the more I wrote the more honest it became, and then a conversation with my mentor began to surface. The last time we chatted she asked me when I'd start working on my portfolio projects — probably because she wanted to review it to see how I code — but I told her I'd get to it only after I set up my freelance digital agency. Puzzled, she began asking me about that. I told her it was something to help me earn income as I continued to learn new skills and build my portfolio. She listened supportively as I explained my plan, then said,
I think you're doing much, that is if your goal is to become a Full Stack Developer.
Then she offered to help me with my projects, but I declined. She then began sharing what she was learning. And this is why I think she's an awesome mentor — even if this wasn't calculated — she intuitively helped me gain clarity and discernment by asking me questions about my plan, then sharing her experiences with me. She never told me what to do or not to do, but her actions (listening, offering to help, sharing experiences) allowed me to come to my conclusions.
I recognize now that I have legitimate experiences that have contributed to my self-doubt and that I've been trying to get prepared for every possible outcome to avoid feeling like a failed developer again. I've banished myself to tutorial hell because if I fail here — I can always get a fresh start by moving onto another tutorial or learning a new tech stack (Python, Django, JS, React, Vue, React Native, Flutter, Dart, Angular — to name a few). But to trick me into feeling competent I would anchor my feelings to the growth of my freelance digital agency.
But this was a cop-out.
It gave me an illusion of working towards a goal but in reality, I was avoiding one. The goal was to learn to code and get hired as a developer. Starting a freelance digital agency is a copout to never having to put me out there as a Full Stack Developer. Because if I fail as a freelance digital agency it's not me, but the business that fails. All that does to me is tell me that I'm not prepared. Then I'll spend more time getting prepared!
I've been stuck in a loop.
I've trapped myself in this in-between world where I'm going in circles studying, working, and freelancing. I'm constantly context-switching between professions and industries that no tasks ever gets the attention it needs. Sometimes I'm studying to code, sometimes I'm learning something for a client (WordPress, Webflow, Shopify, WooCommerce, Mindbody, Squareup, Weebly, Ad Accounts — to name a few), and sometimes I'm working on graphic designs. I was failing fast and often but for what? The end goal was unclear.
The only time I've stopped this loop is now. And I had to ghost everyone to it. It was important for me to process what my goals were, and how I ended up in this loop. And now that I know, it's obvious that I'm doing too much.
Imposter Syndrome isn't something we can just shut off. But recognizing it and talking about it helps you plan to push past it. I've been talking to my wife a lot while writing this, and together we've made decisions that will help us both grow in 2022. We've made goals that center around what we value:
- Spending time with our kids and family
- Visiting the beach or mountains
- Finding new things to eat
By starting there it was easy for us to give up the projects that took too much away from what we value and focus on the things we wanted. Now that the destination was clear, I wanted to define my why for clarity and affirmation.
Why a Full Stack Developer?
Obviously, it's to build something to make the world a better place, but after that, why?
I want to pursue coding because it's fun. I love learning how the internet and technology work. Technology fascinates me and learning to code as a Full Stack Developer gives me the tools and framework I need to start understanding how the internet of things works under the hood. Knowing that makes me feel like I know more about how the world works, and that's priceless.
I'm looking forward to 2022, I don't expect it to be easy. I expect it to be hard. I expect to feel uncertainty. And I expect to feel a lot of vulnerability. And yes, it's terrifying — but I'm building courage by sharing what I write here — on my little corner of the internet — with the rest of the world. I'm excited and grateful that because I took the first step and reached out to others for help, I now have a clear destination and guide to help get me there. I know it's not the New Year yet, but here's to 2022.