Always be learning and teaching

,

Lately I've been thinking about all the people I have learned from and learned with in my career as a web designer, php developer, front-end developer, “full-stack” developer, WordPress developer, web developer, and business owner. My current skillset is a large helping of self-taught knowledge mixed with big scoops of pro-tips from previous coworkers, bosses, and friendly developers found in chat rooms.

The early days

I remember one of my first encounters with another developer in real life and the great new technique they showed me. At the ripe age of 17, I was checking out a trade show taking place at the curling rink in my hometown and a web designer had set up an exhibit to show off his portfolio. During our conversation he explained to me how iframes could be used to to show thumbnails and make it so the thumbnail could be clicked to show the full image, like this example below:

Today this can be done simply with JavaScript, but before the turn of the millennium this blew my mind. I had made some websites that were basically glorified image galleries and this great tip made my sites so much cooler, at least in my opinion.

Collaborations

In the early 2000's, I was a webmaster (or co-founder) of a couple online video game and music communities. A few other developers and I were building these community sites from scratch using good old PHP and MySQL. We had news, forums, interviews, reviews, and an almost realtime chat box. It was great to work together with other developers like Douglas Gilormo and Jonathan Drake to learn things from and bounce ideas off. Those projects were labours of love; we made no money and I spent hundreds of hours working on those community sites for the pure joy of learning new things and building something I could be proud of. Having other developers who would answer any questions (no matter how dumb) was really instrumental to my growth as a programmer early on. If you are just starting your web development career I suggest committing some time to an open source project or an online community that has other developers you can learn from, grow with, and use your skills to contribute to something meaningful.

Developers in the same room!

In January 2010, I took my first full-time developer position and would commute daily to the office of Smack Digital(then WebsiteCM). It was great to have another developer an arms length away. Working in close proximity to others allowed me to get answers to problems I couldn’t solve, discuss the best way to build a new feature, and insure I was providing customers with the right answer. Over the next few years I moved to a couple different agencies but continued to learn more about PHP, SEO, JavaScript, server management, MySQL, SCORM elearning, ecommerce, and design from my coworkers and bosses.

At my last full-time agency position we had a “developer's room” where there were 7 of us developers and a development team project manager all working together on multiple projects at a time. Being in the same room as that many other skilled developers is definitely something I miss about freelancing from home, but we still hang out daily in a Skype chat room and discuss development, business, and what is going on in our lives.

Code reviews, mentoring, and watching someone else mess with your code

Most of my life as a programmer I would write some code and then push it live using FTP or through a GIT deployment process without anyone else making sure my code was error free, clean, well-documented, or even made sense. Code reviews and collaboration do add a layer of extra work to the processes that a lot of companies don’t have the budget for, but I have come to appreciate their usefulness. Over the last couple years I have asked other developers, more skilled than I, to review my code and offer their advice and critique. I also have worked as a subcontractor on some projects where the company I am working for has great developers who performed code reviews and even cleaned up or improved upon my work.

At first, it was a little awkward to have someone looking at my code and even humbling to have them improve, clean up, or fix my work. My goal as a developer should be to deliver a great product and quality code, so my reservations about code reviews and collaboration had to be set aside.

When I can’t find answers on google, stackoverflow, or the respective documentation sites I turn to other developers. Getting some one-on-one time with another developer to figure something out or make sure my planned functionality made sense has been a real lifesaver. With video calls and screensharing tools it is very easy to get someone familiar with your code and tap into their expertise to improve your work. If you don’t already have personal connections with developers who can work with you I would strongly recommend looking at https://www.codementor.io/ or https://jason.pureconcepts.net/2016/04/mentoring-pair-programming-development-coaching/.•

Learning from clients

Another wonderful source of growth for me has been my clients and employers; most of them run successful businesses and as a business owner I want to soak up any knowledge, processes, and ideas I can from them. I have seen how these companies treat their clients and their employees. I have seen how these clients run their projects, handle scope changes, market themselves, and make a profit. Pay attention to your clients and take note of things you see that can improve how you do business. I have learned a lot from how my clients like Cam Vacek(Hay-Wire), Justin Sainton(Zao Web), Curtis McHale(sfn design), and Christopher Harris(Faith Growth) manage and grow their businesses.

Passing it on

As long as I have been learning design and web skills, it has been my pleasure to pass those skills along to others as opportunity arises. Sharing your knowledge with others doesn’t just benefit them, I believe it can help you have a better understanding of the topic as you teach it. We all know that it doesn’t make business sense for you to volunteer all your time to teaching others but find a healthy balance of knowledge input and output from other people. Teaching others can be done in many ways: blog posts, answering questions in a chat room or on stackoverflow, one-on-one mentoring with other developers, or answering questions from small business entrepreneurs starting out who know nothing about marketing, the web, ecommerce, or social media. Find somewhere to share your valuable insights or skills and don’t just be a taker.

Move forward

No matter what industry or niche you are in right now there is likely great opportunities to learn from others and share what you already know. Surround yourself with awesome people and don’t miss out on opportunities to learn, improve, and grow.