Tips for the aspiring web developer
Heads up! This post was written in 2012, so it may contain information that is no longer accurate. I keep posts like this around for historical purposes and to prevent link rot, so please keep this in mind as you're reading.
— Cory
So you want to be a web developer...excellent choice! It's a very rewarding position that can be a lot more fun than most other programming jobs. However, before you take the plunge into a career in web development, there are a few things you should probably consider.
A different way of life #
I'm not going to start by telling you that you'll be working in at least five different programming languages on a daily basis. Nor am I going to talk about the rapidly changing technologies and standards that you'll need to keep up with. And I'm not even going to mention the multitude of browser quirks that will keep you up into early hours of the morning. All that will come with experience. My goal is to help you understand the type of career—or perhaps the lifestyle—that you're about to undertake.
As a web developer, the type of organization you work for makes a huge difference in how your career will evolve. Chances are, if you're seriously considering web development as a career, you've already spent some of your own time dabbling in HTML, CSS, JavaScript, and one or more server-side scripting languages. You probably discovered how much fun it can be to make something that millions of people could potentially see. If so, you have passion...and that's a good thing.
It's ok to be passionate #
Passion drives creativity. It's what keeps you working on something for hours on end simply because you want to. It's what eats away at your nights and weekends. It's what sucks the spirit out of your social life. If you don't have that drive, chances are you're not going to enjoy being a web developer.
In my experience, passionate people tend to have their own way of doing things. The countless hours they spend educating themselves outside the realm of academia gives them insight that people without that dedication will never understand. They change their methods as technology evolves, are generally forward-thinking, and appreciate the "laws" of the web. They take their time to do things right. They care about quality, their user's experience, and the final product. Employers don't always like that, but that doesn't mean it's a bad thing.
"Right" is not always right #
Over the past decade, I've had the opportunity to work (as a web developer) for a manufacturing company, an academic institution, numerous web design firms (as a contractor), and for myself. I surround myself as much as possible with individuals who are in the same field as I am. Through many experiences and many discussions, I've come to realize that doing the "right" thing is not always what employers want you to do, particularly when budgets and deadlines are involved.
That's a hard realization to come to when you're passionate about what you do. Maybe you wanted to spend extra time refactoring that code you wrote—it "works", but there's a better way to do it—except the budget doesn't allow for it. Maybe the client needed it out yesterday and you don't have time to finish polishing off the interface you've been working on. Everyone's going to know you're responsible for it, but it's not perfect yet and people may think your work is substandard. These things can be hard to deal with as a developer, so be prepared to sacrifice the quality of your work—or put in extra time off-the-clock—when budgets and timelines don't permit.
Never stop learning #
Where you work also plays a role in how your skills as a web developer evolve. Organizations tend to have their own standards and best practices in place that may or may not be as current as the rest of the world. I've seen design firms who are at least 10 years behind in their development methodologies. Their employees aren't encouraged and, in some cases, aren't permitted to use modern technologies and techniques. While this is obviously terrible for the organization, it's also detrimental to the development of its employees.
If you find yourself in this position at any point in your career, you should talk to your management about the policies that are holding your organization back. If they're too close-minded to consider anything outside their comfort zone, it may be time to find a position elsewhere. When there's no opportunity to learn new things, you'll likely get burned out and fall behind new trends in technology. That makes you less attractive to future employers, and overall, it's really not much fun.
Additionally, it's OK to make mistakes provided you learn from them. Always, always, always learn from your mistakes. And don't be afraid to admit when you screw up. You're human. It will happen. Owning up to things will garner you far more respect and wisdom than placing the blame on someone or something else.
Be prepared to give up sleep #
There have been many, many, many nights where I've watched the sun set, then rise, and then set again. It doesn't happen every day, but it happens. It's something you have to expect as a developer. Whether it's your own product launch or a really long workday that got prolonged because a server crashed, it's going to happen.
Even when I had an eight-to-five job, there were still nights where important things needed to be done. A lot of times that meant working through the night. In fact, many tech positions share this quality, and developers are definitely no exception.
Find a routine #
It's not always possible, but following a routine as often as you can will reduce stress, anxiety, and fatigue. Eat at the right times and try to get enough sleep. If you get caught up in a day from hell that shatters your daily routine (which you will at some point), do what you can to get back on track.
I can't stress this point enough.
Put down your phone when it's bedtime. Wake up when your alarm goes off. If you set aside some time for your significant other or your friends, give yourself that time to recenter. This may seem to contradict some of the points I've made previously, but this type of career isn't just a career—it's a lifestyle. You have to know how to balance things. Realize your limits and know when to keep going, but also know when to stop.
It's not as easy as it sounds. In fact, it's something that I continue to have problems with after many years in the field. However, when I do get back into a routine, I notice a clear difference in my attitude, health, performance, and overall well-being. This is really more of an issue for freelancers and startups, but even the eight-to-fiver can benefit from following a good daily routine.
Exercise your mind and your body #
This is another thing that a lot of web developers who I meet seem to neglect. No matter how many hours you spend doing it, a code marathon isn't going to make your body healthy. And if your body isn't healthy, your mind will suffer.
Make it part of your routine. Spend at least 30 minutes a day doing some kind of exercise. Even if you just walk around outside for 30 minutes, it's better than nothing.
Get in the zone #
Any web developer knows what it's like, and how frustrating it can be when a distraction takes you out of the zone and blows your developmental buzz. Discover what helps you get in the zone and make it happen. Turn on the right type of music (to me, techno does the trick; anything else and I find myself getting caught up in the lyrics). Turn off your email and only check it at scheduled times. Turn off your cell phone (Android and iOS both have awesome do-not-disturb features). Turn off your instant messager.
Find your zen. Become one with your code. And then watch your productivity rage.
Keep your drive #
No matter where you work or who you work for, it's important to keep your drive. A successful developer will put in the extra hours to make an amazing product that impresses his manager and clients. Don't get discouraged by a missed deadline—rectify it and explain how you needed the extra time to finish it properly...then try harder to be punctual next time. Learn new things as much as possible and integrate them into your projects when applicable. This keeps you up to date with technology and makes you more valuable to potential employers. If your organization fears new technology, stand up for what you believe in and encourage them to evolve their policies and practices.
Just remember, the job you have now is just a stepping stone in the river of your career. Don't let anyone pull you into the water and drown out your dreams.