When people ask me what I do, I tell them that I am a "Web Developer". It's more accurate than "Web Designer" and much less narcissistic than "Webmaster." Even still, people have a hard time grasping what I do every day at my job. I'm sure if you asked 3 very important people in my life -- my girlfriend, mother, and best friend -- what I did at work every day, you'd get 3 different answers. So for their sake (and yours), I've decided to let you in on a little bit of the web developer culture: my background, the backgrounds of other developers I've known, and what we all do every day at work every day.
First a little bit about my web development background. I hopped on the Internet (read: AOL) in 1996. I was hooked; using the 'net became a daily occurrence for me. Yet the thought of actually creating content for the web didn't happen until about 1998 when my Mom tasked me with designing the website for her non-profit organization. Determined, I taught myself FrontPage and created what I still consider the ugliest site ever, ever.
From there I taught myself Photoshop and Dreamweaver, and eventually was comfortable designing just about any website you could think of (with tables, obviously). I did design exclusively in those days working with a very good friend on a series of website ideas. I dabbled in some PHP here and there, but didn't really get serious about programming until I took a couple computer science classes at my college & read a book on PHP programming. From that point on I had the programming bug. Learning more and more, I went on to do some freelance development work on the side and worked at a couple in-house jobs before I landed here at SEOmoz.
The backgrounds of other developers I've met are just as varied. I've known 30-something guys who went to college for hearing sciences, all the while becoming ActionScript geniuses. Others are still in school and trying to break in to the computer science world. And still others never went to college, having worked straight out of high school learning most of their skills on the job.
8:30 AM -- Wakeup
I've had the same alarm since 5th grade, and I like it. As soon as I wake up, I usually hop on my laptop and fire up Thunderbird to check the overnight email for anything critical. Then I check the weather for the day, news (both tech and non-tech), and read for about 10 minutes or so. I drink tea for the most part, but I've known other web developers to be coffee nuts as well. Nearly all of us have some sort of caffine choice which we use for those late nights or early mornings.9:45 AM -- Head to work
I'm lucky. SEOmoz is both close enough to where I live that I can walk to work, and lets me get to work at 10AM. I don't take my laptop, like most developers, because it's my primary machine at home right now (long story). I've seen a wide variety of laptops in developers possessions, but none have been as rad as my 4 year old Toshiba on "loan" from my Mom's work which has the "0" key missing. I'm saving up for a MacBook, ok? In addition to their laptops, nearly all developers that I've know also have 1 or many desktops at home that they use for testing, gaming, etc.
To go along with our laptops, developers need a laptop bag. Some are partial to the traditional laptop bag, while others like the satchel style bags. I run on the cheap end, and have a $20 Jansport shoulder bag that I got from Costco. In it is space for my laptop, notebook, mobile versions of my peripherals, some pens, my iPod headphones and (as I just found out) a handful of foreign coins for some weird reason.
10:00 AM -- Arrive at work
As soon as I get to my desk, I turn on my desklamp (I like having light on my desk), log in to my computer and get settled. For my job it's important to stay on top of tech news & other happenings on the web, both inside and outside the webdev sphere. There is alot of information out there, and it can be hard to sort though it all, so I choose to use RSS and email to stay on top of things.
For For my RSS reader, I use FeedReader. It's freeware, simple, and has all the features I want and none of the ones I don't. As far as feeds that I subscribe to, it's the usual Digg and TechCrunch, as well as Gizmodo and Engadget for my gadget needs. Since I work at a SEO company, I also need my search fix: Search Engine Watch, Search Engine Roundtable, Threadwatch & everyone's favorite Matt Cuts. I also subscribe to BBC News, the Guardian, and Reuters for news headlines.
For email (like at home) I use Thunderbird. I like its ease of use and customization. Currently I'm using the 2.0 Preview build and really liking it a lot. The lists I subscribe to are ones from PHP, MySQL and Apache. Mostly it's announcements lists, but sometimes it's help and support.
I think it's very important that a web developer is always reading about the industry, their tools, languages and also gives back to the community. I know I'm personally never satisfied with my skill and knowledge level in development. I'm always looking for new and more elegant ways to develop websites. Thus, I spend time at work every day learning about new features of Apache or a new CSS technique that I've never tried before. This constant drive to be better, faster, and stronger is common with many of the dvelopers I've met, especially those that are passionate about what they do, and It's one of the defining characteristics I look for in other coworkers.
11.00 AM -- Start work for the day
After spending an hour or so reading tech and developer news, and (hopefully) learning something new, I begin work on my project(s) for the day. I say "project(s)", because what I work on varies from day to day. Some days I work on one project the entire day, others I jump back and forth between half a dozen. It really depends on deadlines, project resource availablity, and what I feel my priorities are.
No matter what I'm working on, however, I tend to just throw on my headphones for some music, and dive in to what I'm doing. I think most developers, including myself, are more into music than your average person. We all definitely have a few genres/artists that we really like. I also think that music is a very big component of settling in to "work mode" for most developers as well.
Personally, I enjoy what I do, and can easily get engrossed in it for hours at a time. I guess you could call it "the zone." As long as I have a goal in front of me, I can look up after working hard on a project and realize 2 hours have passed in the blink of an eye. I've seen this work pattern in other web developers as well, and to me it is the hallmark of someone who really takes pleasure in their work, not just in development.
For my specific tasks, I have a nice little suite of programs that I like to use. Every developer is different, but most have the same types of applications:
- Text Editor: Both Matt and I use UltraEdit Studio. We like it's syntax highlighting, built in FTP (and SFTP) support, ease of customization, and other numerous features. I've heard of people developing in Dreamweaver, Notepad++, and even VI (as one guy who I once interviewed with used), but UltraEdit Studio is my favorite hands down.
- Graphics Editor: Photoshop is pretty much the industry standard for image and graphics editing, but some people use different things. Matt uses Fireworks, for instance. Sometimes I'll use Illustrator for vector work, but Photoshop is invaluable to me. GIMP is also another big choice in the open source community as well.
- FTP: Unless you're working on some sort of networked sandbox, chances are you'll be doing all your file transfers through FTP. I used to be a SmartFTP lover, until I was introduced to FileZilla. Matt uses FileZilla as well, but when actually coding, I use the built in FTP functionality of UltraEdit Studio.
- Browser: I use Firefox for development, almost entirely based on its standards adherance and the extensions (Web Developer being most important), and I know Matt does too. I don't really open IE up hardly at all, since there is a Firefox extension to use the IE rendering engine. Most web developers I've met use Firefox as their primary browser as well.
- Extras: Every developer has their auxiliary programs that they like to help them. For me, it's mIRC for my IRC channels, RegexBuilder to test regular expressions and WinMerge for file comparison and merging. I also keep pen and paper handy. I find it useful when figuring out algorithms, structure or any other things in my head that I need to see visually. In my experience, this is nearly universal in the field.
1PM -- Lunch
Usually I bring my lunch, but sometimes my coworkers and I go out. If I'm really engrossed in a project I'll eat at my desk, but for the most part I take a proper lunch break. I find stepping away from the computer, especially if I'm having a programming issue, is very helpful and often times I'll come back to the computer with a quick + elegant 5 minute solution to a problem that was eating multiple hours.2PM -- Back to work
More of the same thing. Often times after lunch, I'll have some additional feeds or email that came in, but for the most part I just get right back to work. I do both design and coding of websites, which tends to be a skillset I'm seeing more and more with developers. As a result, my usual process for bringing a website from idea to product is 3 steps.- Take my idea and map out how the data is structured, what pages dispay that data, and the logic flow for all the components.
- Head over to Photoshop and design the page visually (or sample page) of what I'm going to build. This helps me visualize what I'm trying to create, and gets all the art (font choices, color, shapes, style) taken care of.
- Using UltraEdit, I write the HTML/CSS to transfer the design to a webpage. Any PHP coding to make it all function goes here too.
Sounds simple enough, but there is a lot of pre-planning and trial & error that goes in to making sure the idea in my head functions as I planned. It's a lot of making changes, hitting refresh, and seeing if it worked.
My work style when developing is pretty straight forward. Because I'm blessed to have a 24" widescreen Dell LCD monitor, I keep UltraEdit open on the left side of the screen and my browser window open on the right side. I'll make changes to the code of a file in UltraEdit, save it (via the built in FTP) to the server, then refresh my browser window to check my changes.
Sporadically, I may be in Photoshop to whip up some graphics. If I'm ever making major changes to a design or page, I'll take a screenshot of the existing site, wipe the area I'm changing clean, and design the new component in Photoshop before I even start writing HTML. I find that Photoshop is much more flexible and easier to change colors & fonts than CSS/HTML. Occasionally I'll be in IRC asking questions or helping other users, just to keep knowledgeable on the technology I'm using.
6PM -- Head home
By 6 or so I've usually come to a good stopping point and decide to head home. Back on the road with the Jansport...6:20PM-- Arrive at home
Once I get home, I eat some dinner and relax for a little bit. Afterwards I'll get back on email to see if anything from work has turned critical. I'll spend the rest of the evening relaxing with some time on the computer -- usually on IM or getting some online errands done. Thanks to having a 24hr gym, I'll usually head to work out around 10 or 11PM as well.
I do occasionally develop from home, but I usually don't because 1) I'm more productive at the office, 2) I like to keep my work and home life separate for the most part, and 3) When I'm working I'm usually engrossed in my work and tend to ignore everyone around me. Matt and I have talked about similar experiences when we've been at home, so engrossed in what we were working on, we've ignored people trying to talk to us. Nobody likes that.
12:30 AM -- Head to sleep
With everything done for the day, I'm usually in bed by midnight or 1AM. Unlike some developers, I tend not to stay up really late. I've known other developers to keep really weird schedules and work from noon to 8 or 9PM, then go home and stay up until 3 or 4 in the morning. I can't do that, for a variety of reasons. I prefer to keep a reasonably normal schedule.Like I've mentioned in this article a few times, every developer is different. Yet for all the ones I've ever met, many share spookily similiar characteristics and habits. I work purely in open source applications using LAMP, and would expect a developer writing ASP.NET accounting software to have a different day to day experience. But for the most part, we're all one big family of developers eager to help contribute to the world wide web.
11-6 minus lunch?! Man, that's a cush gig. I hope you're billing 8hr days to clients! ;-)
My $0.02 - most work environments that demand an 8am to 5pm schedule with two 15 minute breaks and one 30 minute break for lunch are getting far, far less productivity out of people than we are...
If you can get 6 hardcore hours of productivity from someone 5 days a week, count yourself incredibly lucky. Most offices I've seen demand more, but get far less.
"Hardcore hours" - that's the way to go. People think that battling through some project "non-stop" for 12 hours is the way to go. That's a "boss looking over my shoulder" mentality. Staring slack-jawed at a problem is not "work" because it produces no output.
While I was still salaried, I made a point to ride the waves of my mental concentration, working a couple hours at full intensity, then throttling back to forums/IMing/etc when the well ran dry (anyone remember Netslaves.com?)
Now that I work for myself, I find that habit to be a life saver. Most business owners have 2 to-do lists - the must-do's that pay bills, and the must-build's that promise to eventually relieve you of the burden of the must-do's. That translates to MFA's for some, tool-building for others, etc.
So there is no "afterword" - your whole company is a 12,000 hour project. That being the case, it helps to pace yourself, and switch tasks and work modes often enough to sustain true endurance, year-in and year-out.
Rand, why can't all bosses be as cool as you are?
Great article for web developers ...
A [whole] Day in the Life of a Web Developer...
I KNOW you're right about separating work from home... I've been finding that my brain's still hyperactive till past midnight even though I get up around 7 am. Last night, I decided to give in. I might as well be productive and work some more at my pad. I'll try not to tonight though and have a pleasant date.
Having a boss that understands keeping up to date is vital in this industry is important. I once worked for someone who wouldn't allow me to read forums or blogs because they thought that was "personal stuff". I feel some brick and mortar business guru's don't understand that forums, blogs and misc news sites are just the same as lunch meetings with fellow entrepreneur's, industry conferences and magazines.
Great post. As a web developer I can testify that your schedules are very much alike.
One of the most difficult things that I struggle with is trying to balance my time between different projects and aspects of my work. I work at a government agency (my 9-5, anyway) where I am the 'everything-guy' - the web designer/web developer/seo/software developer guy.
Like you, I generally try to flip through my rss feeds when I get into work, which can take a while because the list is just over 65... and that is after cutting it down. From design, php dev, asp dev, ajax, seo/sem, and personal interests (I love The Office on NBC) I make it a point to never follow another posts link unless it's REALLY REALLY important.
At work, I often flip between my own personal projects and projects for clients, which is mostly web design/development and SEO, and projects for actual work-related stuff, which can either be desktop apps or web based apps.
Another challenge that I face is that my branch of gov't chooses to use ASP technology, so I have to be well versed and at the top of my game in not only php/mysql for my own projects, but asp.net/mssql/oracle for work-related projects. What a pain.
Sometimes I leave work wondering what I actually got accomplished that day, because I just flip through so much stuff that I have on my plate, I feel like I move nowhere with lots of projects. I know what you mean though, about being in the 'zone' -- the zone is a great place, except for when your friends/coworkers want to go out for happy hour and you're response is something like "I can't, I'm half-way through getting php to ...
Way to go... let out the secret!
As one who works from home for himself, I've encountered lots of glorious ideas on how my day must function, and must admit, I'm a bit envious of the life I should lead. Perhaps it's the working from home, perhaps it's the working in the web world, which the majority of people, at any level, still do not grasp.
While I feel I should come clean, how sad it would be to burst the image in their minds to find that most of my world is spent reading and learning, whether in books or online, either to advance, keep up, or relearn what I learned a few days/weeks/months ago. And let's face it, trying to explain cross-browser compatibility is nothing short of explaining nuclear fusion, albeit a bit less exciting and Earth shattering.
Or for those of us who work at home for ourselves, I've given up trying to counter their thoughts that I must loungingly work about 10 hours a day, instead of the 14-20. Although, I do have the benefit of going grocery shopping when I want and hopefully hitting low tide-- even if it is only 3 times a year.
I imagine that the life of the web designer/developer shares much of the same principles as the life of the classic writer... we are the Salingers, Fitzgeralds, and Heminghways of our generation... oh please, spare yourself the grief and don't, whatever you do, don't look behind the curtain.
Okay.... that said, for those of us living this drama, I have a feeling that most of us wouldn't trade it for the world. There is something about having at least the semblance of control in our lives, but also the impact of helping our clients achieve new heights, the creative expression, the betterment of this world we call web... artists with a different sort of brush.
Does Rand know that you don't do sh*t until after 11am dude? ;)
Shhh.....it's a secret, but I don't think he reads this blog, so I'm safe!
Lets see it!