17 ms·
At what time of day do famous programmers work?
- oauea 7y agoI write a lot of code at night, then commit during the day after a double-check.
- pgcj_poster 7y agoI wonder how much this is related to age.
- anaphor 7y agoProbably also heavily related to whether you have kids or not. I remember Linus saying that before he had kids he used to work during the night, but he had to stop that so he could drive them to school, etc.
- cptskippy 7y agoI was wondering the same thing and also how one's habits change over time. I wonder would something like the Linux Kernel repository have sufficient history to show this?
- 8fingerlouie 7y agoQuite a bit i'd imagine. I used to write lots of code at all hours of the day, 8 hours at work, 6+ hours at home. Then i had kids, and while i still write code 8 hours a day at work, i rarely find the time to write anything in my spare time anymore. Every now and then i have "some project" that i'm working on, but it's mostly in bursts of 2-3 days, followed by 3-5 days of "doing nothing". The 2-3 days are _not_ weekends, and i usually end up losing sleep over it. Kids are relentless, and no matter how late you stayed up, they still get up at 6 AM, and needs to be taken to kindergarten/school, and requires you to be (mentally) present in the afternoon/evening. I guess you could talk about a "soft burnout" happening from the 2-3 days burst. I'm trying to change the burst periods into more frequent, shorter periods of 1-2 hours, hoping the increased frequency will reduce the "ramp up" time while getting "into the zone".
- inlined 7y agoAnd there are other things that distract us with age. Eg I recently bought a house. Now I’m always coming home to do housework instead of coding. Also burnout can happen from acute events which we are more likely to run into over time. I hit a specific conflict at work and mostly lost the will to work OT for years after that.
- alexrbarlow 7y agoDoes this take into account timezones?
- cptskippy 7y ago4th paragraph.
- wiradikusuma 7y agoI'm a forgetful person, so I commit very often but with label "tmp", and later I squash them all into 1 proper commit before pushing. I'm sure I'm not alone, so commit time can't be used as barometer.
- lucb1e 7y agoI never saw anyone do this. May I ask what the point is? If it's just going to be in your local version and you later have to do (a very small amount of) work to get it back into one commit, why bother committing random stuff intermediately at all?
- dharmab 7y agoEver used a quicksave feature in a video game right before doing something destructive/risky/experimental?
- lucb1e 7y agoOh, I use undo in my editor for that kind of thing. But I guess if you want to make large changes, this might be one way of doing it. Pretty sure that's what 'git stash/pop' is supposed to be used for, but I don't use those either so I wouldn't know if that works well.
- dharmab 7y agogit stash follows you around, while a temp commit is bound to a branch
- lolc 7y agoI mainly use the staging area for this. Not yet create a commit, but get the diffs out of the way.
- samhh 7y agoI dislike the apparent inability to label groups of changes with `git stash`, so instead before leaving a branch with in-progress changes I'll commit them all as "WIP". Then, when I return to the branch, I'll check if the previous commit was WIP (`git log -1`), and if so will reset it (`git reset HEAD~1`). It's the best workflow I've discovered for dealing with this problem, and it means that I don't lose my commit history which is otherwise very clean.
- tshanmu 7y agoThere is a possible issue though - would they commit immediately after coding - how long do they need to work on a commit before actually committing it?
- glandium 7y agoAnother issue is that when you travel to a different timezone, you don't necessarily update the timezone of your system.
- cptskippy 7y agoAren't most devices configured to adjust automatically these days?
- mattlondon 7y agoI personally don't travel with my desktop :) Generally I take a small light laptop when traveling, and then just connect to the desktop back home for doing real work such as committing code. I know that at a lot of Big Cos do not let their engineers to have source code on laptops anyway (so easily lost and stolen).
- inlined 7y agoAt least Google has made an exception for me when I’m working on code hosted on Github. Most of that is (or will be) public so there’s low risk.
- glandium 7y agoNeither my Linux nor Windows 10 laptops do.
- Kye 7y agoBoth can be configured to do this, but I'm not sure it's enabled by default.
- 7y ago
- kurtisc 7y agoI've been meaning to do something very similar to this for a while to see what hours people at large tech companies are committing at
- seanhandley 7y agotl;dr Rob Pike eats lunch at noon
- neves 7y agoNice graphs. It is interesting to note that the scale changes. In each graph, an asterisk represents a different number of commits. Especially of note is that Brad Fitzpatrick made a small number of commits in Memcached.
- lionix 7y agoCheck for yourself in case you’re interested: https://gist.github.com/bessarabov/674ea13c77fc8128f24b5e3f53b7f094 https://gist.github.com/bessarabov/674ea13c77fc8128f24b5e3f5...
- dcchambers 7y agoCool information! I've always thought that I am more productive in the morning - but now I'm interested in crunching the numbers to see what it actually looks like. Obviously you can be productive and not make commits to a project, but it would still be fun to know.
- flr03 7y agoIt's difficult to draw any conclusion since we don't know their work pattern. If you commit at 12 it probably means you were working between 9 and 12, or between 11 and 12 or maybe it's just yesterday's work ? Who knows.
- panpanna 7y agoI usually work 9-5 and commit before going home. I might pick it up again at home and commit my changes before I go to sleep, around 11. According to this study I would be working 5 to 11pm
- anaphor 7y agoFrom John Carmack: > I often worked nights and slept during the day, but I almost always got 8 hours of sleep. There are still 112 hours left in the week! https://twitter.com/ID_AA_Carmack/status/932718658366857216 https://twitter.com/ID_AA_Carmack/status/932718658366857216
- simplify 7y agoHappy to see this being pointed out. Sleep is the single most important factor in code quality & correctness https://twitter.com/hillelogram/status/1119709859979714560 https://twitter.com/hillelogram/status/1119709859979714560
- darkmighty 7y agoSleep is a very technical thing, it's a 'Brain maintenance time'. It's not about saving energy or anything that could/should be bypassed (otherwise we'd be tired awake at night, useful for defending against predators in the wilderness -- nature accepts a great cost for this shutdown). I find my memory improved significantly once I started being more careful with my sleep, for instance. I wish I had come into contact with this instead of the bragging 'I barely need any sleep!' culture.
- michaelg7x 7y agoFull disclosure: I am definitely not famous, but might be considered a programmer. I found that when hacking for a several months on a solo prototype project, my hours drifted later and later so that I ended up going to bed around 4 a.m., and rising at 11. It's really hard to correct! In terms of productivity, though, the wee small hours are hard to beat.
- jki275 7y agoI'm also certainly not famous -- but I've found the same for myself. I'm far more productive between midnight and 4 or so than any other time of the day. Very hard to make those hours work with a family though.
- k__ 7y agoThe work patterns would be more interesting. Does Bellard think the whole project through for days and then simply hacks it down in a few hours? Does one of them use TLA+? Do they use iterative approaches, where the first few versions are really buggy?
- anaphor 7y agoFrom the projects they mention, the only one I can see really benefiting from TLA+ would be memcached. For most things it doesn't make a whole lot of sense to use it, unless you're writing a potentially distributed app. If you just want to model a regular program, then you'd be better off looking at PlusCal, which is more oriented to regular programs that aren't designed to be distributed. It compiles down to TLA+ so you get the same benefits, but with an easier to understand syntax. Edit: Also if you want to learn about how famous programmers work, then there's no better source than the book Coders at Work by Peter Seibel. http://www.codersatwork.com/ http://www.codersatwork.com/
- herf 7y agoMaybe maintainers commit "early", merging other people's work that piles up at night, while contributors commit "late", at the end of the workday?
- deleted 7y ago[deleted]
- artur_makly 7y agoTIL who the hell these 'famous' folks are!
- smudgymcscmudge 7y agoWho would you consider famous among currently active programmers that aren’t on this list? I knew about half of the list (mainly the authors of software I use). I could probably name a few who are equally famous, but not many who are more famous. edit: I went back and counted. I recognized 4 of 7 names.
- toyg 7y agoTo be fair, every community has its own heroes. Somebody like Bellard is probably completely unknown to most people living in the MS ecosystem, for example.
- anticensor 7y agoFabrice Bellard apparently merges commits to Qemu between 21 and 22, and to FFmpeg between 22 and 23.
- AdmiralAsshat 7y agoAuthor is probably a non-native English speaker, so, gentle correction: "At what time of day do non famous programmers work?"
- zcrackerz 7y agoThe original article was written in Russian, so I'm assuming this is an automatic translation.
- codingdave 7y agoMy gut reaction to this was the same as everyone else - to question the validity of using commits as a measurement of time worked. But then I read further and realized that this isn't a research study, it is just a clever script to output some data from github. So I'm going to go run it on a couple of my projects, see what it says, and enjoy that someone put it together.
- nitrogen 7y agoI've run similar git stats scripts (I think it was a Debian package actually) on my own projects, and for me at least, they were pretty reflective of my own working habits, with a time lag of an hour or two in the mornings.
- euph0ria 7y agoI code a lot at evening/nights but I almost always let it rest until the next day after waking up and do a review and then commit.
- donatj 7y agoIt's interesting to me hearing people in the comments talk about committing after hours of work. I instinctively commit after every maybe 30 loc, especially if I feel it has value. I'll sometimes squash them down if the PR turns out particularly noisy. It would be interesting to compare the average size of commits as well I'd imagine.
- nottorp 7y agoI don't know, I commit logical units. Changes that do something. If they're a one liner, that's it. If it's 500 lines, that's it. If it's more than a day of work I might commit and push unfinished stuff before i stop for the day, but otherwise no. Edit: although the latter happens very rarely. IMO if a unit is a whole day of work, maybe it needs splitting.
- rightbyte 7y agoI would like to do that at work but the code review and Jira ticket adds to much overhead so we mash stuff together to umbrella commits. That is probably becouse we use Perforce where you don't do local branches by default.
- alexhutcheson 7y agoIn my opinion, the project should be in a working state (everything builds, all tests pass, and the built binary or library would be usable) after every commit. Additionally, every commit should also contain unit tests for the code that's being changed, if possible. Sometimes it's possible to meet these criteria after writing just 30 lines of code, but more commonly it will take 100-300 lines of code and several hours to get to that state.
- paco3346 7y agoAgreed here. I think it leaves the commit history to messy if the commits aren't actually fully functional changes.
- mikorym 7y ago> and timezone information (+0300) > to filter only the commits by one person get the local time of that commit and aggregate it by hour when the commit was make So these are all in local time of the computer doing the commit, if I am not mistaken.
- aerovistae 7y agoAre the times localized to the timezone they're in?
- flatline 7y agoDo all these individuals work from a US time zone, or does fit report the user’s local time zone from which the commit was made?
- dabei 7y agoIt is local time zone. The commit log has time zone info.
- wyldfire 7y agoTo those asking about whether time zones are considered, the author responded in [1]: > The script uses the time the author saw on his wall clock when doing the commit. I can't imagine better time to use for such graphs [1] https://gist.github.com/bessarabov/674ea13c77fc8128f24b5e3f53b7f094#gistcomment-2971934 https://gist.github.com/bessarabov/674ea13c77fc8128f24b5e3f5...
- deleted 7y ago[deleted]
- CameronNemo 7y agoI can imagine a better time: that of their home timezone. Perhaps it is +0400 where someone makes a commit, but if their home time zone is -0700, that is a bit different situation.
- JCharante 7y agoWhat does wall clock mean? How do they know the geographic position of the authors at their time of commit? I have my laptop's time set to my SO's because if I want to know my current timezone I can just look down at my watch.
- deleted 7y ago[deleted]
- mapcars 7y agoBut why you interested in famous ones instead of the productive ones? :)
- btucker 7y agoIt's unfortunate that the author chose to only include male programmers in the post.
- numlock86 7y agoWhy is it unfortunate? Or am I missing some sort of implication here? And what about black programmers? Does it matter? If so, why?
- inlined 7y agoHypothetically the author thought of “epic programmers” and only came up with white males. Women and PoC have given great contributions in our industry and are underrepresented. This could have been an opportunity for the author to learn about some and give them a bit of credit.
- xwkd 7y agoCan you give us some examples of programmers of "epic" repute that are women or people of color? (Or both?) I'd like to be able to bring them up when I find myself reading something that doesn't include them.
- inlined 7y agoAs a google employee the first person who comes to mind is Sanjay Ghemawat. Jeff Dean is upheld to mythical levels within Google but he pair programs with Sanjay who is almost unknown. Jess Frazelle is pretty famous for her work on dockerization as well. https://en.m.wikipedia.org/wiki/Sanjay_Ghemawat https://en.m.wikipedia.org/wiki/Sanjay_Ghemawat
- fnord77 7y agoMargaret Hamilton https://en.wikipedia.org/wiki/Margaret_Hamilton_(software_engineer) https://en.wikipedia.org/wiki/Margaret_Hamilton_(software_en...
- yesbabyyes 7y ago
- hmottestad 7y agoI think the calculated wall time incorrectly. >> The timestamp is the number of seconds since 1st January 1970. If we convert 1563188141 to more human date we'll get "2019-07-15 10:55:41" — that is the time in UTC timezone. Then we add "03" hours and "00" minutes to that time and get "2019-07-15 13:55:41" — that is the time the commit author can see on his wall clock when he did commit. Usually the +0300 indicates that the times tamp is at +3 hours from UTC. Eg. the timestamp is already in local wall time. The offset can be used to convert it to UTC. So if the author did what they wrote. Then I reckon all the data is actually in UTC and not local wall time.
- vomitcuddle 7y agoUnix time is always the number of seconds since 00:00:00 Thursday, 1 January 1970 UTC time. Git records the committer's time zone, since the time would normally be converted back into a human readable form.
- Etheryte 7y agoThis is a good example of the ages old falsehoods about time. You're mostly right, but you're missing leap seconds.
- JDevlieghere 7y agoThe one for Chris Lattner is definitely off: https://twitter.com/clattner_llvm/status/1150992062365310977 https://twitter.com/clattner_llvm/status/1150992062365310977
- hendry 7y agoTravel would totally mess this up. I don't bother to update `timedatectl` when I am on the move.
- tuna-piano 7y agoAs someone who generally works a 9-5 job at a company where most people are expected to work 9-5, can anyone explain if there are any norms or rules that enable someone to work such abnormal hours at their companies? Do companies like Google not care as much about work hours? I can't imagine anyone showing up at 2pm at any of the places I've worked, regardless of how productive they were.
- golergka 7y agoGame developer here, most of the companies I worked at had an expectation that you show up around 12 and leave around 8-9. Guess it's a culture thing. Now that I'm a remote contractor, I can finally live according to my natural schedule and wake up around 5pm.
- paco3346 7y agoI think this really depends on the attitude of the company and specific managers. Each quarter I'm given a list of projects and just need to have them done by the end of the quarter. Thankfully my boss has seen that I'm much more productive with my abnormal schedule so I'm inclined that this type of freedom probably comes on a case by case basis.
- inlined 7y agoI know a former Technical fellow at Microsoft. He told me people gave him crap & joked it must be nice to be a TL and have the power to leave at 3P. On the other hand it had been years since he hadn’t watched the sun rise drinking coffee at the office. He told me he tries to make sure he doesn’t get out of bed till he hears his coffee machine go off at some time like 4A. Also, at google I’ve known people to work part of the day from home or have moderately shifted schedules to avoid traffic. Though there are often team-wide “core hours” where you are expected to be available for a meeting.
- WWLink 7y agoAfter you've proven yourself, some places will let you get away with a lot.
- 7y ago
- dahart 7y agoPersonally, I’d be very cautious about assuming that commit time has anything to do with work time. For at least 15 years I’ve had a policy - and so have the people on my teams - to avoid merging or committing to public branches at night or just before & during weekends so that you don’t accidentally hose other people on the team, who rely on automated builds & testing. We write code at all hours, but wait to commit/push/merge to master until the morning when everyone’s there. I realize that not everyone has policies like that, but these are high profile programmers who are likely to have their own complicating factors. Linus, for example, commits a lot of merges that other people depend on; his code reviews and code writing might be on separate schedules.
- kawsper 7y agoIsn't that what feature or topic branches are for? Commit in your own little world, merge when you are ready to share.
- dahart 7y agoYes, that is what feature branches are for. The policy I’m talking about is referring to when people share, not when they commit to a feature branch. Sorry, I did initially described it only as “commit”, so that was my fault, not yours.
- breck 7y agoBut a lot of teams prefer that you do rebases and have a flat commit history, rather than have merge commits (so your commits would reflect the time of rebase onto master, not the time you first committed to your topic branch). I still think this a very cool back-of-the-envelope estimate though.
- srfilipek 7y ago> (so your commits would reflect the time of rebase onto master, not the time you first committed to your topic branch) That's not the case with git. By default it preserves the original commit time.
- segmondy 7y agoEvery time of the day, it's like asking at what time does a musician compose, or an artist paint or a author write. Surely, we can consider the physical activity work, but the mental activity is also work and precedes the physical. The brain churns on the problem at hand most of the time even when we are away from the computer. I would even be bold to say, more so when we are away from the computer and not distracted by typing.
- scottmcf 7y agoAbsolutely this. Working on something else entirely is often the best way to resolve difficult logic problems that I get stuck on. Just throw it on the "subconscious pile" and let my brain chew away on it in the background.
- gwern 7y ago> Every time of the day, it's like asking at what time does a musician compose, or an artist paint or a author write. That's a pretty useless way of seeing things. You might as well define eating or going on the toilet as 'writing' since hey, they might be thinking about it while they're doing it. If you look at actual writers talking about when they write (https://www.gwern.net/Morning-writing https://www.gwern.net/Morning-writing) many of them are quite explicit about taking breaks to do other work like correspondence or family/friends in order to not think about writing.
- newsreview1 7y agoBut do you trust that commit time is going to actually be accurate? There si no telling how many off commit hours go into a pre-merge
- nojvek 7y agoI guess only white male programmers are famous in programming ? Good job further propagating the stereotype.
- numlock86 7y agoI already commented on this somewhere else. What's the problem with that? Are you implying female/black programmers are different? [1] https://news.ycombinator.com/item?id=20469963 https://news.ycombinator.com/item?id=20469963
- dewey 7y agoNo, he's implying that they are underrepresented.
- TrumpSucks 7y agoThen go write your own blog post. Stop crying.
- numlock86 7y agoYes, why does it matter? Underrepresented? Who is? The people that are not different but yet are different? I don't get it. I see a couple of people with their commit times being analyzed. If there were black and/or females in that list, great. I did not waste a single thought about it and wouldn't have even if there were some or many in it. Why would I? It's just some people. Forcing a quota on certain "types of people"? Sure, go ahead. Ironically you'll be part of the problem you are trying to fix then, though.
- dewey 7y agoI'm not the person making the original argument but I agree that they have a point. Someone creates a list of "famous programmers" which only includes whites males. This just further cements the image of programmers being white males, when in reality the field is more diverse and when it isn't people are trying to make it a bit more diverse through various angles (mentoring, removing biases from hiring, etc). I'm not blaming the person writing the blog post but the comment pointing that out has a valid point and something to keep in mind and develop some sensitivity for to create a more inclusive environment for everyone involved. > I did not waste a single thought about it and wouldn't have even if there were some or many in it. That is called privilege and means you are not affected by it and you just don't see the problem. Which is a very understandable behavior and I'm not blaming you for it. But maybe in the future if you, me or someone other white male is in a position to find sources to quote, or create a list like that we could keep that in mind and look outside of the bubble we are living in here on HN and see if there's something that we missed before.
- samirm 7y agoI don't get why so many people here are up in arms about commits not actually representing real work or when it was done. The author never stated what he thinks a commit represents and yet so many of you try to find some kind of flaw with his method and ascribe your own meaning to words he never said. Just enjoy this for what it is - a simple histogram for commits in a project.
- stewartjarod 7y agowhenever works for you...
- compumike 7y agoI graphed this for myself a while ago in my work as a technical founder of CircuitLab (YC W13): https://imgur.com/37mbya5 https://imgur.com/37mbya5 Two striking findings emerged (and FYI I'm a "frequently commit small logical changes" person): 1. My work patterns seemed surprisingly self-consistent, with a notable gap 2am-10am for sleep and around 1pm for lunch and exercise. (Plus a markedly lower average in the evenings after 7pm for seeing friends, just relaxing, etc.) 2. The intersection between my curve and the window of 9:00am-6:00pm is only 53%. If a "conventional" employer were to constrain my productivity to that window, that's at least some first-order measure of how much inefficiency that constraint would likely produce for me personally -- 47% reduction.
- miguelmota 7y agoAre the commits represented in UTC time when using the script?
- mikorym 7y agoIt's in local time as an offset of UTC. So, if you pool by repo then you could have two commits at 13:00 even though they were commited at different times of the day, but in different time zones.
- ekianjo 7y agoShould be interesting to also check if people work during weekends or not, not just the time of day.
- Cannibusted 7y agoAll day and all night!
- barce 7y agoLet's cargo cult the advice on this ftw. Also let's piss off our managers by saying, "Yeah, I heard this on Hacker News." Here for the downvotes to get back to 666.
- throwaway3627 7y agoLmao. OP items like these reek of people looking for shallow poser shortcuts rather than digging in.
- OnlyRepliesToBS 7y ago"judge people by their commit dates" awesome
- naltun 7y ago> Linus is the author of the Linux operating system Hmmmm... Not quite. Albeit I am a massive fan of the Linux kernel, though Torvalds is _not_ the author of the Linux operating system (if we assume that Linux is the equivalent of GNU utilities + the Linux kernel).
- z_open 7y agoWhy would we assume this? A kernel is absolutely an operating system.
- cujo 7y agoNo one should care. Seriously. There is no super secret work time that will make you a super-programmer.
- noddingham 7y agoWho cares? Why does it matter?
- rvz 7y agoExactly, no-one cares. This industry is creating a culture of celebrity programmers and worshipping and glorifying the code they write. It does not even remotely matter. What matters is who is going to maintain all of this after the years to come. (Or they could be even obseleted or superseeded anyway.)
- throwaway3627 7y agoFor-profit clickbait items reinforce unhealthy and unrealistic digital hallucinations to stay in business, and celebrity developer bloggers do much the same in order to advance their careers. You don't know how they are to work-with or if they have even earned their chops. Worse, the celebrity effect tends to ruin most people as they become insufferably entitled and/or uncooperative. These sort of people are often vastly overrated and can absolutely annihilate the morale of teams.
- njharman 7y agoHow does got get "local" time zone. I sometimes commit on systems set to utc. And I'm unsure how many people accurately set time zone in online tools like github. And many devs esp famous ones travel a lot. Not to mention moving. All this to say, there's too many unknowns for me to trust this "study"
- IloveHN84 7y agoI always code between 8 and 16 o'clock, sometimes until 17, but then stop. Programmers and engineers have family and hobbies too. Stop making the myth of the endurance programmer more and more inflated. It's proven and true that shorter working Hours have major bursts of productivity against longer ones.
- davidnog 7y agoI've made a breakdown on a daily basis as well (statistics on #commits/hour/day) : https://gist.github.com/davidalbertonogueira/dfc1b114285523cf4367351a7ab92896 https://gist.github.com/davidalbertonogueira/dfc1b114285523c...