LEGOs to Functional Programming
Building things has always been a part of who I am. It started when I was young. I was a LEGO fanatic (still am, not sure that ever really goes away.) I had lots of sets, but more importantly, I had a big tub of random LEGOs.
Whenever I received a new LEGO set, I would start by building what was depicted on the box. For a short while that would be enough. Once I grew tired of the intended design, it was broken down and put into the big tub of random LEGOs.
From that point on, who knows what those pieces became. Cars, trucks, planes, buildings, a LEGO remote control car designed to carry a wireless camera. Just random creations of my own design. Not great design by any means, but they were mine. At one point, I built a functioning elevator for my pet hamster. (That’s a story for another time though.) Building, and more importantly, designing things, was my thing.
Nashville and Odd Jobs
I was born and raised in Springfield, MA. But if you fast forward to my early twenties, I had moved to Nashville, TN, gotten married, and had no idea what I wanted to do with my life. So, like most people in their twenties that didn’t go to college and have no idea what they want to do with their life, I picked up a few random jobs.
I mixed paint at Sherwin-Williams, sold car electronics for a local company, and also became, the classic, pizza delivery guy. There were many others too, none of them glamorous, but they paid the bills. During this time, the jobs I held were never full-time. I found that a few part-time jobs allowed me to earn a little more and have some free time to try other things on the side. And in that free time is where I learned how to build a website and more importantly, that I liked building websites.
I met a guy who had some ideas for different businesses. He was (and still is) a fast-paced, high-energy person. One of his ideas was to create a web-based, video training platform for business leaders. I liked the concept and we started a partnership. I was able to build the website and membership platform and he was responsible for basically everything else. Networking, product guidance, sales, all of the business stuff I knew nothing about yet.
It was great. I started reviewing website platforms and finally settled on Joomla. Joomla is a great platform. It’s built in PHP and has a very healthy third-party developer ecosystem. Wordpress was available at the time too, but it just wasn’t as big as it is now. So, once I settled on Joomla, the real fun began. I decided the best way to get started was to start from the bottom and work my way up … so I setup my first server.
Kind of a trivial thing nowadays, but for me at that time, it was like trying to build a house, without blueprints, in the dark. Thanks to Google and Stack Overflow, I made it through. I had a server, MySQL and Joomla up and running. Now it was time to build the actual product/website.
It took some time to get the hang of Joomla and its quirks. I had a great mentor when I first got started who helped me avoid a lot of the common ‘gotchas’ and steered me down the path of least resistance. His advice and time were invaluable. Don’t get me wrong, late nights of studying and routinely breaking the website were common, but without his guidance, I’m not sure how far I would have made it before giving up.
I think I like this…
Although the business my buddy and I started didn’t pan out, I was on a different career path now. I left my day jobs to start that company, and despite all of the stress and late nights, I didn’t want to go back. Time to hustle.
I started learning Wordpress and began doing basic websites for clients. Nothing fancy, really. I was basically a general contractor for websites. I would do what I could myself and farm the rest out. I was also blessed to be introduced to (and eventually contracted by) a non-profit here in the Nashville area. The non-profit job helped pay the bills while I worked on moving from a Web Developer to a Programmer. All from the comfort of my own home office. :)
Along the way I met a sales guy who was able to sell those Wordpress sites. We formed a partnership and started a classic ‘web dev’ company. At first, we just did websites. That quickly changed to offering design, SEO, social media marketing, and general business consulting services. This new business isn’t really the point of this post, but I bring it up because along with the non-profit job, it provided me with opportunities to meet people much smarter than me in this space, and gave me the projects to implement all of the new things I was learning.
Honestly, the biggest driving factor in my transition from a Wordpress and Joomla guy to a full on programmer was my clients. Not all of them, but some of them were idea people… dreamers. Once we showed them what was possible with a new website and third party tools, their minds would begin racing. Answering questions like, ‘Is it possible…’ and ‘How cool would it be if…’ was and still is pretty routine. Their ideas coupled with my want to build and learn new things was the driving motivator in learning how to code.
PHP was my first language. I had been staring at it for years in Joomla and Wordpress. Only making surface level changes and at best, copying lines from the internet and pasting them into my files. Through the non-profit, I met a guy that, for some reason, found it in his heart to teach me PHP. Even more, he taught me how to think about problems and how to break them down into their components. That’s the real skill. Problem solving.
I think I got it
I hope what you get from this is that anyone can learn to program. There was no mention of college, no structured higher education. Opportunity, both given and created, hard work/studying, and the willingness to fail and get back up. It’s definitely not a job for everyone, but if you’re interested in it, even a little, make sure you stick with it long enough to really give it a shot. It will take months before you even start to feel a little comfortable writing your own code.
Please understand, this is a lifetime pursuit. When I say I understand a language or a concept. That usually means I know enough to be dangerous with it. Every time I solve a new problem, I learn something new. It’s a never- ending process.
Study the concepts, the paradigms. They will teach you how to think about solving problems. And that’s really what your greatest skill as a programmer is. Not the languages you know, but how you approach solving new problems.
Thanks for reading!