Hi there! For the many people that have been asking me about my programming journey, here is the story. This is a bit of a long read, so go grab a cup of coffee (or the beverage of your choice), sit back, and enjoy the read!
I’m a self-taught programmer that specializes in building websites and web applications using JavaScript technologies. I build full-stack websites and applications using various JavaScript frameworks, including React, NextJS, and Astro, as well as Node/ExpressJS for back-end and API development. Aside from JavaScript, I have also worked with PHP and some of its frameworks - particularly Laravel for full-stack websites using the MVC design pattern. Throughout my journey as a self-taught developer, I have worked as a freelancer for several small businesses, start-ups, agencies, and public school districts.
I first got into programming way back in the late 2000’s, when table-based website layouts were being abandoned in favor of CSS-driven design, and smartphones were just making their early debut, so mobile-responsive design was not yet a thing. My first experience with programming was in a high school web page design course that I enrolled in to fulfill a required art elective credit. I always took an interest in technology, and this course sounded like something that I could possibly enjoy.
The program introduced the basics of HTML and CSS, and touched very little on jQuery. The course focused on building personal profile web pages and passion projects - nothing too fancy or spectacular, but enough to cover the core concepts of web page development. As I progressed through the course, I discovered that I liked programming so much that I started practicing outside of class, and the focus of my college and career training became finding a way to build websites for a living.
My programming skills continued to grow, and I was offered the opportunity to compete in a regional SkillsUSA competition for web page design, in which me and a classmate competed against a few other local school districts to redesign and build out a homepage for a private fitness club. Our team came in third place for the region, and we made the school newspaper.
This publicity got the attention of other departments within my high school, and I was asked by a science teacher to build a brochure page for a newly-formed horticulture program that the school had just introduced. The webpage was nothing fancy - just a static page that provided information, pictures, and links for students, families, and the local community to learn more about the program and how it benefits students and the community. The design was a success, and it received a lot of positive feedback from the school community.
Shortly after this, the teacher that oversaw the school’s drama club and theater program approached me to build a gallery-type site for his department, which would allow him to share information about theater and the drama club, performances, and photo galleries of events and performances. This site was unique, as it was my very first experience building out a WordPress theme - which allowed the teacher and some of the students that helped organize the club to quickly and easily manage content.
Throughout the rest of high school, I continued to work within my school, and within the district to help other teachers and coordinators build out pages for their classes, clubs, and activities. Perhaps the biggest project that I was given the opportunity to work on was when I was invited to work with a middle school information technologies specialist to re-design and build the entire school’s web site.
My first web project outside of my school district was a redesign of a church website for a local pastor that was a customer and personal friend of my father’s. I built his site in WordPress so that he and other church officials could edit content, and this was a huge success for me and led to several other clients throughout the area. I built sites for a local bookstore and a pawn shop, and I became an official web page designer for a publishing company called PublishAmerica, where I built out several websites for newly-published authors.
I do not have screenshots of all of the sites that I built back then, but here are a few screenshots of my earlier web designs. I wish I still had the code for these sites, so that I could look back on where I was then, compared to my more recent projects.
Shortly after high school, I found myself hanging around with the wrong crowd and landed myself in a little bit of legal trouble - which forced me to push off my plan for college while I focused on fulfilling the requirements for my diversion program and making restitution payments. The program also required that I get a “real job”, and sadly there were not a lot of places hiring a developer fresh out of high school with no degree, so I had to put my coding ambitions aside and pursue another career path for a bit.
I started working in a kitchen as a dishwasher, and eventually worked my way up the ladder to a prep cook position, followed by a line cook and then a lead cook. I discovered that I enjoyed cooking - almost as much as I enjoyed programming - and I became obsessed with cooking and bettering my skills in the kitchen.
At the same time that I was starting to take off in my cooking career, my father’s health was on the decline, and I had to relocate to another state to be closer to him and to assist my mother in taking care of him. Cooking was the perfect career for this, as I was able to work evenings and nights and take care of my father during the day, while my mother worked during the day and took care of my father at night.
This would go on for several years, and I would continue to improve my skills in cooking. Eventually, as my father’s health was beginning to improve and I no longer needed to be there to take care of him as much, I started focusing more on my culinary skills. I also began having some minor health issues of my own, which progressed into depression and anxiety issues that often made it unbearable to focus on work or life or anything important.
Working in a kitchen was the perfect distraction from my mental health issues, and in a short period of time I worked my way up the ladder to a Sous Chef position in a casino resort. At the same time, my girlfriend - who I had met in high school and who had stuck with me through my legal issues, my dad’s health, and my health troubles - had started college. Her starting college influenced me to pursue my own dream of going back to school and getting a degree - a dream that I had put off for far too long. While we were both in college, and while I was working as a Sous Chef, we also planned our wedding and got married, and shortly after that relocated again to our current city so that she could continue her education at the University of Arizona to become a teacher.
I took a job at the University of Arizona as a chef, where I assisted another chef in opening up a new dining concept in the newly-built Honors Village. Shortly after starting this position, the COVID-19 pandemic hit the United States, and the university - like many other businesses - shut down in-person operations, and I was furloughed from my job for several months.
Because we were early into the pandemic and most restaurants had very limited operation, in addition to being on essentially an “on-call” position at the University in case things opened back up, I decided not to look for alternate employment, and rather focus on some other projects and passions that I normally don’t have time for. However, the first several weeks of the furlough were not good for me, as being home all the time and stressing about finances only made my anxiety and, in turn, my depression much worse.
Eventually I decided that I wanted to get back into my programming, so I started hitting YouTube and Udemy in late-2020 and brushing up on my skills as a developer. In researching new programming trends, I discovered just how much I enjoy JavaScript, and how cool it was to build full-stack applications using JavaScript in and out of the browser. After some practice to clear the dust and cobwebs off of my programming skills, I began to take on freelance clients again.
From this point forward, I have been putting all of my efforts into programming and working towards finding a career in this field. My programming and technical skills even helped me transition from working in the culinary field into a technology position as a systems coordinator for the second largest school district in my area, where my various skills in JavaScript, PHP, and SQL - along with some other programming knowledge - has helped me to be very successful in this role.
Things I have learned along the way
Along the journey to where I am now, I have learned quite a few things. Hopefully these lessons that I have learned come in handy for anybody else that is aspiring to become a programmer. I personally believe that no matter where you are in life, no matter how old you are, and no matter what your current career is, just about anybody with the passion for programming can succeed.
Done is better than perfect
I am a stickler for details, and I am also my worst critic. These skills often helped me out when designing menus and plating meals, but they often worked against me in programming, as I found myself wasting a lot of time on one part of a project until it was done to my satisfaction, or until I abandoned the concept and started the project over, because I did not like something about it. A big lesson that I learned from this is that in most cases, it is better to get a project completed, get it out there in front of end users, and learn from feedback and improve the project over time. Focus on the MVP - Minimum Viable Product - and add features and fine-tune details over time. By no means does this give an excuse to create shoddy, crappy work, but rather a reminder that perfectionism can stand in the way of delivering results.
Less Is More
Along the same lines as the point above, attempting to iron out every feature and detail, and deliver a product that does everything for everyone typically results in failure. Focus on the most important and most crucial features and functionality needed in your project, get an MVP released, and then go back and add in features and functions as necessary. By following this approach, you are more likely to learn early on if a project is delivering the results you desire, or if a course correction is needed - or if you should just abandon the entire project and start over with a new approach altogether.
This point helped me save a lot of time and effort when I was building out a web application for a 21st Century program within my school district. The district needed a new way to handle documenting student progress and tracking action forms for the program. The application went through a couple of revisions and some features were added and others removed, until a solution that fit the department’s needs was finally reached. Even today, I still find myself adding on features and functions to this application as needs arise and funding and reporting standards change.
Had I focused on making the project absolutely perfect from the get-go, I never would have delivered a solution, and the district would have been forced to abandon my project and find a third-party vendor at a cost that would fulfill their requirements.
Never stop learning and challenging yourself
When I got myself into trouble, and then had to deal with family and personal health issues, I set programming to the side and quit challenging myself to learn new skills. When I decided to get back into my programming several years later, the world of programming had changed enough to where the things I knew previously were outdated and most were obsolete. I had to learn new skills - including responsive web design, new programming languages, and new frameworks.
At first, it was challenging and discouraging to get back into programming, as something that I once was good at and thought I was a natural at seemed so different, and my skills seemed so irrelevant. But I continued to watch tutorials, take courses, and practice what I learned. I started to get good at programming once again, and I was able to re-ignite the passion that I once had for development. Programming once again quickly became something that I enjoyed, and I spent as much time as I could practicing my skills and taking on new freelance projects.
My lesson here is that, no matter how difficult it becomes, as long as you have the passion and you keep at it, you will find success.
Another thing to consider is that in any profession, it is easy to become stagnant and get comfortable with what you are doing. When this happens, you often lose passion for your craft - as I had started to do with my culinary career - and you experience burnout. For me, it is important to keep learning and practicing my programming skills, and to challenge myself with new and unfamiliar projects in order to stay passionate about what I do. These can be freelance projects utilizing skills that I have never used before, or personal projects that allow me to learn new things in order to achieve the results that I am hoping for.
Focus on One Or Two Languages At A Time
Even though it is important to continue to challenge yourself and to add to your skillset as a developer, keep in mind that you also do not want to keep hopping from language to language and framework to framework. You want to focus on one or two programming languages and just a few key frameworks within those languages and learn as much as you can about those skills before adding new languages and frameworks to your skillset.
When it comes to learning how to program, approach it with a quality over quantity mindset. The more you know and understand one or two key languages and frameworks, the more valuable your skills in those key languages and frameworks will be. When you try to become a generalist and learn a little bit about a lot, versus becoming a specialist and learning a lot about a little, the harder it will be for you to find success in that area and prove your value as a programmer. As you learn and master on skill, you can move on to pick up another.
This point comes from my personal experience as a developer. When I first started getting back into programming, I was interested in finding a way that I could start making money from my programming skills. I got online and started Googling in-demand programming languages, and I got on freelance job boards to see what kind of projects were being posted. I ended up deciding to focus on PHP, Laravel, and WordPress - which did lead me to finding a few different jobs, and then I ended up deciding to learn JavaScript - specifically Node/Express and EJS - as the Internet and forums said that JavaScript was the most in-demand programming language for modern websites and applications.
While focusing on both PHP and JavaScript, as well as the different frameworks used to program in both languages, I found that I was spending more time focused on reading documentation and learning how a wider variety of frameworks worked. I wasn’t spending enough time actually building projects - which is where the true learning occurs.
I ended up deciding to shift my focus on JavaScript and React, and when I decided to focus on these skills, and I focused on building projects using this tech stack, I found that my coding skills grew exponentially. I have since added more frameworks (including Astro and Angular) to my skill set, and have even started learning new languages for my current job, but by focusing on just one or two key areas, I was able to build projects and develop my skills and - just as importantly - demonstrate my knowledge in these languages and tools.
Hopefully this story has helped you learn a little bit more about me and my skills as a programmer, as well as the journey that I took to get where I am today. If you made it this far, thanks for reading. If you have any questions or just want to connect and say hi, please follow me on my various social media for tips, news, and inspiration.
Thanks, and as always - Happy Coding!