When I created my first website back in 2012, it was a struggle, to say the least. I had no idea what I was doing, and must have spent more time trying to create that simple forum website than I do on a lot of my projects currently. Since then, I have learned a lot. I’ve learned about what works and what doesn’t, how to interact with clients, the amazing tools and resources that are out there (many of which are open-source), and lessons that I am constantly reminding myself of.

Aside from serving as a place for my own thoughts and reminders, I hope that this first blog post and others down the road serve as a note about what it means to be a web developer and provide some valuable lessons learned, resources, tools, and thoughts along the way. Without further ado, here are some personal themes that I have come to embrace in the web development universe.

The Landscape is Constantly Changing…So You Will Always Be Learning

Web technologies are always shifting. Every day there seems to be a new framework, library, or technology that is better than the last, offering a new piece of functionality or increased performance. With all of these changes, it becomes difficult to keep up. As a web developer, you must place yourself in a constant state of learning. You must be an early adopter of these technologies, get your hands dirty, and dive in. Being at the forefront of the diffusion of innovations leads to new knowledge and opportunities- and I can’t stress it enough.

You might feel overwhelmed with all of the different tools, technologies, and methods that exist for web development, and you won’t be able to learn everything. Well, at least not when starting out, which brings me to my next point.

There Are Many Ways To Accomplish the Same Task

Because there are so many tools, libraries, and frameworks out there, you will start to see how much overlap there is. That is, many of these technologies accomplish the same tasks, albeit perhaps in slightly different ways. This can make evaluating the alternatives a tough decision. Should you use React or Angular? Bootstrap or Foundation? Grunt or Gulp? The alternatives go on and on.

I realize that depending on the specifics of a project, it might become obvious why one choice is better than the next. But as a novice web developer, I found the research and choices to be overwhelming, and I often wished I had just jumped in, gotten my hands dirty with a few of the most promising options, and make a decision from there. After all, the best web development tools are subjective, and everyone has their own opinion.

Chances Are…Someone’s Done It Before

When I first started developing websites, I created everything from scratch. Often writing code letter by letter, line by line. I may have spent more time writing actual code then I did understanding concepts and best practices (which are much more valuable in the long run). What I have learned since then, is that it pays to do your research and discover what’s out there.

The open-source community is wonderful. Code snippets from GitHub, Codepen, and StackOverflow have saved me hundreds of hours of development. It is worth noting that using these open-source code snippets without fully understanding them, is another pitfall best avoided. It will come back to bite you when your code is broken and you can’t figure out why.

But to my point…do your research on what’s out there, ask your peers how they solved a similar problem, and discover awesome resources that others have already created.

Contribute to the Open-Source Community

Speaking of awesome things that others have created, it is important that you contribute to the open-source community as well. This doesn’t mean that you have to write a library, or publish code (although it’s great if you do). There are an increasingly number of ways to contribute - answering questions on StackOverflow, logging requests on Github, or sharing great resources with others on a personal blog or website.

Contributing to the open-source community provides tremendous value to you as well. By becoming an active member of the web development community, you build relationships, share dialogue with others, and gain a tremendous amount of knowledge. Not to mention that it helps you practice your coding and receive feedback.

Code Can Always Be Improved

There’s no such thing as perfect code. It doesn’t exist, especially with the ever-changing landscape of web development. Not to mention how does one even define perfect? Is it optimization? Readability? A combination of these factors and others? It’s all subjective, really. Which is why getting feedback on your code from others is important. Everyone has their own style and methods to web development, and it’s invaluable to get others’ perspectives.

I can’t tell you how many times I have looked at code I wrote months ago and say to myself, “What was I thinking?” And then I go back and make some changes to improve it. I also can’t tell you how many times I have done that same exact thing just weeks, or even days after writing a code block. You will constantly be making changes to your code, finding better ways to accomplish the same functionality. As you continue to learn, it’s important to keep this in mind, and to revisit code you have written to think about it under a new light. It’s an iterative process, that is always working towards perfection, well, at least your version of it.

Done is Better Than Perfect

You can spend hours writing a piece of code that should take you minutes. In fact, you could continue to revisit and revise that same piece of code over and over. As web developers, we are constantly under deadlines. Deadlines for clients, deadlines for releases, deadlines for personal projects. Therefore, it is important to remain focused on the big picture and not get tangled down in the weeds.

Often times, you will find that done is better than perfect. This doesn’t mean that you shouldn’t strive to achieve perfection and develop great websites applications, but rather that at certain times you will have to choose where to focus your time and efforts. With that being said, I hardly consider this post perfect, and there is so much more I want to add to it. But that will come later. For now I am done, and it is off to other projects!

If you’ve made it this far, thanks for reading my first blog post! Check out my more technical versions of things I wished I had known when starting my web development career.

Sam Rubin

A full stack software engineer located in Arlington, Virginia

smrubin sammrubin