Like many web developers, I learned to write software through trial-and-error.
At an early age I was drawn to the web as a platform due to its inherent open nature. My workflow for building something looked like this:
- Find a website which did something similar,
- Copy its source code into my own project and get it working as it originally did,
- Make the necessary modifications to do what I wanted.
I didn’t force myself to read and understand the source code I was copying. My goal was to build things, and I did. I built a forum, a small blogging platform, a photo gallery, games, tools, and even a browser-based version of iTunes called worldTunes.
There’s an incredible feeling from building something that works. There’s an even more incredible feeling from mastering something, but don’t try to get there right away.
When experimenting, let your creative juices flow and don’t require yourself to fully comprehend what you’re doing.
Remember that writing software is an iterative process. Give yourself some time to learn your code before you unveil your project to the world. But don’t let comprehension get in the way of creativity.
Experimenting at HubSpot
As a software developer at HubSpot I experiment often. I commonly start projects by writing code with unclear goals or objectives.
The idea and initial code for HubSpot’s Facewall, one of my open-source projects, came from building the “People” page for the HubSpot development team website. I had been tasked with building the dev team site as the first example of a website built on HubSpot’s new Content Optimization System.
While originally writing a library to render graphs in the Chrome Console, I ended up writing a library to easily style log statements in the console instead. Log quickly became my most popular open-source library, and it was created entirely through experimentation.
What to Do When You’re Stuck
You’ll have to listen to yourself to figure out what to build in the first place. But if you get stuck, here are a few resources to help you get un-stuck:
- CodepenA never-ending list of other people"s code experiments.
- CodropsA web design and development blog with articles and tutorials about the latest web trends, techniques and new possibilities.
- DribbbleA community of web designers, graphic designers, illustrators, icon artists, typographers, logo designers, and other creative people sharing small screenshots of their work, process, and current projects.
So what are you waiting for? Go experiment.