To code quickly, you must quit coding
whattofix.com
whattofix.com
It's already known that the brain is a "muscle" and thus needs rest to function properly. What I'd like to see from the author is more about why hourly rests might more positively benefit the brain than some other interval, and why.
Otherwise, most of this is pure speculation!
I find myself having to wait for the compiler or for the debugger to get to the correct breakpoint, and think that I'll check HN for a moment. 5 minutes later I realize the compiler is long done...
This guy is on the right track. I'm doing something similar. I only work in 60 minute or 3 hour blocks of time. And during that time the email & phone is off - and the FOCUS is on ONE thing. One client. One project. Or one single objective.
It makes structuring your work week more efficient; as it allows you to schedule in advance the areas in your business life that require focus the most.
It reminds me of a quote by Royce Gracie on the topic of time limits in mixed martial arts fights... "if I [was to] drop you in the middle of the ocean and you look around and there is only water, most of the people - 99 percent - would drown on the first night. If I drop you in the ocean and fly away but tell you I'm coming back the next day to pick you up, you don't have to go anywhere, just float around the entire day. I'll come back and pick you up and you'll be there waiting for me. That's what the fighters are doing now. They know there is a time limit"
I have issues with procrastinating and staying focused on work, so I will often wait until the last minute to get something done, and use the pressure of the deadline to help motivate me and keep me working. This seems to help break that cycle.
1. Don't design/code for 2 days.
2. After 3 days, find some article that will get you pumped. Read it.
3. Design/code for 1 hour less than you usually would(for instance I usually code/design for 5-6hours a day, I'd do it for 4-5hours MAX here), take a 10 minute break and then continue. You'll get amazing results. I think this is partly because (like the author of this article said) your brain continues working on the problem.
4. Go to step 1.
Simple solution (for me, anyways): 2 computers at 2 different workstations. One for work, not connected to the internet and the other for the internet only. I used to have them in 2 different rooms, but I have found that that's not necessary. The difference between alt-tab and getting up off my butt is just enough to make this work.
These days, I can't go more than 10 lines of code without having to call some API* that requires me to be online.
* Examples from just yesterday: Amazon, Twitter, Facebook, PayPal, GData Contacts, GData Maps, Bing Maps, YouTube.
When you say you "download/clone", are you talking about just the docs, or do you actually clone the API locally?
For example, create a local, mock Twitter OAuth API so that you can program against the Twitter API without being online.
I'm genuinely curious. I like the idea of going offline, but it seems like it's not worth the effort if you're working on applications that are codependent on network APIs.
I wrote this to help: https://github.com/bradjasper/focus
For instance my work last week relies on an API that requires a VPN connection AND a windows machine.
I tested and mocked the API on windows, and now work offline, without the VPN nor Windows.
I just did a PayPal API, and the docs were pretty bad/inaccurate, so we had to make frequent test calls to see what the real world behavior actually was.
It gets worse. There are several situations where the docs say one thing, the sandbox behaves a different way, and the live API behaves in a third, different way. It's a mess.
For instance ... if you need to read the Amazon AWS's docs, maybe you're better off searching for and using something like Boto. If the Boto API is too complex to memorize, maybe you're better off constructing a Facade around it that you can remember without going for the documentation every time you want to open an S3 bucket.
Just saying ... lack of easily accessible documentation leads people to do strange things :-)
If you're building a Facebook app, for example, you need to have Facebook available at all times or it just won't work.
2. Code for a day offline with the docs.
3. Test your code (online).
4. Submit a ton of bug reports for the docs.
5. Yay, improved documentation!
7. Get outstripped by competitors.
It's too bad that most workplaces arent conducive to that kind of workprocess (try lying in a sofa at work and not be called a slacker :)
Other than that, we already knew that the subconcious mind needs time to process problems..Now excuse me, I'm gonna go get some fun done.
When did I see the solution?
At the end of day 3 when I was cycling home, right at the moment I was crossing a very busy and dangerous road.
It's amazing how the mind works and you'll always remember that moment. This particular moment was 10 years ago.
Anyone else waking up at 3-4 AM and knowing exactly what 1 to change into a 0 or the other way around in 50K lines of code and suddenly getting things to work in the desired way? :D
Our brains are coding, compiling and testing in the background all the time. ;)
timer-applet for gnome seems more appropriate.
This is going to be different for everyone, so these examples should only be taken as different ways to approach your work until you find what works. No single approach will work for everyone. I would go nuts if I had to stop every 50 minutes, personally.
If I'm doing cardio and "in the zone" and feel amazing when my time is up, I don't stop. I take the same approach with programming.
- I'll give it the task I'm going to do
- 1H after I start the task, it asks again
Now I can work in 1H period and it fills my hourly log...
This has been good for me - the challenge is just self awareness of when things are slowing down and then I'll do something like pack up and go to a cafe, go exercise, come back from the cafe, etc.
I've gotten big gains out of shifting gears once slowdown hits, but maybe proactively scheduling a shift would work better - I'll give it a try.