

Ask HN: A day in the life of a programmer? - shire

I want to pursue a career in Web development and eventually software development. I&#x27;ve never seen it done in real life.<p>What&#x27;s it like being a programmer day to day like the responsibilities from morning to afternoon what exactly would you do?<p>I want to know how programmers spend the entire day at the office. are there video examples of real world jobs where people code?<p>Someone tell me their day as a programmer. Thanks<p>I&#x27;m not too particular on what languages you use or frameworks but I&#x27;m getting into PHP web development if that helps.
======
patio11
Varies widely, depending on where you're working, what you're working on,
where in the development cycle you're at, what programming-related
responsibilities your job includes, what your level of seniority is, etc.

Here's a typical day at a Japanese megacorp as a Level 3 Peon ^H^H^H
Salaryman:

    
    
      8:55: Get into work, begin checking email.
      9:45: Most email to the outsourcing subsidiary is triaged.
      10:00: Planning meeting for project X
      11:30: It is over.  Begin working on bugs assigned in the tracker.  
    

(Representative example: List of students assigned to a particular class has
an off-by-one error resulting in there being one less student actually
displayed in reports than the report says it contains.)

    
    
      12:55: Three bugs done, good job.  Break for lunch.
      1:30: Back from lunch.  Planning meeting for project Y
      2:30: Meeting over.  Meet with trainee for scheduled professional development lesson.
      3:00: First uncommitted time on the day.  Begin making progress on the quarterly objective.
    

(Sample objective: ~20 new features in our proprietary framework. We have a
custom tag which we use in our Big Freaking Enterprise Java apps which lets us
turn POJO collections into tabular data, but let's have it such that users can
click on a particular row in the table and have that highlight the row,
through the magic of Prototype.) Nobody will ask me about this for another
three weeks so I have to pick the pace, being mindful to tread the line
between looking like I'm busy but not being so productive as to make more
senior engineers look bad.

    
    
      5:30 PM: Planning meeting.
      7:00 PM: Meeting over, quick break for dinner.
      7:15 PM: Eating dinner at desk.
    

I'm totally cashiered at this point but cannot socially speaking make a habit
of going home this early. Accordingly, I sit quietly at my desk and make a
show of working diligently. It is mostly for show. Everyone around me knows it
is for show, much like them checking that I am diligently working is for show.
These are _important_ shows.

    
    
      9:00 PM: Hit the first group of more senior salarymen going home.  Yay.  Almost done.
      9:30 PM: Apologize for my early departure.
    

Note that the above is _not_ crunch time in a Japanese megacorp, as you can
see by me arriving and departing on the same calendar day.

Here's a day in the life of my consulting career:

    
    
      8:00 AM: Inbox triage for my own businesses.
      8:30 AM: Leave hotel.
      9:00 AM: Arrive at office.  Get coffee/cereal.  Consume them while reading client-related email.
      9:30 AM: Enough email for the moment.  Start working on Project Deliverable A.
    

Representative example: complete redesign of the front page (low-fidelity
mockup) plus 2,000 words of copy plus 10 suggestions for the H1. These will be
A/B tested against the existing front page.

    
    
      10:00 AM: Meeting with stakeholders for Deliverable C.  Representative example: email content for a free one-month mini course which they'll use to get more leads for the software.
      11:00 AM: Back to working on A.
      12:30 PM: Lunch, downstairs with team.
      1:00 PM: Meeting with stakeholders for Deliverable B.  
    

Representative example: Implement a first-run experience of the software to
handhold users through getting their account set up and running.

    
    
      2:00 PM: Tired of working on A. Investigate JS frameworks for B.
      4:00 PM: JS framework chosen.  Write down in notes.  OK, back to A.
      5:30 PM: Prep for tomorrow's meetings, check email.
      6:00 PM: Apologize for ducking out early. 
    

There are still client team members working (and there will be until 7 PM or
so in the evening, at least). I have, however, to go to a dinner that I had
scheduled for 6:30 PM. (I _generally_ work such hours as are standard and
customary for clients. At some clients this means I'm out of the office at 5
PM on the dot, at others it means a bit later. If "standard and customary"
means "salaryman hours" at your office then at around 6:30 or so I just leave
quietly.)

And what do things look like when I'm working on my own business (where, n.b.,
all of the products involve substantial amounts of code that I wrote)?

    
    
      7:00 AM: Wake up early for meeting.  It was canceled.
      9:00 AM: Breakfast with wife.
      9:30 AM: Catnap due to only having 6 hours of sleep.
      12:00 PM: Up again.  Business administration (moving money).
      2:00 PM: I should really be getting lunch now, but I'm on HN instead.
      3:30 PM: Will probably be done with lunch.  Start working on essay.
      6:00 PM: Probably done with essay, if the mood is right.
    

If not, I'd have task-switched to one of the other todos on my list. Of the
top ten exactly one involves programming and that is under 100 lines of code.

    
    
      6:30 PM: Come home, play League of Legends a bit.
      8:00 PM: Dinner with wife.
      9:00 PM: Quick sweep of inbox for 20 minutes or so.

~~~
josephschmoe
I have difficulty telling if your salaryman example is facetious.

