Ask HN: How do prolific programmers go about their daily lives?
196 points| lollipop25 | 10 years ago | reply
However, in contrast, I find myself out of energy after work that I just drop dead in bed only to wake up the next day. People advise me to do recreational stuff instead of writing more code on the weekends. Even my boss advises against writing code even when deadlines are just right around the corner. Forcing myself a few times, I felt like I was inches away from becoming part of the zombie horde.
How do these prolific developers spend their time? How do they work, do open source while staying healthy and awesome, and not become zombies at the same time?
[+] [-] donatj|10 years ago|reply
My wife came along and showed me though that there is more to life than programming and I have to thank her for that. She's a wonderful gruf woman who changed my life. I still code at night on occasion, but not very often. I've got better things to do. I really believe I am happier for it.
All that said, are you entirely sure programming is what you want to do the rest of your life? After a long day of coding I need to be ripped away from its siren song or I'd simply never stop, and I know a lot of developers that feel the same. The job takes a lot from you, imho, and it sounds like you may not enjoy it enough for it to be worth its cost.
[+] [-] tjholowaychuk|10 years ago|reply
As far as being known, just do what you enjoy. If you enjoy it you'll produce quality work, and if you produce quality work then the rest falls into place. Play your cards right, get yourself into a position at some startup (or your own startup) doing what you're interested in.
I think it helps to be vocal as well, blog a lot, speak at conferences a lot, and so on. I'm not really this kind of person but I've seen others who get really popular from being "thought leaders", possibly more so than for any code.
[+] [-] spotman|10 years ago|reply
In addition to just energy and whether or not programming is a good fit for you, I think it really really helps to have passion, i.e. Drink the kool aid, work in something you want to use yourself or can't stop thinking about, or is uniquely challenging to you.
I don't know any developers that are excellent that got there by working a mundane/boring programming job. Having said that I also don't any who have not had to work at several of those before they find one that keeps them awake at night in an excited state.
If you aim to improve your skills and work isn't doing it for you, do some side projects or contribute to an open source project. You would be surprised how excitement and passion can beat sleep. Don't get too hooked on it though or you will never have a social life.
[+] [-] reinhardt|10 years ago|reply
[+] [-] selestify|10 years ago|reply
[+] [-] collyw|10 years ago|reply
[+] [-] unknown|10 years ago|reply
[deleted]
[+] [-] unknown|10 years ago|reply
[deleted]
[+] [-] Randgalt|10 years ago|reply
I do all these things because it's what I'm driven to do. I would go crazy without it. There's no shame in not being like me. Do what you enjoy.
[+] [-] tluyben2|10 years ago|reply
(1) https://upload.wikimedia.org/wikipedia/commons/thumb/4/41/Co...
[+] [-] eibrahim|10 years ago|reply
I am not as prolific as many of the people you are probably thinking of but I am slightly above average. Here are a few things that WORKED FOR ME:
- Learn & use GTD - life changing. I use omnifocus but you can do it with pen & paper
- Automate as much as you can - checkout keyboard maestro and many other tools
- Use your calendar efficiently - block time for reading, playing, OSS or whatever
- wake up early
- excercise (i don't do too much but the days I do, I feel great)
- keyboard shortcuts for everything
- look for productivity tips for whatever tools you are using.
- turn off facebook and distracting material
- monitor your time - I use rescue time
- outsource as much as you can. I use fancyhands.com to handle things like calling the phone company, cable company, making appointments and so on. It saved me tons of hours of BS tasks
- I have had some success with the pomodora technique as well, give it a shot.
- Don't work more than 8 hours a day
- Work from home as much as you can
- don't burn out
- for side projects, blogging, oss or whatever it is you want to do, i find it better to do 1 or 2 hours a day than try to crank 8 hours on sunday.
- spend time with friends and family - it's amazing how your productivit improves when you are refreshed
- take a power nap or naps
- sleep well
I am married with infant twins so I try to be as efficient as possible with the limited time I have infront of the computer. 1 hour of highly focused work yields more output than 4 hours of distracted, half-ass work.
forgive the self promotion but I think it is relevant. I put together a free ebook about mac productivity tips - might not be as helpful for techies like you but you might at least learn a trick or 2 or find an app that you never heard off - www.bestmactips.com
[+] [-] Numberwang|10 years ago|reply
How do you deal with habits? What are projects and what are tasks? Is vacuuming once a week something you would schedule in a calendar? Would you schedule doing dental floss every night?
Also, for big projects which would have a task list of several 100 tasks, many of which would not be visible to you on the outset, how would you deal with those?
And what about all those halfbaked, barely logged ideas, sentences for things to write someday, concepts...
In essence. GTD stresses me out because it promises complete control over what to do and think about and when. Trying to implement it whilst dealing with the above questions induces anxiety and procrastination.
[+] [-] cprayingmantis|10 years ago|reply
[+] [-] SkyMarshal|10 years ago|reply
[+] [-] jondubois|10 years ago|reply
Being a prolific developer doesn't have as much to do with talent as people might think - Developers become well known by blogging, speaking at multiple conferences or just being in the right place at the right time (whilst making lots of open source contributions).
Also, famous developers tend to own/maintain many (often several hundreds) of different open source projects instead of focusing their energy on just one project. There are rare exceptions like Solomon Hykes of Docker - But if you just made one popular open source project, then that's usually not enough to be known in the community.
Also, where you live makes a difference. Your odds are much better if you live in Silicon Valley. I know a developer who created/maintains about 5 projects each with 2000+ GitHub stars and he is still not well known because he doesn't benefit from network effects like devs who are living in the US.
[+] [-] chill1|10 years ago|reply
Other than that, maybe you could try pulling back the number of hours you're at work. I've felt myself getting stuck in that cycle of work, eat, sleep in the past, but I am currently pretty happy with my routine.
If you want to make some life changes, I'd recommend starting small. Pick one thing to improve this week (don't eat less than 2 hours before going to bed). Then next week try adding another thing. Before you know it, you'll be doing these healthier things without even thinking about it.
[+] [-] bad-joke|10 years ago|reply
https://en.wikipedia.org/wiki/Neurobiological_effects_of_phy...
It takes a few months for the flashy effects to kick in but you get a grab bag of other goodies in the meantime. I know some people who schedule morning time because they feel energized during the day, and another who does it after work to unwind.
Me? I just like having an excuse to take hot showers at lunchtime :)
[+] [-] brianclements|10 years ago|reply
I would add to this too, a little life-hacking: Try to design your daily workflow (things that take time such as cooking, dishes, etc.) using the same strategies you use in programming. Modular food strategies so that you can cook once (on the weekend for example) and put together various meals by adding only little things here and there that round out the nutrition and quantity throughout the week with minimal dishes to clean after. Don't underestimate the efficiency of a good blender and protein shakes!
Get the right tools for the job too, maybe a standing desk to improve focus?
Lastly, I would add make sure you are picking projects that you find important and are passionate about. Thinking about them wakes you up. Aim for importance to you, not just # of commits. There will always be people who just work faster then you, or where money is not a problem for them, or where what seems like their hobbies are very tied into their actual work and the two overlap and they just seem more productive. That is where you have to focus on importance and not breadth but depth of where you spend you time.
[+] [-] sotojuan|10 years ago|reply
Here's the answer you are looking for: https://github.com/sindresorhus/ama/issues/167 and you can search more related questions in the issues.
[1] https://github.com/sindresorhus
[+] [-] mofle|10 years ago|reply
[+] [-] unknown|10 years ago|reply
[deleted]
[+] [-] darthsr|10 years ago|reply
[+] [-] nunobrito|10 years ago|reply
From personal experience think that programming pretty much crashes and destroys your personal life when you really, really want to go above the rest.
That's how I feel anyways. Don't sleep much and pass every waking hour on and off solving some coding problem.I remember when there was no computers. Existed more beer, fun and happiness. But at the same time didn't felt as happy as getting something epic solved.
Maybe one day it looks as it is all worth. Maybe. Enjoy your life OP, you only get one.
[+] [-] andretti1977|10 years ago|reply
But life is not job or software development and you shouldn't sacrifice it to computer programming even if it is a passion and you love doing it.
One day you will leave this world: will you regret you should have worked more or will you regret you didn't live your life?
[+] [-] yitchelle|10 years ago|reply
However, I came down to the realisation of several things very quickly.
1) Something in my brain causes me to grasp new concepts quite slowly, no matter how interested I am in the subject. So it takes me longer to work through things.
2) I also enjoy my family life, so it comes down to searching for time after the family has gone to sleep or before they wakeup to do some tech stuff. Kids are still a bit young to do tech stuff together.
3) There are only 24 hours in a day and I wont get any more days after I dead. I want to allocate some of the hours away from tech and experience humanities.
Sorry, I am sorry that this does not really answer your question, but I think that this side of the coin is important as well.
My advice is to find a job that you really, really enjoy doing. Once you have reached there, give it all you have got during the working hours. Your social life will thank you for it.
[+] [-] TheMog|10 years ago|reply
There are a couple of important points I've learned along the way that might help you:
1) Some people can code productively 24/7, but those are very few and far between. For starters, they have the skill to concentrate hard for a long time and work in an environment where that is feasible. It's not feasible if the next cubicle over has a sales person in it who spends ten hours a day on the phone. Second, most of them tend to do it in bursts as it's extremely hard and draining to sustain that level of concentration and effort for hours and days on end. What you see is often the output from the bursts, but you don't see that they're then spending a fair amount of time doing different things so they can recharge their brains.
2) It's easier to do this when you're young and pull a couple of all nighters a week. This makes you a hero, especially in places that thrive on hero-based development, but you have to realize you're burning the candle at both ends. As you age and build up experience, you tend to be more productive simply because of your experience, but you're also not necessarily that willing and suited to pulling 16 hour days for extended periods of time.
3) Most importantly, your brain is a muscle. Exercising it improves its function much like exercising your body improves its function, but it also needs rest. If you look at the way top athletes train, they push themselves hard but they also allow for sufficient rest periods. It's the combination of exercise and rest that leads to the improvement. Take one or the other away and you either overextend yourself (and injure yourself) or you don't grow as much.
Yes, I read about programming and play with languages during my off time, but I try to satisfy my need to build things (which is what initially drew me into software) by working on physical things instead. Things like building/restoring a car or motorcycle, gardening, working on the honey-do list etc. Oddly enough they're not too dissimilar from programming as you still end up solving problems.
TL;DR - find a way to switch off, be it through meditation or whatever else works for you. Get enough rest and exercise the other parts of your body. Learn to recognize the signs of burning out and stop the journey before you get there.
[+] [-] dpflan|10 years ago|reply
I suggest you read Coders at Work if you haven't already. It is a good compilation of interviews with living legends of computer science and famous software projects, and the interviews give insight into how each approaches his/her life. You might find some of it inspirational and insightful.
http://www.codersatwork.com/
[+] [-] wesleyfsmith|10 years ago|reply
[+] [-] munificent|10 years ago|reply
This is worded, negatively, but I think the positive formulation is more meaningful: If you aren't coding outside of work, it's probably because you love doing something else more.
[+] [-] zwischenzug|10 years ago|reply
I have a JIRA for everything I do with customized workflows, and among many other projects I built this:
http://hnalert.tk
to mail me when subjects interesting to me come up on HN.
I recommend reading 'Getting Things Done' and working at your own pace. Focus on the things you're motivated to do, not what you think you should be doing - that's what a paid job is for!
[+] [-] thisisnotanexit|10 years ago|reply
[+] [-] shinryuu|10 years ago|reply
[+] [-] AndyKelley|10 years ago|reply
Exercising is for sure a net gain in time. It makes you feel healthier, happier about yourself, and helps you think more clearly.
Here's me: https://github.com/andrewrk
[+] [-] zgardner|10 years ago|reply
[+] [-] honksillet|10 years ago|reply
[+] [-] forkLding|10 years ago|reply
[+] [-] itsthecourier|10 years ago|reply
[deleted]
[+] [-] akamaka|10 years ago|reply
I think the lesson here is that some people put their craft at the center of their life and make it the focus of every single day.
[+] [-] i336_|10 years ago|reply
I definitely want to hear more about how the marriage situation worked out in this case though. I expect I could learn a lot.
[+] [-] jjuliano|10 years ago|reply
It is best for the single and young because it requires you to immerse yourself to learning, to solve problems and face difficult failures, it requires routine, and dedicated energy to learn, requires energy to go to the workshops/meet-ups/groups and be updated when new learning opportunity arrives. It requires spontaneity to still be interested in other things in order for you to refresh your energy.
[+] [-] Mz|10 years ago|reply
B) Look to your health. If you want to be more productive without "paying for it" later, you fundamentally need to increase your ability to produce. Eat right, exercise, practice good sleep hygiene, etc.
[+] [-] philippeback|10 years ago|reply