15 ms·
Write Code Every Day
- gdubs 13y agoThis "don't break the chain" approach has worked extremely well for me, particularly during busy periods of high stress. I first learned about it in my college writing classes, where you're supposed to write something, anything, meaningless jibberish even, every single morning. Recently I read about Seinfeld using this approach to great successs. Every day he works on material, and puts a big, fat, "X" on the calendar.
- jeresig 13y agoAn important change that I made, compared with these techniques, is that I require myself to write meaningful code. It's certainly much harder to do that but as a result I find myself developing good time management skills. Knowing that I have to be mentally "present" for my work forces myself to schedule and plan my days better, resulting in higher quality work all around!
- EStudley 13y agoWhen did you find yourself getting most of your coding done? Mornings? I'd love to try something like this, but it will probably mean writing code at like 6 am..
- jeresig 13y agoPersonally I like to do my side coding project in the evenings. I find that if I do it in the morning it's too "all consuming" (I'll end up working on it to the exclusion of my main work.) For me morning/early afternoon is my prime coding time so it feels right to devote those hours to my job. I concede that the weekday side project code won't be the most amazing ever, but it's something and it's moving me forward.
- FLUX-YOU 13y agoHow do you define meaningful code? I feel like I'd quickly run out of approachable ideas without reinventing some wheel. I'm also not to the point that I can write Node/Python/other packages and have them be useful or unique.
- watmough 13y agoPick something in your domain and write something useful.
- slig 13y ago+1. I've been using Joe's Goals [1] to track my daily goals since I learned about it on Life Hacker years ago. Can't recommend enough. [1] http://www.joesgoals.com/index.cfm http://www.joesgoals.com/index.cfm
- frou_dh 13y agoWhen the so called Seinfeld technique really takes off, you forget to even mark the calender, then get the gratifying experience of going back and marking a big block of days after the fact. I guess that's the threshold of the internalised habit.
- smonte 13y ago"This "don't break the chain" approach has worked extremely well for me". I believe you are certainly not the only one. Changing "tasks" into habits greatly helps to achieve your goals. I recently read an excellent book about habits called "The Power of Habit" from Charles Duhigg. I sincerely recommend reading it. And for the OP, thanks for posting and sharing your ideas. I can relate to many of the things mentioned in the post. Especially for the anxiety part. It does not matter what you are coding, as long as you code something. I've solved some problem's from Project Euler and after each exercise I've felt a sense of accomplishment and restful.
- swillis16 13y agoThere's actually a site called http://dontbreakthechain.com/ http://dontbreakthechain.com/ which serves as a bit of motivation for getting personal development work done. I've had issues with remembering to check the site everyday even if the work gets done, but perhaps making it the homepage would help.
- mksm 13y agoI use Lift for that (https://lift.do/ https://lift.do/). Works great for me
- lalos 13y agoIn the book The Artist's Way by Julia Cameron she talks about "morning pages". Every morning write 3 pages of anything. Works for me and it is a nice daily meditation exercise.
- d55 13y agoBut what if you don't have some skill to work on? /:
- gdubs 13y agoThen you could make finding what you want to do with yourself a daily practice. Could be meditating, or a period of isolation -- walk in the woods, time in quite reflection...
- runjake 13y agoSeinfeld did not invent this "don't break the chain" method and even called it "dumb" [1]. 1. http://www.reddit.com/r/IAmA/comments/1ujvrg/jerry_seinfeld_here_i_will_give_you_an_answer/ceiugt5 http://www.reddit.com/r/IAmA/comments/1ujvrg/jerry_seinfeld_...
- gohrt 13y agoParent said that Seinfeld used it. That reddit post is Seinfeld declining credir for an idea which he considers a non-idea. He called it a "dumb non-idea" in the sense of "runjake's running program: put your shoes on evey day, so you are ready to go for a run when you have time." It's a "dumb non-idea" because it's so basic, but it's still something some people do.
- andy_boot 13y agoDoes "dont break the chain" work equally well if you split your goals out by week as by day? For my personal situation I can't guarantee I would get time to do coding every evening but 2 session a week seems feasible.
- coffeecheque 13y agoWorks for me for jogging, but I don't run every day. I run every two days. The chain is still a chain, but it's just a slight more distributed one. I printed a calendar and stuck it on my wall. Then I just mark it off with a big circle when I finish a run, or a cross when I fail.
- chris_mahan 13y agoThe best code is no code.
- antonius 13y ago"No more zero days" is a good quote to live by. No matter how busy I get, I try to code something everyday.
- bargl 13y agoLink to the original article. http://www.reddit.com/r/getdisciplined/comments/1q96b5/i_just_dont_care_about_myself/cdah4af http://www.reddit.com/r/getdisciplined/comments/1q96b5/i_jus...
- steveklabnik 13y agoThe real problem with "don't break the chain" is that once it does, things collapse. See my graph: https://github.com/steveklabnik https://github.com/steveklabnik As you can see, I'm about to lose a ton of green. I'm at 87 days as my longest, but July 6, 2013 was brutal for me. I was actually flying, and had saved a small bit of work to do during a layover, but then I totally forgot. Once that chain was broken, it was super easy to justify taking some time off...
- jeresig 13y agoI agree, definitely. I tried to emphasize how important it is to make this a lifestyle change (equivalent to dieting or exercise) rather than just a "check the box" tactic. I've absolutely broken streaks in the past (especially for dieting and exercise) - but I feel confident about this one because I care about it so much. I just can't let it fail!
- natdempk 13y agoOne thing I've found is that when you miss days, having some sort of planned reset time is definitely helpful. I use the same chain technique to journal every day through 750words. They track streaks both overall in days and visually on a montly basis, meaning that if you fall off the wagon, you can still easily get back on. The motivation comes from the fact that you can work from scratch towards getting another perfect month. I really like this approach, though I'm not sure exactly how you could apply it to Github's commit UI.
- Lambdanaut 13y agoThat was a beautiful post. Currently I'm in the complete opposite modus operandi. I don't do a lick of side-project work during the week, and on weekends I take a modafinil(wakefullness promoting medication) and stay up nights on end to crack out as much as I can. I get an INSANE amount done on the weekends that I have the energy to pull this off, but it's horrible for my health. The rest of the week I have anxiety about the coming weekend, and it completely throws of my circadian rhythm. Not to mention that I'm only able to pull this off perhaps once or twice a month. I'll definitely be changing my work schedule to be more in-line with a daily habit. Being able to look back and see a lot of consistent work being done sounds way preferable to being able to look back at a few weekends of consistent insanity.
- prawks 13y agoI would say changing to a more consistent work schedule is definitely a good idea, but don't lose the "schedule" part. There's a huge advantage to being able to say "okay, now is work time". However, after writing that I imagine it's a very personal thing, not everyone will work best in the same way.
- Lambdanaut 13y agoHaha yeah I totally agree there. I've got a time allotted every day after work that I really could fill with at least 30 minutes of coding, but somehow it gets diverted to god-knows-what.
- jeresig 13y agoYeah, that's always the hardest part. Messing around on HN/Reddit/Twitter/etc. and/or watching TV - it's so easy to not even realize that you're procrastinating. I find that when I realize what I'm doing I can usually extract myself and get to work - the hard part is just getting to that point!
- kbelbina 13y agoExperiences with modafinil have been mostly positive? Any major draw backs?
- danso 13y agoI know for some people, TDD is the kind of friction-causing mechanism that kills the desire for everyday coding...but I've found it extremely helpful, even for small personal projects. On nights when I absolutely cannot write a piece of working code, I scaffold out the tests. When I wake up the next morning and have 5 minutes with my coffee, I pass a test. Not much gets done, but by building the habit and ability to "jump into coding", no matter the time, place, or circumstance...that's how I've been able to build the coding-zen-mentality needed to write "real" code when the time comes.
- zachlatta 13y agoGreat post! A similar approach has been working really well for me. I'm on target to hit a year of consecutive days of coding this weekend. GitHub: https://github.com/zachlatta https://github.com/zachlatta I had a bit lower baseline than the author. My rules are as follows: 1. Commit something, anything. Even if it's just fixing a typo in a readme or phrasing some documentation better. 2. You must commit every day. 3. Every contribution must be useful.
- chris_va 13y agoI just want to caution folks, from experience, that it is easy to miss the forest for the trees if you are constantly trying to code. I think the key takeaway here is that sticking to a plan is helpful, and that a coding heavy plan is a productive one. This is a great post for that. I would argue that a good plan should include time off for reflection, and to avoid burning out. I have seen too many engineers burn out because they were convinced that working constantly was optimal for progress.
- jeresig 13y agoPerhaps surprisingly I feel like this process has allowed me to come to these conclusions even more quickly. If I spend five days in a row working on the same thing it's a giant red alarm in my mind. "Is this the most important thing I should be working on? Why did I just spend five days working on it? Should I move on to something else now?" I'd contrast this with before where if I only worked on it every weekend my ability to make those realization would be on the scale of a month, rather than a week - allowing me to adapt and respond much more easily.
- beat 13y agoI really needed to read this, today. Thank you.
- iSnow 13y agoIn the long run, this is unhealthy. Yes, it makes you more productive, but what if you fall in love, get sick, have a child...? Then you feel guilty about not catering to your side projects and guilt breeds procrastination. I learned how to break down work into small pieces and rather finish one small piece and then call it a day instead of leaving something half-working for the next day. Because of this, I left projects dormant for 3 months and then picked them up again. Granted, my side-projects are for-fun and not for-money, that makes it easier...
- jeresig 13y agoI think you might be conflating things a bit. The guilt about a lack of productivity already exists (daily work, or not). Doing daily work helps to mitigate it to a large degree. Naturally if I get sick I'll be comfortable enough to "let it slide". If anything I'll be eager to get back to work right when I can. I do agree that breaking things into tiny tasks is the best way to go, it's helped me tremendously. More than anything else though it seems that passion is the largest "secret ingredient". If you're not passionate about the work it just won't happen, regardless of what happens in your life.
- iSnow 13y ago>The guilt about a lack of productivity already exists (daily work, or not). This is what I think is unhealthy. If you want to spend a lot of time coding in your free time, go for it. If you notice guilt because you are slacking, you should revisit your priorities and earnestly think about why you are coding that much.
- firebones 13y agoThere's a time and a place for both. If you are a constant procrastinator, forming good habits, even on trivial stuff, reconnects you with why you need to do the work, and prepares you for getting started. But after awhile, you find that you're just working, and need to produce. So it switches to deliverables. My only life hack addition: instead of calling it a day, pick what you are going to set for your next completion goal before you quit. This was a Hemingway hack to make sure he could get up the next morning and start writing immediately. I've found that even the most informal mental commitment the day before solves the starting problem and ends up producing more positive streaks. It is great at overcoming (and preventing) any kind of "block".
- beat 13y agoOn a slightly related note, I'm trying to impose a new behaviorist training on myself. I've never been one to listen to music when working, although I love music (as in member of two active bands, produced many albums love music). So now, I'm trying to do work in album-length increments. Put on the headphones, pick an album, and work on one task all the way through it. No breaks, no interruptions. It's kind of a Pomodoro technique variant, a bit longer and with the headphones involved for extra habit and insulation from the outside world.
- lazerwalker 13y agoThat sounds vaguely similar to what John Carmack allegedly used to do: http://bookofhook.blogspot.com/2013/03/smart-guy-productivity-pitfalls.html http://bookofhook.blogspot.com/2013/03/smart-guy-productivit...
- beat 13y agoGood article, thanks!
- shostack 13y agoIf only I could find an entire album that I actually enjoy...
- beat 13y agoWell, what kind of music do you like? Good albums, as opposed to just a bunch of songs strung together, are kind of a special thing. Might I suggest a Nick Drake album? He only made three (although there are technically more), and all of them have excellent full-album flow. It's folky and acoustic, so not to everyone's taste, but it's beautiful stuff. Alternately, a classic Pink Floyd album? Those are also very this-is-a-complete-album.
- LanceH 13y agoZero days are great. Enjoy them without guilt. Don't fear going back to day 1. Make your decision each day if you're going to enjoy a zero day or get something done and long streaks can follow.
- hawkharris 13y agoTelling a programmer to write code every day is a bit like asking an aspiring carpenter to swing a hammer: it's a necessary component of improving your skills and building things, but it is also a narrow, technical task that has limited value in isolation. Having said that, programmers should spend at least as much time reading and thinking about code as they do writing it. You can write code for hours each day and do nothing but revert to the technologies and techniques that you find most comfortable.
- jeresig 13y agoI'd agree with you if my primary desire were to improve my ability as a programmer. Unfortunately, at least at this time, it's not. My major concern is getting meaningful work done. I spend far too much time thinking and reading about technologies, techniques, and planning for the future - more time needs to be spent on actually implementing all the amazing stuff that you want to exist.
- csallen 13y agoAs someone with the opposite problem/concern, can I request your strategies for reading and thinking about technologies and techniques?
- jeresig 13y agoThere are a number of technologies that I'm interested in right now (machine learning, "NoSQL" databases, graph databases, computer vision analysis, Node.js, amongst others) so I will just casually read about these things as time goes by. When the time comes for a new project I'll try to use one of them (but usually only one, too many new technologies and you're spending too much time just learning APIs). This has helped me to continually pick up some new techniques. Not sure if this is a silver bullet but it's been working pretty well for me. I try not to stress too much about jumping on the latest tech - I'd much rather wait and have others try it out and let me know if it does/doesn't work!
- cschneid 13y ago
- moron4hire 13y agoI have the opposite problem. I need to code less per day and work on the other important things in my life.
- munificent 13y agoI am a total convert to the "don't break the chain" idea. I started writing a book on game programming[1] about four years ago. At the time, I was working at EA, miserable, and highly motivated to have the book done so it could help pad my resume. I got a book deal (O'Reilly) then, when that fell through, another (Apress). I had a real writing schedule, and a very supportive wife, and I would work on it for hours at a time. Then I left the game industry, moved across the country, and had another kid. Suddenly, motivation and time were scarce. I backed out of the book deal and basically put it on hiatus for two years. I still really wanted to finish it but it just wasn't happening. About a year ago, I realized that if I didn't finish it soon, I never would. My familiarity with the domain was fading every day. I didn't want the project to be a failure, so I decided to try writing every day. I didn't have a set goal each day, but I try to do around 30-45 minutes. That ends up being ~500 words of first draft, ~1,000 words of later revisions. In the past 309 days, I've finished 12 chapters. That's 59,568 words, plus a few thousand more for intro sections. I've redesigned the site twice, set up a mailing list, gotten a business license, and a bunch of other grunt work. I'm about halfway through the very last chapter now (!). In less than a month, I should be able to say the book is done. (Though what I mean is that the manuscript is done, I'll be doing ebook and print versions after that.) I absolutely could not have done this without working on it every day. [1]: http://gameprogrammingpatterns.com/
- ds206 13y agoI've read a few of your chapters and I think you're doing a great job. Keep it up!
- liyanage 13y agoYes I read one of your chapters as well, very well done and I'll be buying the book when it comes out.
- munificent 13y agoThank you and thank you!
- 13y ago
- Thiz 13y agoHey John, just quit KA. Life is too short to waste it in things you don't love. Remember jQuery brought you fame, not because you were chasing fame itself but because your love for jQuery and programming. Love for what you do comes first, money is just a secondary effect.
- jeresig 13y agoHaha ehhh I think you're reading into this a bit too much. It is possible to love more than one thing - I love helping educate people and doing it at a scale that Khan Academy can provide. I also love building reusable JavaScript libraries. I also love building tools for Art Historians. They all shouldn't be to the exclusion of each other and, in fact, there's often overlap. Part of the fun in life is embracing that and trying to make the most of it!
- mattgreenrocks 13y agoIt's vital to keep your nose in real problems if you're working on tools, otherwise it's easy to go off into the weeds. Additionally, a substantial part of research/creating things is time not spent working on it. It's really similar to working out: the rest time is when the growth occurs, and the time at the gym provides the impetus.
- kyro 13y agoDo everything you want to excel at everyday. One big problem I've learned with not working consistently at any one task is that after dropping and returning to a project, I find myself being familiar enough with areas I last touched that I want to speed through them to reach a point where I begin working on new ideas and concepts. But in most cases, those areas I left off at were the very reasons I jumped ship, either because they were too difficult or mind-numbing to wade through, leaving them incomplete/unlearned, and resulting in me having to take a few steps back to fully refresh myself before I can continue building, which leads to a lot of frustration and feeling like I'm wasting a ton of time.
- jsutton 13y agoThe pitfalls of context switching is mentioned often in this article. I have a "problem" where I'll work heavily on a side project for a few days, before getting bored and wanting to move onto another project. The result is that I have many unfinished side projects. Is it better to focus on one project until completion, even if you aren't as into it anymore? What do other HNers do regarding multiple on-going side projects?
- eslackey 13y agoHey, hey, hey, hey..........................................................................Write code everyday. -The Next Episode Remix
- coolsunglasses 13y agoThis doesn't improve you much unless you're really new or skilled at challenging at yourself and finding new things to learn. If the latter is true, do you really need advice? Said differently: flow is the opiate of the masses.
- jeresig 13y agoNot everything has to be a life-improving challenge - sometimes you just want to ship some code!
- coolsunglasses 13y agoSure! But if the daily coding is predicated on a sense that, "this is how one becomes great" it is not sufficient for that goal. It's easy to become complacent. Most people are.
- weavie 13y agoI would say shipping is definitely life improving. Shipping is where you expose your work to the public and open it up to feedback and criticism. You can learn a lot more from direct feedback than you can learn from a general book. I have far too many books and half finished projects that will never get finished. I have forgotten most of the stuff I learned from them.
- josephschmoe 13y agoDon't focus on the how. You can produce good code by: 1. Coding every day 2. Hackathons 3. Coding on certain days 4. However you want. What matters though, is how -you- work. Are you the sort of person who prefers to code as much as possible? Code every day. Do you enjoy getting a big thing done fast? Hackathons are for you. Do you have children, a life or a job? You might want to code whenever you can instead of trying to force yourself into something that might not work for you.
- tibbon 13y agoI was onboard with this school of thought for a while, right now it isn't my flow. I work hard as-is teaching WDI at GA. I commit code frequently, but I also really want to focus more on work-life balance at the expense of getting more done. This summer, I'm taking two months off to do Burning Man and travel the country via motorcycle. During that time I expect no code to be committed. Do I feel bad about that at all? Not in the least bit, in fact I'm super excited to do it. Currently, I try to not do much work on weekends. I like working hard during the week and then stepping away from the computer. I'll go and play music, ride my motorcycle, hang out with friends, travel, etc. The more time spent on my laptop on weekends feels like I'm missing out on things that matter strongly to me right now. Now I am nowhere near the prolific coder that John is, and nowhere near his skill. I don't think he's wrong for doing it this way, but it isn't right for me and I'm glad that its producing results for him. I also go through periods of wanting to code daily, and other times where I'm ok with not coding for several days at a time. To each their own. Also, Hi John!!! I haven't seen you since betahouse or you holding a Jelly at your place in Cambridge.
- jeresig 13y agoHey David! It's been too long :) I agree with your sentiment -- I've been through long periods of little-to-no side project hacking. Like multi-year, long. I've been working on my current side projects for over two years now but I finally made the decision last fall to make the hard decision: either this is going to be something that I REALLY want to get out there (and thus, I need to work really hard to make it happen) or I need to be comfortable with letting it slowly progress over a long period of time. I made the decision to go for it, so I'm writing the code to make it happen! But yeah, for every season there is definitely a different formula. In the next phase of my life hopefully I can find other things to bring this level of excitement and stimulation!
- tibbon 13y agoYou're absolutely right in that its critical to either kick things into gear, or know that its going to take a long time for things to happen. That's excellent focus. I look forward to shifting back to the other side at some point. Maybe in 2015 ;)
- jes5199 13y agoIs your side project really this important to you? It's your source of identity and self-worth? I say: take three months off from even touching a text editor and practice guitar every day. I think my system leads to happier, healthier human beings.
- dsyph3r 13y agoI agree. Its nice to get away form the computer and achieve other things. A break from coding also helps build hunger to get back into it on a Monday morning. I love programming, but there's a lot more to life that doing it everyday.
- elbear 13y agoI think your system leads to a happier, healthier you, since you're doing what you like. I don't know about John, but I'd code every day, because I actually enjoy coding. I have the feeling it applies to him as well. It's the same with writers who write every day, no matter how little, to get into the rhythm and to constantly improve. Also, doing something every day, doesn't imply neglecting other parts of your life. It just means constantly giving to something you care about.
- beat 13y agoI have to take a break from playing guitar every day in order to make myself code. Different strokes.
- darkFunction 13y agoAbsolutely this. You can also use a tool like Gitstats (if you don't use Github) to track your progress. A lot of my code is written inside thirty minutes on the bus and tube on the way to work. Sometimes you might feel like there's no point even pulling the laptop out of your bag since the time window is too small- but every time you will surprise yourself with how much you manage to get done. The best thing about the 'little and often' approach is how you get drawn into fixing something big just by starting to fix something small. Getting into The Zone for hours at a time is great and everything but honestly I'm starting to view the whole process as just clocking in keystrokes. My gitstats (http://notes.darkfunction.com/gitstats/index.html http://notes.darkfunction.com/gitstats/index.html) is showing commits on 56 of 85 days. A week of the remainder I was on holiday, and I tend to rebase quite a lot so actual days committed should be higher. But in that time I have written over 18,000 lines of code and removed over 6000. Almost a full iPhone application since January in my spare time, now onto the home stretch and couldn't be more pleased with the results.
- clay_to_n 13y agoI agree. Having a 40 minute daily BART commute was really productive for me, even if it's that short.
- prezjordan 13y agoI tried this a few months ago and failed miserably: https://medium.com/lessons-learned/ab219377be93 https://medium.com/lessons-learned/ab219377be93 Really enjoyed your post, though. I think I might give it another shot from a different perspective.
- aiaf 13y agoYour link redirects to a login page?
- prezjordan 13y agoCan't seem to reproduce that - it's just a Medium article. Could have something to do with Heartbleed if you've logged in before.
- mdoerneman 13y agoIt's crazy that I found this today...I just started something similar except instead of coding every day I set a goal of 4 hours per week and I use Beeminder to track my progress. Many of the benefits you listed are spot on especially "the feeling of making progress is just as important as making actual progress." Now that I have children, coding for 8 hours on a Saturday just doesn't work. To reach my current goal of 4 hours per week, I plan on coding for 30 minutes in the morning or night where I can but I also have arranged with my wife one weeknight where I leave the house and go code at a coffee shop for 2-3 hours.
- ElHacker 13y agoI really like this approach. I'll do my best to write meaningful code every day to my side projects.
- lukasm 13y agoThis is exactly my approach on my side project, but rather than "write code every day" I say "make some progress every day". Simply because it's not a Open Source framework, but a wannabe product.
- osetinsky 13y agoHow long do you spend every day on your side coding? Do you try to set a minimum/maximum amount of time?
- rajlal 13y agoGreat blog post john, I had this experience when i was working on a book and i had to spend considerable amount of time every week on one example. The book had 100 examples so it took me two years to complete the book but the experience was amazingly satisfying because i was able to justify the effort, going slow and steady. The other thing i noticed is the increase in quality when you do less but give more time to think. Keeping the problem in your mind create innovative solutions. Which is impossible if you want to just hack up everything one weekend. My personal favorite is keeping a point system for all the good things you want to do in your day and add them up for weeks and at the end of the month, check the total and see where are you lacking behind. What percentage of life you are actual able to live the way you want. Haven't got to 100% yet but above 60% i give a pat in the back.
- Bahamut 13y agoI don't write code every day, but that is largely due to my military obligations as a reservist. Other than that, I often work on various side-projects and/or help others with their coding woes as a way to learn & help keep sharp. I'm disciplined enough to learn what I need to on my own time whenever I want. Sometimes I burn out, and in those instances I take my free time away from programming. The most important take away is to figure out how you want to improve yourself, instill passion in doing so, then executing.
- Avishai_Bitton 13y agoIf you don't use it, you lose it...
- ribs 13y ago"I realized that the feeling of making progress is just as important as making actual progress." Yeah...no.
- Sindrome 13y agoWhy is it so noble and healthy to be a workaholic if you are a Software Engineer?
- dinkumthinkum 13y agoI think your comment deserves many more replies. It is taken completely granted that this is the case. I don't think it is good at all but that is the mindset.
- alphakappa 13y agoWriting code every day doesn't necessarily make you a workaholic. Working on code all day, every day might make you one though. What John is doing is akin to what an artist would do to hone their skills. Practice. Every great singer practices often. Every master of a musical instrument. And for programmers, it's a similar thing - there's no substitute for writing code. His approach is to write something meaningful every day, but it shouldn't be interpreted as 'let the code writing take over your life every day'
- groby_b 13y agoCan't speak for the OP. In my case "code every day" is meaningful because I have a lot of responsibilities outside of writing code. It's good to have a reminder to always get in a bit of coding time at least. That doesn't make me a workaholic. I'll still stick to ~8h days. It just means I'm not completely forgetting about the coding side for a couple of days and then feeling super-guilty there's no commit for a week. (Obviously, Sat/Sun are exempt from "code every day".)
- redmaverick 13y agoThis essay[1] made a deep impression on me and I rationalize not working if I don't have a long chunk of time available to work on my side projects. [1]http://www.paulgraham.com/makersschedule.html http://www.paulgraham.com/makersschedule.html Will need to change my attitude and get more done. Good piece.
- paisible 13y ago2 years ago some friends and I started writing one song each per week (and met every Thursday to listen to our respective master-pieces). We mostly ended up composing and recording the songs on iphones the Wednesday night before (thank god for GarageBand), and after 3-4 weeks were producing more creative content in this compressed timeframe than we'd had been able to with no deadline before. A few months in we skipped a Thursday or two, and suggested the solution was to write one song per month instead. That was definitely not the solution. We didn't find more time to write, and the lack of schedule killed the momentum. My biggest regret of the last year is not sticking to it - however a friend just moved to our city with the condition that we'd get it started again with the weekly frequency, so I'm optimistic :)
- chewxy 13y agoAs much as I like this idea, I do wish John talked more about HOW he did it. "No More Zero Days" is a good thing as a target, but it's often unachievable. For me at least, the context switch required between what pg calls the manager's schedule and maker's schedule is so huge that it takes hours to cross that gulf (that's what I'm mostly switching between anyway) Do you just sit down and force yourself to hammer out code?
- da02 13y agoI tried to do this, but in the end I ended up getting a job at a fast food place (part time). It uses different parts of my brain (as opposed to freelancing), and forces me to stick to the schedule. I can't exactly explain it, but it really gave me a BIG productivity boost.
- mildtrepidation 13y agoABC. Always be coding. Always. Be. Coding.
- patrickford 13y agoI recently started the same discipline. I spent a good part of my career writing code then worked my way up to executive management and stopped. After several years as Director of this, or VP of that, my skills had eroded. Late last year I decided to take a sabbatical and get back into the game by applying to Hack Reactor in SF. It was an intense period of two months of pre-course work (18 Code School classes and a bunch of coding assignments), followed by three months of intense work on site where we went 11+ hours a day for 6 days a week. One of the disciplines there is to work on a short “toy problem” every morning for 30-60 minutes. Although I finished the program recently I am keeping up that practice as well as working on my real project, a new startup for social video. I’ll never stop coding again!
- az0xff 13y agoDoes working toward your side projects without necessarily writing code count? There are some days where I devote myself to figuring out something on my system that's essential for my side project, and those days I don't necessarily write any code.
- cbp 13y agoIt's best if you actually just _read_ code everyday and the writing is just the side effect of tinkering with it. Like chess you will save a lot of time by learning from other people's games before you actually do something on your own.
- tieTYT 13y agoThis is a good article. I believe this idea comes from Jerry Seinfeld^1. Here's an article that really complements the submission: http://start.jcolemorrison.com/how-i-fight-procrastination/ http://start.jcolemorrison.com/how-i-fight-procrastination/ It's titled "How I fight Procrastination" and gives advice on how to break up tasks into day-sized activities. Finally, I want to say I personally disagree with the OP's 2nd point: 2. It must be useful code. No tweaking indentation, no code re-formatting, and if at all possible no refactoring. (All these things are permitted, but not as the exclusive work of the day.) I've noticed that when I'm really tired or "not feelin' it" sometimes I just want to do something that takes 10 minutes so I can keep the chain going. When I spend a day (ie: 10 minutes) refactoring some code, I don't lose my motivation to work on my project tomorrow. It's breaking the chain makes me lose motivation and if I forced myself to write something "useful" on a day I don't feel like it, I may just end up breaking the chain instead. It's of the utmost priority to lower the bar to work on your project and rule 2 is an obstacle to that. Plus, I take mild offense to the idea that refactoring is not considered useful :) And, if I had this rule I think I'd avoid refactoring a lot of code that needs it. I'd spend more effort squeezing that square feature into that round hole if refactoring "didn't count". ^1: http://lifehacker.com/281626/jerry-seinfelds-productivity-secret
- karangoeluw 13y agoInspirational post. Last year, I [1] set a goal to teach myself git by committing at least once every day for a month. At the end of this, I saw the streak, and was too afraid to see it go down to 1 in a snap. Ever since, I've been committing code daily, and it's been about 40 weeks, and I'm still going strong. Being a full time student, this wasn't really easy for me, but I'm proud of myself. The one thing I learned is, that the problem isn't the lack of ideas or time, but the lack of motivation to work on them. [1] https://github.com/karan https://github.com/karan
- MarkTee 13y agoBeing fairly new to programming, I usually have a hard time coming up with realistic/manageable ideas that can be completed in a reasonable timeframe. Your huge list of projects has been a huge help in that regard, so thanks!
- ethanhunt_ 13y ago"An interesting side effect of writing side project code every day is that your current task is frequently running in the back of your mind. Thus when I go for a walk, or take a shower, or any of the other non-brain-using activities I participate in, I’m thinking about what I’m going to be coding later and finding a good way to solve that problem." Is that not a negative? I find it hard to stop thinking about what I'm working on, and it negatively impacts my life. I leave the office after 8 hours, but the next 2 hours are spent turning over problems in my head, and the 2 hours before I sleep are spent on it too. The days that I work on a problem at the office for a few hours and can't unblock myself before leaving are hell. My brain won't turn off until I can get into work the next day and begin on the problem. Some days I will even wake up in the morning or night with answers to the problem. Why is the AWS instance in my head turned on all night long when I'm not even getting paid for it?
- pipukamal 13y agoHighlanders vs Bulls Live Super 15 Game Free Streaming xv rugby Online http://storify.com/superrugbyoz/higvbulnzt http://storify.com/superrugbyoz/higvbulnzt
- drderidder 13y agoThat post was awesome... slow and steady wins the race. Inspiring!
- mburst 13y agoI totally agree with this. About a month ago I created a site that puts up a new programming or logic puzzle every day Monday-Friday. The exercises usually take no more than 30min and the community has been steadily growing. If you're interested you can check it out at http://problemotd.com/ http://problemotd.com/
- jschulenklopper 13y agoSomething similar can be found at Project Euler, http://projecteuler.net/ http://projecteuler.net/ or at Codewars, http://www.codewars.com/ http://www.codewars.com/, although those have a stricter format than your examples. For example, the challenges at Project Euler all have a single number as answer. Some problems can thus be solved via mathematics, but for most a program -- you may pick the language -- is most efficient.
- gbhn 13y agoI'm curious if 30 minutes is the lower bound on meaningful project time if the constraint of writing code is lifted. I've been thinking about what kinds of projects could be decomposed into 20 minute work units, allowing some work units to basically be all thinking (design, specs, figuring out how to split up a problem, etc.) and others to be more coding. I'm suspicious that there are many projects that could be decomposed like this, or even into 10 minute blocks, but that it'd be really helpful to have tools that makes this more achievable -- ones that basically remind you of where you were and help with the what-do-I-do-next decision. Does anyone have any experience with this kind of development process?
- underscore_user 13y agoI’ve been finding mind maps extremely helpful for doing exactly what you describe: working in small chunks through the process of approaching a high-level problem. (I currently use FreeMind for this, but I want to find something that works better on my laptop and/or would let me edit maps on my phone as well.) I use mind maps like an endlessly hierarchical to-do list. Every high-level task I want to accomplish is a node, and whenever I start to think about the approach to one, I make child nodes for the broad strokes of that approach. So long as I’m actually interested in completing the project, I can continue to break each step down in this way until I get down to a level where it’s easier for me to just start writing code. (This level varies largely, depending on my mental state at the time.) If I stop at any point I have all the thoughts that came to me, written down in exactly the places they’ll be useful. I can go as deep as I want into breaking down any particular step, knowing that those thoughts will be available later. And it’s much easier for me to spot problems and reconsider my approach when my plans are all laid out hierarchically in front of me. I might sound overexcited about this because I hadn’t figured out how to use any external tools to help me think about my projects before I was recently introduced to mind maps, and they immediately had a huge impact on my ability to think about my projects without getting bogged down. So if you already have tools that give you similar benefits, take all this with some salt or whatever. Anyway, I’ve lately been working mostly on weekends and finding myself with similar issues as the blog post describes, so I’m planning to start trying to do a little bit every day instead, starting today. I think I will be content if the little bit I do on some days is breaking down some tasks I haven’t yet thought through in my mind maps, even if I don’t write any actual code.
- kf5jak 13y agoI've read multiple articles on people doing this. Practice is the best way to learn. Admittedly, I've tried and failed on this before. I love seeing people succeed and become better at their practice using this method. It can only serve as inspiration for others. Thanks and congrats!
- deleted 13y ago[deleted]
- dstavis 13y agoHey THIS IS AWESOME!
- marukokinno 13y agochange = doing these things on time; not doing the things = staying the same; no change = same results as usual (Einstein Formula); change = change this second * all the seconds = different results = out of troubles
- jhtan 13y agoI'm actually testing this strategy for competitive programming. Was very difficult to train for the ACM-ICPC when I was working as developer, but now that I only study in the University I solve at least a problem a day for maintain my streak in my Github in these are the results in some online judges for competitive competitions: http://community.topcoder.com/tc?module=MemberProfile&cr=22778322 http://community.topcoder.com/tc?module=MemberProfile&cr=227... http://codeforces.com/profile/jhtan http://codeforces.com/profile/jhtan It works!..
- balou 13y agoReally? I'm so surprised to see so many "Awesome! Go for it" answers to this. While I admire the dedication and focus it takes to stay up to such routine, I am certainly concerned by the quality of life and the narrow mindedness of enforcing upon oneself to code on a daily basis. What about days off? Going out friends / family for a weekend or holidays? One would suggest to bring your laptop so you can stick to it? This is madness to me... I love to code, contribute to OS projects, do code for a leaving and for myself - but for nothing in the world I'd even attempt such thing. Setting yourself with goals is great and required to some extend but on a proper schedule. Going to the gym 3 times a week can be achieved without being complexed by the fact you didn't go there every single day - and yet you can substantially improve yourself. I don't envy those buffy dudes that stick to it. I'll stick to enjoying evenings with my wife, do code maybe 1 or 2 times during the week days, spend an extra day on more complex issues on the week end, and rest for the last day. Just saying.
- Karunamon 13y agoMhh, read the article a bit more carefully. Specifically: Minimum viable code. I was forced to write code for no less than 30 minutes a day. 30 minutes a day? That's not exactly a huge quality of life problem or a work addiction. That's keeping a useful skill up to par, the same way I'd expect a good musician to practice every day. Besides, when you're a serial procrastinator, tactics like these can help you break out of that rut.
- endlessvoid94 13y agoRelated: for the first time in my 15-year programming career, I've spent the past year or so doing more engineering management than actual coding, and it has noticeably improved my programming ability.
- cnaut 13y agoDoing this helped me start my startup while working full time and eventually feel confident enough to quit my job and work full time on my startup
- dimsumdumdum 13y agobla bla bla
- zhemao 13y agoWhile Resig's dedication is admirable, I'd caution against applying his advice too broadly. He is doing it because he has side projects that he wants to complete. There's no reason to force yourself to code every day for coding's sake. I've been doing a lot of side-project hacking the past three months, as evidenced by my Github activity graph (https://github.com/zhemao https://github.com/zhemao), which, admittedly, is not as impressive as Resig's. However, this week, I finished up my latest side project and found myself at a loss for new ideas. At first, I did feel a bit guilty about not doing any coding, since it had been a long time since I had nothing to work on. But then I realized that there's more to productivity than a nice contribution graph and sometimes it's good to take a step back in order to think, reflect, and get inspiration. I'm currently reading through Patterson and Hennessy's "Computer Organization and Design" to learn more about computer architecture. I'd also like to practice my saxophone some more, start learning how to draw, help a friend who is still in college find a job, and expand my social life a bit. My Github account will still be there when I am ready to get back into it.
- vayarajesh 13y agoI am totally facing the same issue which you faced about working only during weekends. Your idea of working everyday seems nice i will try giving it a go :) Nice post!
- vayarajesh 13y agoAnd also Congratulations! :)
- thewarrior 13y agoI decided I would write a short story everyday. Ended up forcing myself to write random gibberish for a few days before i gave up.
- Cthulhu_ 13y agoI'm guessing this doesn't apply to the average developer; after all, we write code for a living. I sure do. I don't usually do any coding when not on the clock, after all, I've already done 8ish hours of work by then (and if I'm lucky, most of it spent coding).
- Fenicio 13y agoVery inspiring, but take into account that John (most likely) lives in a good enviroment to proceed with this, his job is intellectually demanding but he is not overworked or extramulti-tasked. If your job leaves you depleted, and when you arrive home you're like a husk of a human being you can't expect to do something like this. Take into account that great developers like John live in a place where they can grow, you can't copy what they do and expect to have the same great results in a not so great environment.
- legierski 13y agoThis reminds me my 'Half hour' productivity hack that I've been testing last year: http://blog.self.li/post/34104114881/4-weeks-into-half-hour-productivity-hack http://blog.self.li/post/34104114881/4-weeks-into-half-hour-...
- shanwang 13y agothank you, this is the best advice about side projects i have ever read, I'm going to practice this from today!
- nicholassmith 13y agoI love coding, but the idea of doing it every day would make me hate it so quickly. I love learning new technologies when I want too, or fiddling with a concept, but I want it to be because I want to do it and not because I feel obligated too. I've put myself in that situation before and all it did was bum me out and push me close to a burnout situation, it works for some people sure but people should be doing things because they enjoy it. Don't write code every day, do something you want to everyday.
- finalight 13y agothere's a saying; practise makes perfect it applies not only to coding, but also to other areas
- midas007 13y agoI find my daily intelligence is highest in the early morning 6:30 am but productivity peaks at about 9:30 am. Anything in the afternoon is a steady decline and by evening I should just do something that doesn't involve sitting in front of the glowing box. Trying to push yourself too hard results in overall productivity loss.
- slowblood 13y agoI've made it a point to NOT check things in on Sundays. I break my own rule. I get the OCD gimmick to get yourself motivated but ... I flies against of my philosophy of coding. Less is more, quality over lines of code. Not coding for coding sake. And coding on paper and writing out data structures and algorithms. Hey, if a whole bunch connected green dots gives you a feeling of accomplishment. Enjoy!
- ScottyE 13y agoJeff Haden refers to this mindset as a systems-oriented mindset as opposed to a goals-oriented mindset. He's written a great article about it here: http://www.inc.com/jeff-haden/an-nearly-foolproof-way-to-achieve-every-goal-you-set-wed.html http://www.inc.com/jeff-haden/an-nearly-foolproof-way-to-ach...
- weishigoname 13y agoit sounds great, I like to try.