Though, admittedly, as an American, even if I worked for a Japanese company,
they would likely not treat me like that.

I do 40 hours. In crunch time, I work hard 100% of that - and I might work 45
hours tops. Then, I go home exhausted and sleep.

~~~
tptacek
You're assuming people at Megacorps are working hard. They go home exhausted,
but not because they exerted 100% of their mental capacity on solving problems
for the company.

------
mbenjaminsmith
I don't work in an office as all of my client work is 100% remote and usually
short- to medium-term. I mostly program full time in Objective-C and work on a
wide range of problems like image processing, audio, networked applications
and more recently parsing, NLP and (non-game-related) AI.

1\. Wake up around 8, start working around 9.

2\. Respond to emails for ~30 minutes.

3\. Program for 7.5 hours, usually having lunch while working.

4\. Have dinner, spend time with family.

5\. Possibly program for another 1-3 hours. The late night stuff might be a
side project (or more likely) the most complex part of the current project I'm
working on.

6\. Rinse, repeat. Take weekends off and try to take a mental holiday to the
largest extent possible (drink some craft beer, smoke some pot, play video
games, go shopping, take the family somewhere, etc).

I get paid (relatively) large sums of money to solve (relatively) hard
problems. The key to being successful in that is getting large blocks of
uninterrupted time to work, and when the complexity of the problem warrants
it, being able to get in a lot of extra time researching and trying out
different things.

There is also some time getting on Skype with clients but I try to keep a
steady stream of github activity / emails flowing their way so we don't have
to kill too much time talking about the work we're doing. It's not that I
don't like to talk to people -- once I get started it's hard to shut me up --
but I think meetings quickly become counterproductive.

I either work from home or from a local coffee shop. I have a (somewhat) high
end headphone rig that gives me the privacy that I need. I drink coffee like
water. I exercise a bit and try to eat as well / healthy as possible.

Dealing with burnout is a very real thing and I don't think it matters how
disciplined you are. I come from a corporate / entrepreneurial background
which granted me a "work before mental health" work ethic. I take what I do
very (maybe too) seriously. Still, I find it entirely possible to push myself
too hard then find it nearly impossible to re-engage. It's never the end of
the world because I recover quickly (a couple days max) but it is something I
have to be aware of. I often make breakthroughs burning the midnight oil but
that comes at a cost.

Put another way, sometimes you feel like you could work through the night.
Most of the time you shouldn't. You need to find a balance between getting
things done short term and getting things done long term. There's definitely
an art to it.

The life of a programmer will vary considerably based on what type of job they
have of course but for me it's like the life of a writer or a composer (though
I don't wow people at cocktail parties). I spend most of my time in mental
solitude. I love what I do and it's lucrative enough that people generally
don't think I'm insane for being as obsessed as I am.

------
archagon
Woke up, fell out of bed

Dragged a comb across my head

Found my way downstairs and drank a cup

And looking up I noticed I was late

Found my coat and grabbed my hat

Made the bus in seconds flat

Found my way upstairs and had a smoke

And somebody spoke and I went into a dream

------
attilagyongyosi
Well, I'm working for an established international IT company. We are
developing desktop, mobile and mostly web applications for well-known clients
across the globe.

I am currently working on a huge (for us anyway) web project with 100+ people
actively developing every corner of our infrastucture.

So my day is like: Arriving at the office around 08:30-09:00. On Tuesdays I
have an inhouse English training with a native speaker, which means a couple
of guys just talking about kind of everything.

After arriving/English training, I get myself something to drink from the
kitchen, turn my workstation on and check on my mails which are typically not
many, so I got through them under a minute. I fire up my dropdown console to
fetch the latest changes on our develop branch (we use Git and GitHub), log
into our issue tracking system and into the CMS we are using.

After that I start working on any task I have assigned to me. I put on my
headphones, open Spotify, select a neat album I like at the moment and off we
go to Sublime and Eclipse-lands.

I interact with testers, UI guys, squad leads, technical architects and other
backend guys regularly via Skype. Our team consists of fellow Hungarians,
British-Indians, Frenchmen and Belorussians, so it is pretty diverse. My day
is usually about implementing new features and handing them over to the QA
guys when done. We have a standup meeting at 2 PM when the team discusses the
status of the stories which are in the scope of our current iteration.

We have a lot of fun during the day, joking around while coding. I always bump
into coworkers in the hallway or in the kitchen and we usually have a little
discussion.

On Thursdays we have a so-called "Beer Lesson" at a local pub where a couple
of guys from the office and anyone interested get together to have some drinks
and speak English only with the guidance of our English "teacher".

------
avelis
Usually, the bigger the company, the more time is spent trying to get
uninterrupted time to program. When the company is smaller you get as much
time as you like to program. This is because there are a lot less people you
have to communicate with.

So at 200+ companies. Half of your work week is dedicated to just constantly
communicating what you are doing. (Everyone must know everything all the
time).

At smaller companies, you tell the one person you work with what you are doing
and thats pretty much it for the week.

Everyone's mileage will very but this has been a pattern I have seen in the
industry.

~~~
Spoom
My experience matches this observation. Working with a much larger company as
a vendor, the difference becomes magnified (e.g. LargeCo wants meetings
meetings meetings all the time, even when the same information could be
communicated in an email to all concerned parties).

------
logn
All programming jobs vary widely, from scenes straight out of _Dilbert_ to
ones from _The Social Network_.

That said, here's a typical day of a regular programming job:

9:30am - show up (10:30am in California)

9:30-10:15am - read last night's emails. Emails topics include group messages
from executives, vague questions from sales/marketing/QA, help questions from
other developers, plans and deadlines from your manager, and about 300
automated messages from dev bots you'll never read.

10:15-11am - reply to some emails and fix misc issues in code and build
systems.

11am-11:30am - team meeting to discuss goals and deadlines.

11:30am-12:30pm - read the news and rally the troops to eat lunch.

12:30pm-1:45pm - lunch

1:45-2:00pm - read the news

2:00pm-6pm - actual work (including programming some new features, fixing
bugs, setting up builds/releases, testing, researching issues on the web,
reading/writing wiki pages). Special note: if your job is bad, this time will
never be available to you and you'll be in meetings or filling out forms for
IT/accounting.

------
nemasu
Really depends on where you work and what you're working on.

Sometimes it's 50/50 documentation and coding. Other times it's close to 100%
coding/bug fixing. If you're at an awesome company, it can be: 75% coding, 10%
task tracker fiddling, 15% StarCraft2.

Side note: Having the ability to listen to music is a must for me and has
never been an issue.

From my experience the day to day is usually a mixture of:

    
    
      Fiddling with Task/Bug tracking software.
      SCRUM meetings.
      Design meetings.
      Documentation.
      Coding.
      Design.
      Talking to clients/other team members/people.
    

This will vary depending if you're working on something new or
supporting/improving an existing product.

All in all software devs have it pretty easy, if you're too stressed out or
not enjoying your work ( for an extended period of time, obviously there are
deadlines and things that come up that need to be dealt with ), start looking
around, there's plenty of work and competition.

------
vive
Yes, my day starts with 11 AM and ends usually at 9 PM and after dinner spend
some time for an hour learning any new things.

11 AM - Check email, reply 11:20 AM - Start the tasks in the current sprint.
We do have a weekly sprint (Every thursday release) 2:30 PM - Lunch 3 PM -
Discuss with team for any clarification / issues / improvements in current
sprint 3:30 PM - Work towards the sprint 8 PM - Report to our CTO to test the
day's work 8 to 9 PM - Amends / improvement - Do quick fixes and mark it down
to JIRA 9:30 - Dinner

After 10 PM - Learn anything new / Work on passionate projects / ideas

Between would go through twitter at early morning like 8 to 9 AM

Yes, I am working in PHP web development projects. I use both Git / SVN for
re-visioning depending on the project. Just that you know how a fellow PHP
developer day would be :)

------
Spoom
My day is split roughly as follows:

5% - Morning developer scrum meeting.

10% - Email.

65% - New product development and ongoing product feature development.

15% - Support-related bug fixing.

5% - Client meeting calls, product planning meetings.

I'm 9 to 5 working at a PHP web development startup. The 9 and the 5 vary as
needed but I'm almost always home for dinner.

(PS: We're hiring if you're any good and willing to relocate to Cleveland!)

~~~
shire
can you tell me more about the 65% - New product development and ongoing
product feature development. :)

~~~
Spoom
Coding. Essentially, time spend in a text editor / browser window combo,
developing new features and new products. Recently I've been working on mobile
apps so there is also a bunch of testing on the device as needed. I personally
use gedit but our developers use whatever OS and text editor they find most
productive. Bunch of people here like SublimeText. Chrome is universal, though
we test on other browsers when appropriate.

Your language breakdown really depends on the job and the project. If I'm
working on a web app, I do about 50% PHP and 50% "frontend" (i.e. HTML / CSS /
LESS / Javascript / Backbone / jQuery etc.). If I'm working on a mobile app,
since we don't have a serverside language available, the frontend work shifts
up (and any heavy processing / database usage we need ends up as an API on our
server). There's also some Node.js sprinkled in there for worker scripts and
queue processors.

------
mtdewcmu
Have you spent some time writing your own programs or writing programs for
school, sitting at a machine, working on code? That's what a lot of it is
like. You can expect to spend lots of time on code written by somebody else,
fixing it or adding to it. The rest of the time is meetings and bureaucratic
stuff. Sometimes you can goof off with coworkers. But if you've spent a lot of
time in front of a computer, that's pretty much it.

------
sclangdon
My experience is very similar to that of Charles Bloom:

[http://cbloomrants.blogspot.co.uk/2013/10/10-04-13-reality-o...](http://cbloomrants.blogspot.co.uk/2013/10/10-04-13-reality-
of-coding.html)

------
hvd
This is the experience I had as a newbie
[http://hkelkar.com/2011/04/09/48964049/](http://hkelkar.com/2011/04/09/48964049/)

------
petervandijck
Typical: you sit behind a computer screen 80% of the day. The rest is spent in
meeting rooms without windows.

